The CRM Framework for Builders Who Ship
Grit is a full-stack meta-framework purpose-built for CRMs, admin dashboards, SaaS products, and internal tools. It fuses a Go backend (Gin + GORM) with a Next.js frontend (React + App Router) and a Filament-like admin panel in a single monorepo — with authentication, file storage, email, background jobs, AI integration, and a visual database browser all wired together out of the box.
Built for Builders
Ship Fast
One command scaffolds your entire stack. Another generates full-stack CRUD resources. Stop gluing boilerplate together and start building what matters. Go from zero to a production-ready app with auth, admin panel, and API in minutes.
Self-Host Everything
No vendor lock-in. No serverless cold starts. No per-request pricing. Grit compiles to a single Go binary and static Next.js bundles. Deploy on a $5 VPS, your own servers, or any cloud. You own every byte of your infrastructure.
Go Performance
Go compiles to native machine code. Your API handles thousands of concurrent requests with minimal memory. No garbage collection pauses that matter, no interpreter overhead, no JIT warm-up. Just raw speed backed by goroutines and a compiled runtime.
Rock Solid
Opinionated by design. One folder structure, one auth system, one state management approach. Every pattern is predictable. Any developer (or AI assistant) can jump into any Grit project and immediately understand it. Convention over configuration.
Why Grit?
Think of Grit as Laravel's developer experience, but with Go's performance and React's frontend ecosystem. Instead of stitching together 15+ tools to build a modern full-stack app, you run one command and get everything: a Go API server, a React frontend, an admin dashboard, shared TypeScript types, Docker infrastructure, and a CLI that generates full-stack resources for you.
Grit is designed for the kind of software that runs businesses: CRMs, admin panels, internal tools, SaaS dashboards, and data-heavy applications. The admin panel is not an afterthought — it's a first-class citizen with resource definitions, advanced data tables, form builders, multi-step wizards, charts, and widgets. Define a resource once, and Grit generates the entire stack from Go model to admin UI.
Every piece of code Grit generates is yours. No lock-in, no black boxes, no runtime magic. The CLI produces clean, readable, editable files that you own and control. Self-host on your own servers with zero ongoing costs beyond hosting.
How Grit Compares
Grit combines the best parts of existing frameworks into one cohesive tool. Here's how it stacks up:
| Feature | Grit | Laravel | Django | Rails | T3 Stack | Refine |
|---|---|---|---|---|---|---|
| Language | Go + TypeScript | PHP | Python | Ruby | TypeScript | TypeScript |
| Compiled / Native | ||||||
| Built-in Admin Panel | ||||||
| Full-Stack Code Gen | ||||||
| End-to-End Type Safety | ||||||
| React Frontend | ||||||
| Self-Hostable | ||||||
| Background Jobs | ||||||
| File Storage (S3) | ||||||
| Email Service | ||||||
| AI Integration | ||||||
| Database Browser | ||||||
| Multi-Step Forms | ||||||
| Docker Setup |
Built-in· Partial / via plugin· Not included·Laravel comparison includes Filament. T3 Stack = Next.js + tRPC + Prisma + NextAuth.
Key Features
How It Works
Scaffold your project
Run grit new myapp to generate the full monorepo -- Go API with auth, Next.js web app, admin panel, shared types, Docker Compose, and GORM Studio.
Start the dev environment
Run docker compose up -d to start PostgreSQL, Redis, MinIO, and Mailhog. Then run turbo dev to start the Go API and Next.js apps with hot reload.
Generate resources
Use grit generate resource Post --fields "title:string,content:text" to create a full-stack resource. The Go model, handler, React hooks, Zod schema, and admin page are all created and wired together.
Build and ship
Your app is production-ready from day one. Multi-stage Docker builds for Go and Next.js. Self-host on a VPS, your own servers, or any cloud provider. No vendor lock-in, no recurring platform fees.
Quick Example
Create a project and generate your first resource in under a minute:
That's it. You now have a Go API serving CRUD endpoints for Posts, a React frontend with data fetching hooks, Zod validation, and an admin panel with a data table and form -- all connected and ready to use.
What Gets Generated
When you run grit generate resource Post, the CLI creates:
apps/api/internal/models/post.goGORM model with struct tags, timestamps, and soft deletesapps/api/internal/handlers/post.goCRUD handler with pagination, sorting, filtering, and searchapps/api/internal/services/post.goBusiness logic layer with reusable query scopespackages/shared/schemas/post.tsZod validation schemas (create + update)packages/shared/types/post.tsTypeScript types inferred from the Go modelapps/admin/hooks/use-posts.tsReact Query hooks for all CRUD operationsapps/admin/resources/posts.tsResource definition with table, form, and multi-step wizard configapps/admin/app/resources/posts/page.tsxAdmin page with data table, search, filters, and form actionsWho is Grit For?
- Freelancers and agencies who need to ship client projects fast with a complete stack that works out of the box.
- Solo SaaS developers who want Go's performance for their backend but React's ecosystem for their frontend.
- Small to mid-size teams building internal tools, CRMs, dashboards, or SaaS products.
- Laravel developers who want to move to Go but miss the developer experience and Filament's admin panel.
- Next.js developers who are frustrated with serverless limitations and want a real, self-hosted backend.
- Anyone tired of vendor lock-in who wants to own their infrastructure and deploy anywhere.