A hyper-opinionated Claude agent for building production-ready Next.js apps with DynamoDB.
Robin eliminates technology debates and focuses entirely on shipping functional, tested, deployed applications. No choices. No bikeshedding. Just production-ready code.
"Functional > Beautiful. Deployed > Perfect. Opinionated > Flexible. Server > Client."
Robin is designed for developers who want to build and ship fast without arguing about technology choices. It enforces a single, proven tech stack and gets out of your way.
- Builds Next.js 15 applications with App Router (never Pages Router)
- Designs DynamoDB single-table schemas (never multiple tables)
- Writes TypeScript with strict mode (never JavaScript)
- Uses Tailwind CSS for styling (no debates)
- Implements Server Components by default (Client only when necessary)
- Writes tests first (TDD mandatory)
- Deploys to AWS or Vercel (infrastructure as code)
- Framework debates ("Should I use Next.js or Remix?" → Next.js. Done.)
- Database debates ("SQL vs NoSQL?" → DynamoDB. Done.)
- Styling debates ("CSS-in-JS vs Tailwind?" → Tailwind. Done.)
- Multiple DynamoDB tables (single-table only)
- Pages Router (App Router only)
- Skipping tests
- Client Components by default
- Framework: Next.js 15+ (App Router)
- Language: TypeScript (strict mode)
- Database: AWS DynamoDB (single-table design)
- Styling: Tailwind CSS
- Auth: NextAuth.js v5
- Validation: Zod
- Testing: Vitest + Playwright
- Deployment: AWS (SST) or Vercel
There are no alternatives. This is the stack. It's proven, performant, and production-ready.
Robin is a Claude Code plugin that installs with one command:
-
Add Robin marketplace to Claude Code:
/plugin marketplace add swapkats/robin
-
Install the Robin plugin:
/plugin install robin
-
Restart Claude Code for the plugin to be fully activated
-
Start building! Robin's agent, skills, and commands are now available.
Once installed, you have several ways to use Robin:
/robin-initThis command interactively creates a complete Next.js + DynamoDB application with all Robin standards.
Explicitly delegate to the Robin agent for complex project builds:
/task Use the robin agent to create a SaaS application with organizations and teams
Just describe what you want, and Robin's skills automatically activate:
"Create a todo application with user authentication"
Robin's skills recognize the context and build it for you automatically!
If you prefer not to use the plugin system:
# Clone the repository
git clone https://github.com/swapkats/robin.git
# Copy components to your project
cp -r robin/skills your-project/.claude/
cp -r robin/agents your-project/.claude/
cp -r robin/commands your-project/.claude/User: Create a new todo application with user authentication
Robin: [Creates complete Next.js + DynamoDB app with:]
- Next.js 15 App Router structure
- DynamoDB single-table schema for users and todos
- NextAuth.js authentication configured
- Todo CRUD operations (Server Actions)
- Tests for all features
- Ready to deploy with SST
User: Add the ability for users to share todos with other users
Robin: [Implements sharing feature:]
- Updates DynamoDB schema with sharing relationships
- Adds share endpoint (Server Action)
- Creates shared todos view
- Implements access control
- Adds tests
- Updates documentation
User: Deploy this to AWS
Robin: [Sets up deployment:]
- Creates SST configuration
- Configures DynamoDB table with CloudFormation
- Sets up proper IAM roles
- Configures environment variables
- Deploys to AWS
- Provides deployment URL
Robin includes three types of components that work together:
Use when: Building complete applications from scratch, complex multi-feature projects, or when you want explicit control
The Robin agent is a specialized subagent you can delegate to for autonomous, end-to-end application building. It follows the Explore → Plan → Build → Validate → Deploy workflow and enforces all Robin standards.
How to use:
/task Use the robin agent to create a blog platform with posts and commentsSkills automatically activate based on conversation context. You don't need to explicitly invoke them.
Auto-activates when: Building complete applications, adding major features, creating new projects
The main skill that coordinates all others. Enforces Robin's opinionated philosophy and delegates to specialized skills.
Auto-activates when: Implementing Next.js features, creating components, adding routes, working with Server Components or Server Actions
Specialized in Next.js 15 App Router patterns, Server Components, and Server Actions.
Auto-activates when: Designing data models, creating schemas, optimizing queries, adding entities, working with DynamoDB access patterns
Expert in DynamoDB single-table design, access patterns, and query optimization.
Auto-activates when: Deploying applications, configuring AWS resources, setting up infrastructure, working with SST or CloudFormation
Handles AWS deployment, SST configuration, and infrastructure as code.
Interactive command to scaffold a complete Next.js + DynamoDB project with all Robin standards in seconds.
Usage: Simply type /robin-init and answer the interactive prompts.
When Robin creates a new application, it follows this structure:
my-app/
├── app/ # Next.js App Router
│ ├── (auth)/ # Route group for auth pages
│ │ ├── login/
│ │ └── register/
│ ├── (dashboard)/ # Route group for dashboard
│ │ ├── layout.tsx # Dashboard layout
│ │ └── page.tsx
│ ├── api/ # API routes
│ ├── actions.ts # Server Actions
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/
│ ├── ui/ # Reusable UI components
│ └── features/ # Feature-specific components
├── lib/
│ ├── db/ # DynamoDB client and queries
│ ├── auth/ # NextAuth configuration
│ └── utils.ts
├── stacks/ # SST infrastructure
│ ├── Database.ts
│ └── Web.ts
├── tests/
│ ├── unit/
│ └── e2e/
├── .claude/
│ └── skills/ # Robin skills
├── sst.config.ts # SST configuration
├── next.config.js
├── tsconfig.json
├── tailwind.config.ts
├── .env.example
└── README.md
Robin enforces single-table design with these patterns:
PK: STRING (Partition Key) - Generic name for flexibility
SK: STRING (Sort Key) - Generic name for flexibility
GSI1: GSI1PK → GSI1SK (Reverse lookups, find by unique attributes)
GSI2: GSI2PK → GSI2SK (Global queries, cross-entity searches)
User:
PK: USER#<userId>
SK: PROFILE
GSI1PK: USER#<email> // Find user by email
GSI1SK: USER#<email>
EntityType: User
Email: user@example.com
Name: John Doe
Post:
PK: USER#<userId>
SK: POST#<timestamp>#<postId>
GSI1PK: POST#<postId> // Find post by ID
GSI1SK: POST#<postId>
GSI2PK: ALL_POSTS // Get all posts
GSI2SK: POST#<timestamp>
EntityType: Post
Title: Post title
Content: Post contentRobin enforces these standards automatically:
- ✅ Strict mode enabled
- ✅ No
anytypes (useunknownif needed) - ✅ Explicit return types on exported functions
- ✅ Zod schemas for runtime validation
- ✅ Minimum 80% code coverage
- ✅ Test-driven development (tests before code)
- ✅ Unit tests for business logic
- ✅ E2E tests for critical flows
- ✅ ESLint enforced
- ✅ Prettier auto-formatting
- ✅ Conventional commits
- ✅ No skipped linting rules
Robin creates SST configuration automatically:
# Development (creates real AWS resources in dev stage)
npm run dev
# Deploy to production
npm run deploy
# View AWS resources
npm run consoleFor Vercel deployment:
# Install Vercel CLI
npm install -g vercel
# Deploy
vercel --prodYou'll need to:
- Create DynamoDB table manually (or use CloudFormation)
- Create IAM user with DynamoDB access
- Add credentials to Vercel environment variables
User: Create a todo application with user authentication
Robin: [Creates:]
- User authentication with NextAuth.js
- Todo CRUD operations
- DynamoDB schema (Users, Todos)
- Server Actions for mutations
- Tests for all features
- SST deployment configuration
User: Build a blog platform with posts, comments, and likes
Robin: [Creates:]
- User system with profiles
- Post creation and management
- Comment system
- Like functionality
- DynamoDB single-table design
- Server Components for rendering
- Server Actions for mutations
- Full test coverage
User: Create a SaaS app with organizations and teams
Robin: [Creates:]
- Multi-tenant architecture
- Organization management
- Team structure
- Member roles and permissions
- DynamoDB schema with hierarchical data
- NextAuth with organization context
- Admin dashboard
- Billing-ready structure
Robin includes templates for common scenarios:
- Base: Basic Next.js + TypeScript + Tailwind
- Full-Stack: + DynamoDB + NextAuth
- SaaS: + Multi-tenant + Teams + Billing-ready
- User/Content: Users, Posts, Comments, Likes
- SaaS Multi-Tenant: Organizations, Teams, Members
- E-commerce: Products, Orders, Customers
Robin enforces these practices automatically:
- Server Components by default - Use 'use client' sparingly
- Server Actions for mutations - Forms and programmatic actions
- Single-table DynamoDB design - Always
- Query with indexes - Never scan
- Test-driven development - Tests first, then code
- Type-safe everything - TypeScript strict mode
- Validate inputs - Zod for all user inputs
- Environment variables - Validated with Zod
- Infrastructure as code - SST or CloudFormation
- Conventional commits - Semantic versioning ready
Robin considers a task complete when:
- ✅ All code is written and follows style guidelines
- ✅ TypeScript compiles with zero errors (strict mode)
- ✅ All tests pass (80%+ coverage)
- ✅ ESLint and Prettier report no issues
- ✅ Application runs locally without errors
- ✅ Deployment configuration is ready
- ✅ Documentation is up to date
Robin is open source and welcomes contributions! But remember:
Robin is opinionated by design.
Before contributing, please read our Contributing Guidelines to understand:
- What contributions we accept (bug fixes, docs, templates)
- What we reject (flexibility, configuration, alternative tech stacks)
- How to submit PRs that align with Robin's philosophy
We also follow a Code of Conduct to maintain a welcoming community.
Quick Summary:
✅ We Accept:
- Bug fixes and performance improvements
- Documentation improvements
- Better templates (within our stack)
- Additional skills for the enforced stack
❌ We Reject:
- Support for other frameworks or databases
- Configuration options or flexibility
- Weakening our opinions
Robin is open source software licensed under the MIT License.
Robin is built using:
- Claude Agent SDK by Anthropic
- Next.js by Vercel
- AWS DynamoDB by Amazon
- SST by SST
- NextAuth.js
Inspired by the philosophy that constraints breed creativity and that shipping functional software is better than endless debates.
Ready to build? Copy Robin's skills to your project and start shipping.
No debates. No discussions. Just production-ready code.