Stack

What I actually use

Not a list of everything I have touched. Every entry has one line on why it beat the obvious alternative, because a tool with no reason next to it is a tool nobody evaluated.

20 tools · 5 groups

01 — Language and runtime

Language and runtime

One language across the stack. The context switch is a real cost and I would rather not pay it.

  • TypeScriptEverything

    Strict mode, no implicit any. The type system is a design tool before it is a safety net.

  • NodeServer runtime

    Boring, universally supported, and the version I run in production is the one I run locally.

  • BunScripts and testsTrying

    Fast enough to change how often I write throwaway scripts. Not yet what I deploy.

02 — Frontend

Frontend

The layer I am strictest about, because every kilobyte here is paid for by someone on a bad connection.

  • Next.jsFramework

    Server components let me keep data access on the server without building an API tier for it.

  • ReactUI

    The composition model is still the best one available and the ecosystem is unmatched.

  • CSS ModulesStyling

    Scoped, zero runtime, and my design tokens are plain custom properties any future tool can read.

  • Radix PrimitivesAccessible behaviour

    For menus, dialogs and comboboxes. The keyboard and ARIA work is genuinely hard to get right by hand.

03 — Data

Data

Postgres until Postgres stops working. It has not stopped working yet.

  • PostgreSQLPrimary database

    JSON, full-text search, queues and geospatial in one system I already have to operate.

  • DrizzleQuery builder

    Generated SQL I can read and review. Migrations are plain files, not an opaque engine.

  • RedisCache, presence, rate limits

    For things that are allowed to disappear. The moment data must survive a restart it belongs in Postgres.

  • ZodRuntime validation

    Every boundary — forms, API input, environment variables — parses before it is trusted.

04 — Ship and operate

Ship and operate

The goal is that a deploy is boring and a rollback is one click.

  • VercelHosting

    Preview deploys per pull request removed an entire category of "works on my machine" argument.

  • GitHub ActionsCI

    Typecheck, lint, build and a Lighthouse budget on every PR. The budget is the part that lasts.

  • SentryError tracking

    Production minifies errors into digests. Without a reporter you are debugging hashes.

  • PlaywrightEnd-to-end tests

    A handful of tests over the paths that make money. I do not chase coverage numbers here.

05 — Desk and daily

Desk and daily

Unglamorous and used every single day, which makes it worth being picky about.

  • VS CodeEditor

    Vim keybindings, a theme with real contrast, very few extensions.

  • Fish + StarshipShell

    Autosuggestions from history are the feature. Everything else is decoration.

  • RaycastLauncher

    Clipboard history and window management. The snippet expander earns its place daily.

  • ObsidianNotes

    Plain markdown in a folder I own. Every note here eventually becomes a tip or a lesson.

  • FigmaDesign

    I design in the browser mostly, but layout exploration is faster on a canvas.

Resources

Worth your time

Deliberately short. A list of two hundred links helps nobody — these are the ones I actually reopen.