Toolkit
My toolkit.
What I build and write with.
Thinking and writing
ClaudeThe one I think with. Pair-programmer on Dart, editor on drafts, and the thing I argue with when a plan sounds better than it is.
Anthropic ↗
Claude CodeDoes the work over describing it -- writes and debugs in the repo. It debugged every hurdle across the seventeen days that built Braindex.
In the terminal and VS Code ↗
NotionWhere everything lands before it has a home: app ideas, newsletter outlines, half-finished thoughts I would otherwise lose.
Notion Labs ↗
GranolaTakes notes in meetings so I can listen in them, then gives me back the bit I needed.
Meeting notes ↗
Building
Flutter + DartOne codebase, iOS and Android. Every app I have shipped runs on it.
Google ↗
FirebaseAuth, Firestore, Cloud Functions, analytics and security rules. The whole backend on every app, and the reason one person can ship one.
Google ↗
LovableUsed twice per project and no more: prototype the flow before opening the editor, then scaffold the marketing site’s first draft.
AI app builder ↗
ManusFor the jobs that are research plus assembly instead of code, the ones where the output is a document, not a commit.
Agentic AI ↗
GeminiContent generation at volume. It wrote the 1,645-item question bank behind Braindex across twenty sections.
Google ↗
VS CodeThe editor everything else plugs into.
Microsoft ↗
three.jsThe 3D in M50 Speed Run, running inside a single HTML file with no build step.
Open source ↗
CapacitorWraps a web build as a real iOS and Android app. How M50 ships to both stores from one file.
Ionic ↗
Shipping and measuring
XcodeiOS signing and provisioning. Necessary, and the source of the worst hour of most releases.
Apple ↗
TransporterUploads the build to App Store Connect. More reliable than doing it from Xcode’s organiser.
Apple ↗
VercelServes this site and braindexapp.com. Push to main, it is live in under a minute.
Hosting ↗
NetlifyThe staging copy of this site, so nothing reaches davidcarr.me before I have looked at it.
Hosting ↗
GoDaddyWhere the domains live. Unexciting, which is the correct amount of exciting for DNS.
Domains and DNS ↗
PostHogFunnels and retention, the questions Firebase’s dashboards are bad at answering.
Product analytics ↗
Firebase AnalyticsEvents and daily actives inside the apps.
Google ↗
Vercel AnalyticsTraffic on this site. No cookie banner, which was the reason.
Vercel ↗
The newsletter
ResendSends the newsletter. Clean API, and it does not try to also be a marketing suite.
Email delivery ↗
Decap CMSLets me edit issues in a browser while the files stay as markdown in the repo. No database, no lock-in.
Git-based CMS ↗
GitHub ActionsA cron job publishes Sunday’s issue and sends me Tuesday’s preview. The system runs whether I remember it or not.
Automation ↗
Wispr FlowI talk faster than I type and a lot of first drafts are just me thinking out loud. This turns that into text.
Dictation ↗