Known online as bgrand. I've been building software for over 20 years, and now I'm on a mission to help people change their lives with AI.
This isn't a portfolio. It's my workshop. A place where I build in public, share what I learn, and invite others to build alongside me.
No gatekeeping. No BS. Just real tools, real learning, and real community.
The Stack
Not a list of things that looked interesting — the tools, services and conventions running the apps on this site. Where a choice was contested, the reasoning is written down. Where something is still being trialled, it says so.
Getting an idea out of your head and into something a machine can act on.
Where the AI actually writes and reviews code alongside you.
Turning a working branch into something running in front of people.
Keeping it alive: data, auth, payments, and the boring parts that matter.
Agentic coding in the terminal - reads the repo, makes the change, runs the build.
The important part isn't the chat, it's the context. This repo carries a .claude.md that states the monorepo layout, the conventions, and the rules an assistant is expected to follow, so a session starts already knowing the project instead of rediscovering it every time.
AI-first editor for the work that's easier to do with the file in front of you.
Shares its rules with Claude through matching .mdc files: project-indexing for producing structured context maps, project-eval for diagnostic passes that explicitly do not edit code. Both are set to always-apply and tracked in git, so behaviour is the same on every machine.
Deploys on push, with a preview URL per pull request.
Each app in the monorepo is its own Vercel project pointed at its own subdirectory, so one repo produces several independently deployable sites.
ORM and migrations for the heavier apps.
Used where the schema is doing real work - TCG Ship's orders, labels, wallet transactions and audit log - and migrations need to run cleanly on deploy.