You only need to create a sandbox, and then you can start coding with Claude Code; FullstackAgent has already taken care of everything else for you.
This includes:
- Creating a Next.js and shadcn/ui coding environment.
- Creating a PostgreSQL database, configuring the database connection information environment variable.
- Configuring all necessary Claude Code environment variables
- And creating an accessible domain name.
The FullstackAgent project is designed to streamline the entire full-stack development lifecycle using an AI-centric approach. Its core capabilities are delivered through a highly orchestrated, self-contained development sandbox:
-
Pre-Configured AI Development Environment:
- A complete, immediately usable development environment is provisioned, featuring Next.js, shadcn/ui, and the Claude Code CLI.
- Essential AI-related environment variables (e.g.,
BASE_URL,KEY, etc.) are automatically configured and injected, allowing the AI agent to begin coding instantly without manual setup.
-
Isolated PostgreSQL Database Provisioning:
- A dedicated and isolated PostgreSQL database instance is automatically created for each project using KubeBlocks.
- The database connection string is securely injected into the development environment as an environment variable (
DATABASE_URL), ensuring the AI can access and configure the persistence layer.
-
Automated Public Endpoint and Domain Mapping:
- Multiple accessible subdomains are automatically allocated and managed (HTTPS ingress with SSL termination).
- These subdomains are configured to map to the specific application ports you wish to expose (e.g., ports 3000, 5000, 8080), providing immediate external access for testing and live development.
-
Natural Language Interaction via Web Terminal:
- All core development and configuration tasks are performed through a built-in Web Terminal (ttyd) using natural language instructions.
- This provides a direct, low-friction interface for interacting with the AI engineer, receiving code, running commands, and monitoring the development process.
-
AI-Aware Business Configuration:
- Specific business configurations, such as OAuth settings (e.g., GitHub authentication) and Payment configurations, can be fed into the platform.
- This configuration metadata is made accessible as contextual prompts, allowing the Claude Code agent to intelligently perceive and implement corresponding features (e.g., configuring NextAuth) directly into the generated code.
-
Seamless GitHub Repository Integration:
- The platform is designed for easy association with an external GitHub repository.
- This facilitates standard code repository management, version control, and collaboration by connecting the AI's generated code to your preferred source control workflow.
-
Automated High-Availability Deployment:
- Projects can be automatically deployed from the development sandbox to a high-availability production environment, leveraging the underlying Kubernetes infrastructure.
- This aims to abstract away the complexities of deployment, allowing the AI to manage the transition from development to live application.
βββββββββββββββββββ
β Ingress Domain β
βββββββββββββββββββ
β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β β β β β Sandbox Pods β
β Web Browser ββββββΆβ FullstackAgent ββββββΆβ Kubernetes ββββββΆβ (with Claude) β
β β β β β Cluster β βββββββββββββββββββ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββ β
β β PostgreSQL ββββββββββββββ
β βββββββββββββββββββ
βΌ
βββββββββββββββββββ
β GitHub β
β Repositories β
βββββββββββββββββββ
- Framework: Next.js 15.5.4 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- UI Components: Shadcn/UI
- State Management: React Hooks
- Runtime: Node.js
- API: Next.js API Routes
- Database ORM: Prisma
- Authentication: NextAuth v5 with GitHub OAuth
- Container Orchestration: Kubernetes
- Database: PostgreSQL (via KubeBlocks)
- Web Terminal: ttyd
- Container Image: fullstack-web-runtime (Custom Docker image with development tools)
- Node.js 20.x or higher
- PostgreSQL database
- Kubernetes cluster with KubeBlocks installed
- GitHub OAuth application credentials
- Clone the repository:
git clone https://github.com/FullstackAgent/FullstackAgent.git
cd FullstackAgent- Install dependencies:
cd fullstack-agent
npm install- Set up environment variables:
Create .env.local file:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/fullstackagent"
# GitHub OAuth
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-nextauth-secret"
# Kubernetes
KUBECONFIG_PATH="./.secret/kubeconfig"- Set up Kubernetes configuration:
Place your kubeconfig file in .secret/kubeconfig
- Set up Claude Code environment:
Create .secret/.env file with your Anthropic API credentials:
ANTHROPIC_API_KEY="your-anthropic-api-key"- Initialize the database:
npx prisma generate
npx prisma db push- Run the development server:
npm run devOpen http://localhost:3000 to access the application.
model User {
id String @id @default(cuid())
email String @unique
name String?
image String?
githubId String @unique
accessToken String? // Encrypted
projects Project[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Project {
id String @id @default(cuid())
name String
description String?
githubRepo String?
status String @default("active")
databaseUrl String?
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
sandboxes Sandbox[]
environmentVariables EnvironmentVariable[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Sandbox {
id String @id @default(cuid())
projectId String
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
k8sNamespace String
k8sDeploymentName String
k8sServiceName String
publicUrl String?
ttydUrl String?
status String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}The platform creates the following Kubernetes resources for each project:
-
Database Cluster (KubeBlocks):
- PostgreSQL 14.8.0
- 3Gi storage
- Auto-generated credentials
-
Sandbox Deployment:
- Custom fullstack-web-runtime image
- Claude Code CLI pre-installed
- Web terminal (ttyd) on port 7681
- Application ports: 3000, 5000, 8080
-
Services & Ingress:
- Internal service for pod networking
- HTTPS ingress with SSL termination
- WebSocket support for terminal
Default resource allocation per sandbox:
- CPU: 200m limit, 20m request
- Memory: 256Mi limit, 25Mi request
- Storage: 3Gi for database
fullstack-agent/
βββ app/ # Next.js App Router pages
β βββ api/ # API routes
β βββ projects/ # Project management pages
β βββ layout.tsx # Root layout
βββ components/ # React components
β βββ ui/ # Shadcn/UI components
β βββ ... # Feature components
βββ lib/ # Core libraries
β βββ auth.ts # NextAuth configuration
β βββ db.ts # Prisma client
β βββ kubernetes.ts # Kubernetes service
β βββ github.ts # GitHub integration
βββ prisma/ # Database schema
βββ yaml/ # Kubernetes templates
βββ public/ # Static assets
- Manages all Kubernetes operations
- Creates databases and sandboxes
- Handles pod lifecycle management
- GitHub OAuth integration
- Session management
- User authorization
- Prisma ORM configuration
- Connection pooling
POST /api/sandbox/[projectId]
Content-Type: application/json
{
"envVars": {
"KEY": "value"
}
}GET /api/sandbox/[projectId]DELETE /api/sandbox/[projectId]POST /api/projects
Content-Type: application/json
{
"name": "project-name",
"description": "Project description"
}- Authentication: GitHub OAuth ensures only authorized users can access the platform
- Isolation: Each sandbox runs in its own Kubernetes namespace
- Secrets Management: Sensitive data stored in Kubernetes secrets
- Network Policies: Sandboxes isolated from each other
- Resource Limits: Prevents resource exhaustion attacks
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub: @fanux
- Issues: GitHub Issues