Skip to content

Refactoring the Blog

Refactoring this blog to use two Fresh plugins I wrote: fresh_blog and fresh_ga4.

Adventures in Open Source

A short note about contributing to denoland/fresh and a recommendation to work on open source on the side.

Adding Comments to the Blog

Adding Disqus comments to a Fresh blog, lifting the island and component from someone else's portfolio repo.

90days: Day 15 -- Bit

Bit's developer onboarding is slow, loses your scroll position, and redefines terms without context. A rough first impression.

90days: Day 14 -- gRPC

The gRPC quickstart is fine, but the tutorial is JavaScript-only, mismatched with its reference code, and buried in maps-domain noise.

90days: Day 12 -- Typescript

TotalTypescript's beginners TypeScript tutorial follows the same challenge-per-concept format as his Zod course.

90days: Day 11 -- Zod

Zod's docs are reference-only, so I learned from TotalTypescript's exercise-per-concept tutorial instead.

90days: Day 10 -- Loopback

Loopback's Todo and TodoList tutorials are well-structured, and a link to the Diátaxis framework made the whole experience worthwhile.

90days: Day 9 -- Temporal

Temporal's hello-world gets durable execution right, but the course is stuck on an SDK from July 2022 and needs a refresh.

90days: Day 8 -- Supabase

Building Supabase's user-management app with email confirmation, avatar upload, and S3 cleanup via database triggers.

90days: Day 7 -- Remix

The short Remix blog tutorial, an outdated routing convention blocking the path, and why tutorials should build familiar things.

90days: Day 6 -- Prisma

Prisma's getting-started guide, and why separating 'introduce the concepts' from 'apply them in a real app' is good doc design.

90days: Day 5 -- Blitz

Walking through the Blitz tutorial, appreciating the Django-style vote app but wishing auth were part of the hands-on.

90days: Day 4 -- Earthly

Trying Earthly, a tidy mashup of Docker and make, and wishing the tutorial had a more realistic example than hello-world-go.

90days: Day 3 -- Kubernetes

A quick pass through Minikube and the Kubernetes basics tutorials, then stepping back because there's no practical need to apply it.

90days: Day 2 -- Turborepo

Trying Turborepo and Turbopack without any monorepos that actually need incremental builds.

90days: Day 1 -- Astro

Kicking off a 90-days-of-tutorials project with Astro, and using it the same day to build an internal ubiquitous-language docs site at work.

March updates

A catch-up post after moving to Munich, covering a Spring microservices tutorial, a work blog with Lume, Storybook, and Jepsen's Maelstrom.

Deploying a deno app to fly.io

A from-scratch walkthrough for deploying a Deno HTTP server to fly.io with a hand-rolled Dockerfile and docker-compose file.

Obligatory ChatGPT post

What ChatGPT is and isn't good for when building a dockerized Vite + React + Mongo app, and where I had to redo its work by hand.

More experiments with docker

Starting a dockerized frontend / backend / database template, nudged along by ChatGPT, as a starting point for future apps.

How to use Mongoose with Deno

Following the Deno Mongoose guide, killing a stray MongoDB process on port 27017, and getting it running in Docker with auth.

Creating an open source project

Starting deno_cap, a small CLI for automating the screenshot workflow, and the open-source project checklist that came with it.

Forking an open source project

Forking Fresh to pick up an unmerged _app.tsx fix, and the trick of pointing an import map at a raw GitHub URL.

Adding a layout

The first real layout on the blog, plus a resolve to stop writing daily status updates and start writing proper posts.

Adding analytics to your blog

Adding GA4 to a Fresh site via a middleware lifted from an open PR, and figuring out it was working all along.

Creating a blog in 2023

The stack and workflow behind this blog: Fresh on Deno Deploy, plus a few markdown gotchas from getting set up.

How to not start a blog

My 3rd or 4th attempt at blogging, and why posting every day might finally make it stick.