Vibe is a vibecoding tool that lets users vibecode apps and deploy directly to their Appwrite account. It provides an AI-powered development environment with integrated chat, code editing, and deployment capabilities.
- AI-Powered Development - Interactive chat interface for coding assistance
- Live Preview - Cloudflare Sandbox integration for running code in isolated environments
- Appwrite Integration - Direct deployment to Appwrite accounts
- Next.js 15 - You probably know what it is
- React 19 - You definitely know what it is
- TypeScript - Type safety
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Reusable UI components
- TanStack Query - Data fetching and caching
- tRPC - Type-safe API layer
- Zustand - State management
- React Hook Form - Form handling
- AI SDK - AI library
- Cloudflare Workers - edge deployment
- Cloudflare Durable Objects - Persistent storage and chat management
- Cloudflare Sandbox - Isolated code execution
- Hono - Lightweight web framework
- tRPC - Type-safe API procedures
- Drizzle ORM - TypeScript-first ORM
- Cloudflare D1 - SQLite database
- Better Auth - Authentication
- Turborepo - Monorepo build system
- Biome - Linting and formatting
- Wrangler - Cloudflare development CLI
- TypeScript - Type checking
- Node.js - Version 18 or higher
- pnpm - Package manager (recommended)
- Cloudflare Account - For deployment and D1 database
- Appwrite Account - For app deployment (optional)
-
Clone the repository:
git clone <repository-url> cd vibe
-
Install dependencies:
pnpm install
-
Set up environment variables:
Copy the example environment file:
cp apps/server/.env.example apps/server/.env
Configure the env variables in
apps/server/.env:
# Start all apps (frontend + backend)
# MAKE SURE DOCKER IS RUNNING, IT'S REQUIRED FOR CLOUDFLARE SANDBOX
pnpm dev
# Or start individually:
pnpm -C apps/dash dev # Frontend only
pnpm -C apps/server dev # Backend onlyThe applications will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8787
vibe/
├── apps/
│ ├── dash/ # Next.js frontend application
│ │ ├── public/ # Static assets
│ │ ├── src/
│ │ │ ├── app/ # Next.js app router pages
│ │ │ │ ├── (home)/ # Home layout and pages
│ │ │ │ ├── auth/ # Authentication pages
│ │ │ │ └── chat/ # Chat interface
│ │ │ │ └── [chatId]/
│ │ │ ├── components/ # Reusable UI components
│ │ │ │ ├── ui/ # shadcn/ui components
│ │ │ │ └── ... # App-specific components
│ │ │ ├── hooks/ # React hooks
│ │ │ ├── lib/ # Utilities and configurations
│ │ │ └── stores/ # Zustand state stores
│ │ ├── package.json
│ │ └── next.config.ts
│ └── server/ # Cloudflare Workers backend
│ ├── src/
│ │ ├── ai/ # AI tools and integrations
│ │ │ ├── tools/ # Available AI tools
│ │ │ └── ...
│ │ ├── db/ # Database schemas and migrations
│ │ │ ├── migrations/
│ │ │ └── schema/
│ │ ├── lib/ # Server utilities
│ │ ├── routers/ # tRPC routers
│ │ └── ...
│ ├── wrangler.jsonc # Cloudflare configuration
│ └── package.json
├── packages/ # Shared packages (if any)
├── .claude/ # Claude-specific configurations
├── biome.json # Code formatting/linting config
├── turbo.json # Turborepo configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Root package configuration
pnpm dev- Start all applications in development modepnpm build- Build all applications for productionpnpm check-types- Run TypeScript type checking across all appspnpm check- Run Biome linting and formatting
pnpm dev- Start Next.js development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run Biome lintingpnpm format- Run Biome formatting
pnpm dev- Start Wrangler development serverpnpm build- Build for deployment (dry run)pnpm deploy- Deploy to Cloudflare Workerspnpm check-types- Run TypeScript type checkingpnpm db:generate- Generate database migrationspnpm db:migrate:local- Apply migrations to local D1pnpm db:migrate:remote- Apply migrations to remote D1pnpm db:studio:local- Open Drizzle Studio for local DBpnpm db:studio:remote- Open Drizzle Studio for remote DB
Deployed on Appwrite Sites
The backend is deployed on Cloudflare Workers with:
- API endpoints available globally
- Durable Objects for persistent chat sessions
- D1 database for data storage
Ensure all production environment variables are configured in your Cloudflare Workers environment.
TODO
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Contact me: mdhruvil.com