What we ship.
What you build.
Short, practical reads on building full-stack apps with Grit, a new one most mornings. Getting started, CRUD in one command, framework comparisons, and production tips.

A complete ecommerce build for someone who learned Grit last week: catalogue, product variants, cart, Stripe checkout, order tracking for customers, and an admin your operations team can actually run the business from. Every command is one you can paste, every snippet says which file it belongs in, and the parts Grit does not do for you are named rather than glossed over.

You bought a dashboard template and you want its pages in your admin, without giving up URL-synced sorting, paging, filters, selection, bulk actions, toasts and cache invalidation. Grit's customisation system in eight levels, from patching one cell to replacing the page. For each one: what you get by default, why you would want to change it, and exactly how, with every snippet labelled with the file it belongs in.

Two admin surfaces every Grit app already ships with, a GDPR export/erase toolkit backed by a tamper-evident deletion journal, and access reviews that snapshot every role assignment for recertification. What they do, and the question that actually matters: how do they get populated?

A hands-on build that uses every one of Grit's new pieces in context, a Cloudflare-style theme, belongs_to and line-item relations, dropdown and toggle fields that carry their own options, atomic invoice numbering, the column you forgot added in place, and a Print button that was already there. One resource at a time, one command each, with a link to the docs for every step.

A Grit plugin doesn't hide in node_modules, it generates real code into your repo: models, routes, pages, migrations. And because every install is recorded, it's the one thing most plugin systems can't do: cleanly uninstall. Here's the model, the first-party plugins, and how to write one.

Every new Grit app now comes with a real authorization model (roles, granular per-resource permissions, and a permission editor that works on web, mobile and desktop) plus scheduled database backups you can restore with one click. No wiring. It's just there when you run grit new.

One command scaffolds a Wails desktop app that works online AND offline. grit generate resource fans out to the desktop too now: full CRUD screens backed by a local SQLite mirror that syncs to your server when you're connected. We build a real Point of Sale: categories, products, stock, clients, suppliers, purchases, and a custom checkout screen that completes sales and decrements stock even with no internet.

Point grit generate resource at your Expo app and it scaffolds typed hooks, list + detail screens, and the plumbing for a real store. We wire a Category → Product shopping flow with similar products in one sitting.

In one sitting: scaffold a Category → Product store, handle image uploads, model a one-to-many relationship, and manage all of it from a generated admin panel.

I kept rebuilding the same backend on every project (auth, roles, audit trails, rate limiting, storage, OTP, email, cache, jobs) before ever touching the actual product. So I combined all of it into one thing, on Go.
Founder of Grit and author of The Daily Grit. A 5-minute morning read on building full-stack apps with Go + React.
