A full-stack automation platform inspired by Zapier.
Create "Zaps" to connect apps, trigger workflows, and automate tasks β all from a sleek Next.js dashboard.
- β¨ Features
- πΈ Demo
- π Database Schema
- π Tech Stack
- π Getting Started
- π Project Structure
- π§ Configuration
- π€ Contributing
- π License
- Create & Manage Zaps β Trigger actions based on events
- Folder Organization β Group Zaps into folders and projects
- Inline Rename β Rename Zaps or folders without page reload
- History & Versioning β Track changes over time
- Reusable Templates β Create and share automation templates
- Real-time UI β Built with Recoil state management
- Authentication β Secure login with NextAuth
- Prisma ORM β Type-safe database access
- Beautiful UI β Tailwind CSS components & Lucide icons
Frontend
- Next.js (App Router)
- Recoil for state management
- Tailwind CSS for styling
- Lucide Icons for crisp SVG icons
Backend
- Node.js + Express
- Prisma ORM
- PostgreSQL
- REST API + Axios calls
- NextAuth for authentication
git clone https://github.com/aryanrandomnohere/zapier.git
cd zapier
npm installCreate .env files for each application. Here are the required environment variables:
# Environment
NODE_ENV="development"
# NextAuth Configuration
NEXTAUTH_SECRET="your-nextauth-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# Database
DATABASE_URL="postgresql://postgres:mysecretpassword@localhost:5432/postgres"
# Frontend URLs
NEXT_PUBLIC_FRONTEND_URL="http://localhost:3000"
NEXT_PUBLIC_BACKEND_URL="http://localhost:3001"
NEXT_PUBLIC_HOOK_URL="http://localhost:3002"
# Google OAuth
GOOGLE_CLIENTID="your-google-client-id"
GOOGLE_SECRET="your-google-client-secret"
# Database
DATABASE_URL="postgresql://postgres:mysecretpassword@localhost:5432/postgres"
# Environment
NODE_ENV="development"
# SMTP Configuration
SMTP_HOST="smtp-relay.brevo.com"
SMTP_PORT=587
SMTP_USERNAME="your-smtp-username"
SMTP_SECRET="your-smtp-password"
# Database
DATABASE_URL="postgresql://postgres:mysecretpassword@localhost:5432/postgres"
# Kafka Configuration
KAFKA_BROKER_URL="localhost:9092"
KAFKA_SSL_KEY_PATH="./certificates/private.key"
KAFKA_SSL_CERT_PATH="./certificates/certificate.crt"
KAFKA_SSL_CA_PATH="./certificates/ca_certificate.crt"
KAFKA_CLIENT_ID="zapier-worker"
# SMTP Configuration
SMTP_HOST="smtp-relay.brevo.com"
SMTP_PORT=587
SMTP_USERNAME="your-smtp-username"
SMTP_SECRET="your-smtp-password"# Database
DATABASE_URL="postgresql://postgres:mysecretpassword@localhost:5432/postgres"
# Kafka Configuration
KAFKA_BROKER_URL="localhost:9092"
KAFKA_SSL_KEY_PATH="./certificates/private.key"
KAFKA_SSL_CERT_PATH="./certificates/certificate.crt"
KAFKA_SSL_CA_PATH="./certificates/ca_certificate.crt"
KAFKA_CLIENT_ID="zap-processor"Note: For production deployment, update the URLs and use secure passwords. See commented production values in the actual
.env.examplefiles.
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# (Optional) Seed the database
npx prisma db seednpm run devOpen http://localhost:3000 to view the application in your browser.
zapier/
βββ apps/ # Monorepo applications
β βββ backend/ # Express.js API server
β βββ frontend/ # Next.js dashboard application
β βββ worker/ # Background job processing
β βββ processor/ # Zap execution engine
β βββ hooks/ # Webhook handlers
βββ packages/ # Shared packages
β βββ prisma/ # Database schema & migrations
β β βββ schema.prisma
β β βββ migrations/
β βββ types/ # Shared TypeScript definitions
β βββ apps/ # Action services & integrations
βββ public/ # Static assets
βββ docs/ # Documentation files
- Install PostgreSQL locally or use a cloud provider
- Update
DATABASE_URLin your.envfile - Run
npx prisma migrate devto apply schema changes
This project uses NextAuth.js. Configure your preferred providers in app/api/auth/[...nextauth]/route.ts.
All required environment variables are documented in .env.example. Copy and configure them according to your setup.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by Aryan


