Skip to content

Uses

What I actually reach for. Not an aspirational list — if it's here, I've shipped something with it. That includes the AI tooling: it's in the daily loop, and I think being specific about what each one is good for is more useful than claiming to be "AI-first".

Editor & terminal

  • VS Code

    Primary editor. Dart, TypeScript and Tailwind extensions.

  • Cursor

    Primary AI editor — see below.

  • Android Studio

    For anything that needs the emulator, profiler or Gradle.

  • Xcode

    iOS builds, signing, and the native debugging Flutter can't reach.

AI in the loop

  • Claude Code

    Agentic work in the terminal. Multi-file refactors, migrations and reviews where the change spans more of the repo than fits in a chat window.

  • Cursor

    The default editor. Inline completion and edits where I'm already working, rather than copying between a browser tab and the file.

  • ChatGPT / Codex

    Drafting an implementation, then arguing with it. Most useful before I've committed to an approach, when the cost of being wrong is still zero.

  • Gemini

    Long-context reading — a large codebase or a pile of documentation in one pass, when the question is 'where does this actually happen'.

Build & ship

  • Flutter + Dart

    Default for mobile unless there's a reason not to.

  • Next.js + TypeScript

    Default for web. App Router, strict mode.

  • Supabase

    Postgres with row-level security when I want SQL and auth without running servers.

  • Firebase

    Firestore, Cloud Functions, Crashlytics, FCM.

  • Docker

    Reproducible environments, so 'works on my machine' stays true elsewhere.

  • Git + GitHub

    Small commits, real messages, review before merge.

Design & debug

  • Figma

    Reading designer handoff, measuring, exporting.

  • Firebase Crashlytics

    Decides what I fix next, more reliably than my intuition does.

  • Charles / DevTools

    When the bug is on the wire rather than in the code.