Welcome to Grit
Grit is a full-stack meta-framework that fuses a Go backend (Gin + GORM) with a Next.js frontend (React + App Router) and a Filament-like admin panel in a single monorepo. It ships with authentication, file storage, email, background jobs, AI integration, and a visual database browser -- all wired together out of the box.
What is 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 opinionated by design. There is one way to structure your project, one auth system, one state management approach, one folder structure. This means any developer can jump into any Grit project and immediately understand it. It also means AI assistants can generate Grit code confidently because the patterns are predictable and consistent.
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.
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. Deploy anywhere -- VPS, Kubernetes, or your favorite cloud provider.
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/app/resources/posts/page.tsxAdmin page with data table, search, and delete 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.
- Next.js developers who are frustrated with serverless limitations and want a real backend.