Built with
The tools NERD actually runs on, what each one does here, and why it stayed.
No affiliate padding, no tools listed because they look good. This is what's actually in the repo and what each one earns its place doing.
Frontend
UI
Every NERD surface — chat, landing, admin — is React 19. Boring on purpose; the interesting problems here aren't rendering problems.
Build tool
Dev server and bundler for the three app frontends. The reload speed is the whole pitch, and it holds up.
Language
Types across frontends and API. Most of the bugs worth catching in this codebase are shape bugs, and this catches them.
Styling
The whole hand-drawn look is Tailwind plus a handful of custom CSS layers. Keeps design decisions in the markup where I can see them.
Server state
Caching and refetching for everything the chat app reads. Removed a category of bug I used to write by hand.
Streaming markdown
Renders NERD's replies as they stream — including code, math, and Mermaid diagrams — without the layout jumping around.
Backend and data
Database and auth
Postgres, auth, and storage. My Brain lives here. Being plain Postgres underneath means nothing is locked away behind someone's abstraction.
API runtime
The NERD API is serverless functions, deployed with the Serverless Framework. Traffic is spiky by nature — paying per request fits that.
Frontend hosting
Hosts landing, chat, admin, and these docs, each as its own project. Push to deploy, previews per branch.
Background work
Research runs and document ingestion go on a queue rather than blocking a conversation.
AI
Reasoning model
The advisor's actual thinking. The playbooks live or die on how well the model holds a long, structured conversation — this is what does it best.
Model plumbing
Streaming, tool calls, and structured output across the API and both frontends. One interface instead of a provider SDK in every file.
Model routing
Lets me route specific jobs to whichever model is actually best at them without rewiring anything.
Tool integrations
How NERD reaches into the apps you already use, without me hand-rolling an OAuth flow per integration.
Development
Most of this codebase is written alongside Claude Code. Building an AI advisor while being advised by AI is the point, not the irony.
Running it
Product analytics
What people actually do — which playbooks get finished, where onboarding stalls. Runs on landing, chat, and these docs.
Error tracking
Frontend errors, with the release attached. I'd rather find out from Sentry than from a support message.
Live chat
The bubble in the bottom-right corner of this page. It goes to me, not a queue.
Scheduling
Books the strategy calls on the specialist tier, embedded straight into the landing page.
Lint and format
One fast tool instead of a lint stack. Replaced three dependencies and a config argument.
These docs
The site you're reading. Chosen over rolling my own because search, MDX validation, and the navigation tree are exactly the work I didn't want to maintain.
