- Overview
- Key Features
- Screenshots
- Tech Stack
- Architecture
- Getting Started
- Environment Variables
- Database Setup
- Project Structure
- How It Works
- Development
- Deployment
- Contributing
- License
Vibe is an AI-powered web application builder that allows users to create stunning websites and applications through natural conversation. Simply describe what you want to build, and Vibe's AI agents will generate, preview, and deploy your project in real-time.
Built with modern web technologies and powered by advanced AI models, Vibe eliminates the complexity of traditional web development while maintaining professional quality and full customization capabilities.
- π€ AI-Driven Development: Leverage GPT-4 and AI agents to write code from natural language descriptions
- π Real-Time Previews: See your application come to life instantly in isolated sandboxes
- πΎ Project Management: Organize and manage multiple projects with persistent storage
- π¨ Beautiful UI/UX: Modern, responsive design with smooth animations powered by Framer Motion
- π Secure Authentication: Enterprise-grade authentication with Clerk
- β‘ Serverless Architecture: Built on Next.js 15 with App Router for optimal performance
- Conversational AI Interface: Describe your project in plain English and watch it materialize
- Multi-Project Support: Create and manage unlimited projects simultaneously
- Live Code Execution: Real-time code generation and execution in secure E2B sandboxes
- File Management: Browse, edit, and manage generated files with an intuitive file explorer
- Code Visualization: Syntax-highlighted code viewer with PrismJS integration
- Responsive Design: Fully responsive interface that works seamlessly across all devices
- Type-Safe API: End-to-end type safety with tRPC
- Database ORM: Prisma for robust database management
- Event-Driven Architecture: Inngest for reliable background job processing
- Real-Time Updates: Tanstack Query for optimistic UI updates
- Theme Support: Dark/Light mode with next-themes
- Component Library: Comprehensive UI components built on Radix UI
- Animation System: Smooth, performant animations with Framer Motion
- Intelligent Code Generation: Multi-agent system for context-aware code creation
- Error Handling: Automatic error detection and recovery
- Iterative Refinement: Continuous improvement through conversation
- Framework Support: Optimized for Next.js 15.3.3 development
The landing page with AI-powered project creation
Manage all your projects in one place
Real-time preview of your generated application
View and explore generated code with syntax highlighting
Navigate through your project's file structure
Converse with AI to build and refine your application
Note: Add your screenshots to the
screenshotsfolder in the root directory. Recommended dimensions: 1920x1080px
- Framework: Next.js 15.3.4 - React framework with App Router
- Language: TypeScript 5 - Type-safe JavaScript
- Styling: Tailwind CSS 4 - Utility-first CSS framework
- UI Components: Radix UI - Accessible component primitives
- Animations: Framer Motion - Production-ready motion library
- 3D Graphics: Three.js + React Three Fiber - 3D visualization
- State Management: Tanstack Query - Async state management
- Form Handling: React Hook Form - Performant form validation
- API Layer: tRPC 11 - End-to-end typesafe APIs
- Database: PostgreSQL - Relational database
- ORM: Prisma 6 - Next-generation Node.js ORM
- Authentication: Clerk - User authentication and management
- Background Jobs: Inngest - Reliable event-driven workflows
- AI Model: OpenAI GPT-4 - Advanced language model
- Agent Framework: Inngest Agent Kit - AI agent orchestration
- Sandbox Environment: E2B Code Interpreter - Secure code execution sandboxes
- Package Manager: npm/yarn/pnpm/bun
- Code Quality: ESLint - Linting and code quality
- Schema Validation: Zod - TypeScript-first schema validation
Vibe follows a modern, scalable architecture designed for performance and maintainability:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client (Next.js) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β React Pages β β UI Componentsβ β tRPC Client β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Layer (tRPC) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Routers β β Procedures β β Middleware β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βββββββββββββ΄ββββββββββββ
βΌ βΌ
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β Database (Prisma) β β Inngest Functions β
β ββββββββββββββββββ β β ββββββββββββββββββ β
β β PostgreSQL β β β β AI Agent Kit β β
β ββββββββββββββββββ β β ββββββββββββββββββ β
ββββββββββββββββββββββββ ββββββββββββ¬ββββββββββββ
β
βΌ
ββββββββββββββββββββββββ
β E2B Sandboxes β
β (Code Execution) β
ββββββββββββββββββββββββ
- Frontend Layer: React components with Server/Client component separation
- API Layer: Type-safe tRPC procedures for data fetching and mutations
- Agent Layer: AI-powered code generation using multi-agent orchestration
- Execution Layer: Isolated E2B sandboxes for secure code execution
- Data Layer: Prisma ORM with PostgreSQL for persistent storage
Before you begin, ensure you have the following installed:
- Node.js 18.0 or higher
- npm / yarn / pnpm / bun
- PostgreSQL database (local or cloud)
- Git
- Clone the repository
git clone https://github.com/Hardik180704/vibe.git
cd vibe- Install dependencies
npm install
# or
yarn install
# or
pnpm install
# or
bun install- Set up environment variables
Create a .env file in the root directory:
cp .env.example .envThen configure your environment variables (see Environment Variables section).
- Set up the database
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev- Start the development server
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev- Open your browser
Navigate to http://localhost:3000 to see the application.
Create a .env file with the following variables:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/vibe?schema=public"
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# OpenAI
OPENAI_API_KEY=sk-...
# E2B Code Interpreter
E2B_API_KEY=e2b_...
# Inngest
INNGEST_EVENT_KEY=...
INNGEST_SIGNING_KEY=...
# App URL
NEXT_PUBLIC_APP_URL=http://localhost:3000- Clerk: Sign up at clerk.com
- OpenAI: Get your API key from platform.openai.com
- E2B: Sign up at e2b.dev
- Inngest: Create an account at inngest.com
Vibe uses PostgreSQL with Prisma ORM. The schema includes:
- Project: Stores user projects with metadata
- Message: Chat messages with AI (user/assistant roles)
- Fragment: Generated code artifacts with sandbox URLs
# Create a new migration
npx prisma migrate dev --name your_migration_name
# Reset database (development only)
npx prisma migrate reset
# Deploy migrations to production
npx prisma migrate deploy
# Open Prisma Studio for database GUI
npx prisma studiovibe/
βββ prisma/ # Database schema and migrations
β βββ schema.prisma # Prisma schema definition
β βββ migrations/ # Database migrations
βββ public/ # Static assets
β βββ logo.svg # Application logo
βββ sandbox-templates/ # E2B sandbox configurations
β βββ nextjs/ # Next.js sandbox template
βββ screenshots/ # Application screenshots
βββ src/
β βββ app/ # Next.js 15 App Router
β β βββ (home)/ # Home page route group
β β βββ api/ # API routes
β β β βββ inngest/ # Inngest webhook endpoint
β β β βββ trpc/ # tRPC API endpoint
β β βββ projects/ # Projects pages
β βββ components/ # Reusable React components
β β βββ ui/ # UI component library
β β βββ animated/ # Animated components
β β βββ code-view/ # Code visualization components
β βββ hooks/ # Custom React hooks
β βββ inngest/ # Inngest functions and client
β β βββ client.ts # Inngest client configuration
β β βββ functions.ts # AI agent functions
β β βββ utils.ts # Inngest utilities
β βββ lib/ # Utility libraries
β β βββ db.ts # Prisma client instance
β β βββ utils.ts # General utilities
β βββ modules/ # Feature modules
β β βββ home/ # Home module
β β βββ messages/ # Messages module
β β βββ projects/ # Projects module
β βββ trpc/ # tRPC configuration
β β βββ init.ts # tRPC initialization
β β βββ client.tsx # Client-side tRPC
β β βββ routers/ # API routers
β βββ middleware.ts # Next.js middleware (auth)
β βββ prompt.ts # AI system prompts
β βββ types.ts # TypeScript type definitions
βββ .env # Environment variables
βββ .gitignore # Git ignore rules
βββ components.json # shadcn/ui configuration
βββ eslint.config.mjs # ESLint configuration
βββ next.config.ts # Next.js configuration
βββ package.json # Dependencies and scripts
βββ postcss.config.mjs # PostCSS configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ README.md # This file
Users create a new project by providing a natural language description of what they want to build.
The request is sent to an Inngest function that:
- Creates an isolated E2B sandbox environment
- Retrieves conversation history from the database
- Initializes AI agent network with custom tools
The AI agent:
- Analyzes the user's requirements
- Generates appropriate code files
- Executes terminal commands as needed
- Iteratively refines the solution
Generated code runs in a secure E2B sandbox:
- Next.js 15.3.3 environment
- 30-minute timeout
- Isolated from main application
- Live preview URL generation
The system:
- Saves generated files to database
- Creates a fragment with sandbox URL
- Generates user-friendly response
- Updates UI in real-time
# Start development server with Turbopack
npm run dev
# Build for production
npm run build
# Start production server
npm run start
# Run ESLint
npm run lint
# Generate Prisma client
npm run postinstall-
Feature Development
- Create a new branch:
git checkout -b feature/your-feature - Make your changes
- Test thoroughly
- Commit with clear messages
- Create a new branch:
-
Database Changes
- Update
prisma/schema.prisma - Run
npx prisma migrate dev --name your_change - Generate client:
npx prisma generate
- Update
-
API Changes
- Add/modify procedures in
src/trpc/routers/ - Types are automatically inferred
- Test with tRPC client
- Add/modify procedures in
-
UI Components
- Use existing components from
src/components/ui/ - Follow Radix UI patterns
- Ensure accessibility
- Use existing components from
- TypeScript: Strict mode enabled
- Formatting: Follow existing patterns
- Components: Use functional components with hooks
- Naming: Descriptive, consistent naming conventions
- Push to GitHub
git push origin main- Import to Vercel
- Go to vercel.com
- Import your repository
- Configure environment variables
- Deploy
- Configure Database
- Use Vercel Postgres or external PostgreSQL
- Update
DATABASE_URLin environment variables - Run migrations:
npx prisma migrate deploy
Ensure all environment variables are set in your hosting platform:
- Database connection string
- API keys (Clerk, OpenAI, E2B, Inngest)
- App URL (production domain)
- Run database migrations
- Test authentication flow
- Verify AI agent functionality
- Check sandbox creation and execution
Contributions are welcome! Here's how you can help:
- Check if the bug has already been reported
- Create a detailed issue with:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots if applicable
- Open an issue with the
enhancementlabel - Describe the feature and its benefits
- Discuss implementation approach
- Fork the repository
- Create a feature branch
- Make your changes
- Write/update tests if applicable
- Submit a pull request
- All PRs require review before merging
- Ensure CI/CD checks pass
- Address review comments
- Squash commits before merge
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework
- Vercel - Hosting and deployment
- Clerk - Authentication
- OpenAI - AI capabilities
- E2B - Code execution sandboxes
- Inngest - Event-driven workflows
- Prisma - Database toolkit
- tRPC - Type-safe APIs
- Documentation: GitHub Wiki
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with β€οΈ by Hardik Sharma





