Fulling - AI-Powered Full-Stack Development Platform
π Overview
Fulling provides a sandboxed environment with Claude Code and PostgreSQL β everything you need to vibe code full-stack apps.
Fulling automatically sets up the following for your project, ready in a minute:
- Next.js environment with shadcn/ui
- Dedicated PostgreSQL (pre-configured)
- Claude Code (pre-configured)
- A live domain
β¨ Key Features
Fulling 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β¦
Fulling - AI-Powered Full-Stack Development Platform
π Overview
Fulling provides a sandboxed environment with Claude Code and PostgreSQL β everything you need to vibe code full-stack apps.
Fulling automatically sets up the following for your project, ready in a minute:
- Next.js environment with shadcn/ui
- Dedicated PostgreSQL (pre-configured)
- Claude Code (pre-configured)
- A live domain
β¨ Key Features
Fulling 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.
Star Fulling on GitHub can get the latest released information.
ποΈ Architecture
System Architecture
βββββββββββββββββββ
β Ingress Domain β
βββββββββββββββββββ
β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β β β β β Sandbox Pods β
β Web Browser ββββββΆβ Fulling ββββββΆβ Kubernetes ββββββΆβ (with Claude) β
β β β β β Cluster β βββββββββββββββββββ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββ β
β β PostgreSQL ββββββββββββββ
β βββββββββββββββββββ
βΌ
βββββββββββββββββββ
β GitHub β
β Repositories β
βββββββββββββββββββ
π οΈ Technology Stack
Frontend
- Framework: Next.js 15.5.4 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- UI Components: Shadcn/UI
- State Management: React Hooks
Backend
- Runtime: Node.js
- API: Next.js API Routes
- Database ORM: Prisma
- Authentication: NextAuth v5 with GitHub OAuth
Infrastructure
- Container Orchestration: Kubernetes
- Database: PostgreSQL (via KubeBlocks)
- Web Terminal: ttyd
- Container Image: fullstack-web-runtime (Custom Docker image with development tools)
π¦ Installation
Prerequisites
- Node.js 20.x or higher
- PostgreSQL database
- Kubernetes cluster with KubeBlocks installed
- GitHub OAuth application credentials
Environment Setup
- Clone the repository:
git clone https://github.com/FullstackAgent/fulling.git
cd fulling
- Install dependencies:
pnpm install
- Set up environment variables:
Create .env.local file:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/fullstackagent"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-nextauth-secret"
AUTH_TRUST_HOST=""
# GitHub OAuth (replace with your actual values)
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
# Sealos OAuth
SEALOS_JWT_SECRET=""
# job
DATABASE_LOCK_DURATION_SECONDS=""
MAX_DATABASES_PER_RECONCILE=""
SANDBOX_LOCK_DURATION_SECONDS=""
MAX_SANDBOXES_PER_RECONCILE=""
# k8s resource
RUNTIME_IMAGE=""
# aiproxy
AIPROXY_ENDPOINT=""
ANTHROPIC_BASE_URL=""
# Log
LOG_LEVEL="info"
# login
ENABLE_PASSWORD_AUTH=""
ENABLE_PASSWORD_AUTH=""
ENABLE_SEALOS_AUTH=""
- Initialize database:
npx prisma generate
npx prisma db push
- Run the development server:
pnpm run dev
Open http://localhost:3000 to access the application.
Database Schema
prisma/schema.prisma
π’ Deployment
Kubernetes Resources
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
Resource Limits
Default resource allocation per sandbox:
- CPU: 200m limit, 20m request
- Memory: 256Mi limit, 25Mi request
- Storage: 3Gi for database
π§ Development
Project Structure
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
Key Services
KubernetesService (lib/kubernetes.ts)
- Manages all Kubernetes operations
- Creates databases and sandboxes
- Handles pod lifecycle management
Authentication (lib/auth.ts)
- GitHub OAuth integration
- Session management
- User authorization
Database (lib/db.ts)
- Prisma ORM configuration
- Connection pooling
π API Documentation
Sandbox Management
Create Sandbox
POST /api/sandbox/[projectId]
Content-Type: application/json
{
"envVars": {
"KEY": "value"
}
}
Get Sandbox Status
GET /api/sandbox/[projectId]
Delete Sandbox
DELETE /api/sandbox/[projectId]
Project Management
Create Project
POST /api/projects
Content-Type: application/json
{
"name": "project-name",
"description": "Project description"
}
π Security
- 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
π€ Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Submit a pull request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
π Contact
- GitHub: @fanux
- Issues: GitHub Issues
100% AI-generated code. Prompted by fanux. Thanks for Claude code & Opus & Sonnet 4.5 & GLM & Kimi K2 Thinking