Skip to content

harshit-exe/FlowKit

Repository files navigation

FlowKit 🚀

The Ultimate n8n Workflow Library Platform

License: MIT GitHub stars GitHub issues PRs Welcome Next.js TypeScript

Discover, share, and deploy 150+ curated n8n automation workflows.
Built with ❤️ in India 🇮🇳

Live Demo · Documentation · Report Bug · Request Feature

⭐ Star History

Star History Chart

✨ Features

🔍 For Users

  • 150+ Curated Workflows - Hand-picked and tested
  • AI Workflow Builder - Generate workflows with Gemini AI
  • Advanced Search & Filters - Find exactly what you need
  • Instant Copy/Download - Get workflows in one click
  • Community Features - Comments, votes, and saves

⚡ For Developers

  • Modern Stack - Next.js 14, TypeScript, Prisma
  • Production Ready - Secure, scalable, optimized
  • Admin Panel - Full CRUD operations
  • API Routes - RESTful endpoints included
  • Open Source - MIT licensed, contribute freely

🚀 Quick Start

Get FlowKit running locally in under 5 minutes!

Prerequisites

  • Node.js 18.x or higher (Download)
  • MySQL 8.x or compatible database provider
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/harshit-exe/FlowKit.git
    cd FlowKit
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env

    Edit .env and configure your database and API keys (see Environment Variables below)

  4. Set up the database

    # Generate Prisma client
    npx prisma generate
    
    # Push schema to database
    npx prisma db push
    
    # Seed with sample data (super admin + workflows)
    npx prisma db seed
  5. Start the development server

    npm run dev
  6. Open your browser 🎉

    Default Admin Credentials:

    ⚠️ Change these credentials immediately after first login!

📋 Environment Variables

Create a .env file in the root directory with the following variables:

Variable Required Description Example
DATABASE_URL ✅ Yes MySQL connection string mysql://user:pass@host:3306/flowkit
NEXTAUTH_URL ✅ Yes Your app's base URL http://localhost:3000
NEXTAUTH_SECRET ✅ Yes Secret for JWT encryption Generate with openssl rand -base64 32
GEMINI_API_KEY ✅ Yes Google Gemini API key Get from Google AI Studio
RESEND_API_KEY ✅ Yes Email service API key Get from Resend
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME ✅ Yes Cloudinary cloud name From Cloudinary Console
CLOUDINARY_API_KEY ✅ Yes Cloudinary API key From Cloudinary Console
CLOUDINARY_API_SECRET ✅ Yes Cloudinary API secret From Cloudinary Console
GROQ_API_KEY ⚠️ Optional Groq AI for thumbnails Get from Groq Console
NEXT_PUBLIC_CLARITY_PROJECT_ID ⚠️ Optional Microsoft Clarity analytics From Clarity
NEXT_PUBLIC_ENABLE_ACCESS_GATE ⚠️ Optional Enable waitlist feature true or false (default: false)

💡 Tip: Check .env.example for detailed descriptions and instructions for each variable.

🗄️ Database Setup

FlowKit supports any MySQL-compatible database. Here are some recommended providers:

Option 1: Local MySQL

# Install MySQL locally
brew install mysql  # macOS
# or download from https://dev.mysql.com/downloads/

# Create database
mysql -u root -p
CREATE DATABASE flowkit;

Option 2: Cloud Providers (Recommended for Production)

  • Aiven - Free tier available, excellent performance
  • PlanetScale - Serverless MySQL, generous free tier
  • Railway - Easy setup, good for development

SSL/TLS Connection

If your database requires SSL, append to your DATABASE_URL:

?sslaccept=strict

Database Commands

# Generate Prisma Client (after schema changes)
npx prisma generate

# Push schema changes to database (development)
npx prisma db push

# Run migrations (production)
npx prisma migrate deploy

# Seed database with sample data
npx prisma db seed

# Open Prisma Studio (visual database editor)
npx prisma studio

📁 Project Structure

flowkit/
├── prisma/
│   ├── schema.prisma          # Database schema
│   └── seed.ts                # Database seeding script
├── src/
│   ├── app/
│   │   ├── (public)/          # Public-facing pages
│   │   │   ├── page.tsx       # Homepage
│   │   │   ├── workflows/     # Workflow listings & details
│   │   │   └── ai-builder/    # AI workflow generator
│   │   ├── admin/             # Admin panel
│   │   │   ├── dashboard/     # Admin dashboard
│   │   │   ├── workflows/     # Workflow management
│   │   │   └── categories/    # Category management
│   │   └── api/               # API routes
│   │       ├── workflows/     # Workflow CRUD APIs
│   │       ├── search/        # Search API
│   │       └── ai/            # AI generation API
│   ├── components/
│   │   ├── admin/             # Admin-specific components
│   │   ├── layout/            # Layout components (navbar, footer)
│   │   ├── workflow/          # Workflow display components
│   │   └── ui/                # shadcn/ui components
│   ├── lib/
│   │   ├── prisma.ts          # Prisma client instance
│   │   ├── auth.ts            # NextAuth configuration
│   │   ├── gemini.ts          # Google Gemini AI client
│   │   └── utils.ts           # Utility functions
│   └── types/                 # TypeScript type definitions
├── public/
│   ├── thumbnails/            # Workflow thumbnail images
│   └── assets/                # Static assets
└── package.json

🌐 API Endpoints

FlowKit provides a RESTful API for managing workflows:

Workflows

  • GET /api/workflows - List all workflows (with pagination & filters)
  • POST /api/workflows - Create a new workflow
  • GET /api/workflows/[id] - Get workflow by ID
  • PUT /api/workflows/[id] - Update workflow
  • DELETE /api/workflows/[id] - Delete workflow
  • GET /api/workflows/[id]/stats - Get workflow statistics

Search & Discovery

  • GET /api/search - Search workflows by keywords, tags, categories
  • GET /api/categories - List all categories
  • GET /api/tags - List all tags

AI Generation

  • POST /api/ai/generate - Generate workflow using AI (Gemini)

Community

  • POST /api/workflows/[id]/vote - Upvote/downvote workflow
  • POST /api/workflows/[id]/save - Save workflow to collection
  • GET /api/workflows/[id]/comments - Get workflow comments

📖 For detailed API documentation, visit our API Reference.

🚢 Deployment

Deploy to Vercel (Recommended)

Deploy with Vercel

  1. Push to GitHub

    git push origin main
  2. Import to Vercel

    • Go to vercel.com
    • Click "New Project"
    • Import your GitHub repository
    • Vercel will auto-detect Next.js
  3. Configure Environment Variables

    • Add all variables from your .env file
    • Update NEXTAUTH_URL to your production domain
  4. Deploy

    • Click "Deploy"
    • Your app will be live in ~2 minutes!

Production Checklist

Before deploying to production:

  • Change default admin password
  • Use strong NEXTAUTH_SECRET (generate new one)
  • Configure production database with SSL
  • Set up proper email service (Resend recommended)
  • Enable Cloudinary for image uploads
  • Configure domain for NEXTAUTH_URL
  • Set up analytics (optional but recommended)
  • Review and update robots.txt and sitemap.xml
  • Test all workflows and admin features
  • Set up database backups

Other Deployment Options

Docker Deployment
# Coming soon - Dockerfile in progress
Traditional Hosting (PM2)
# Build the application
npm run build

# Start with PM2
pm2 start npm --name "flowkit" -- start

🛠️ Tech Stack

🤝 Contributing

We love contributions! FlowKit is better because of developers like you. 🙌

Ways to Contribute

  • 🐛 Report bugs - Found an issue? Open a bug report
  • Suggest features - Have ideas? Request a feature
  • 📝 Improve documentation - Help others understand FlowKit better
  • 🔧 Submit PRs - Fix bugs or add features
  • 📦 Share workflows - Contribute your n8n workflows

Contribution Process

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

📖 Read our Contributing Guide for detailed guidelines and coding standards.

❓ Troubleshooting

Database connection issues

Error: PrismaClientInitializationError: Can't reach database server

Solutions:

  • Verify your DATABASE_URL is correct
  • Check if MySQL is running: mysql -u root -p
  • For cloud databases, ensure your IP is whitelisted
  • Try appending ?sslaccept=strict for SSL connections
Prisma Client errors

Error: @prisma/client did not initialize yet

Solutions:

  • Run npx prisma generate to generate the client
  • Delete node_modules and reinstall: rm -rf node_modules && npm install
  • Restart your dev server
Authentication not working

Issue: Can't login to admin panel

Solutions:

  • Ensure NEXTAUTH_SECRET is set in .env
  • Check NEXTAUTH_URL matches your current URL (including port)
  • Verify database has seeded users: npx prisma studio
  • Clear browser cookies and try again
Email sending fails

Error: Email notifications not being sent

Solutions:

  • Verify RESEND_API_KEY is valid
  • Check your Resend domain is verified
  • Ensure sender email is configured in Resend
  • Check API rate limits haven't been exceeded
Build errors

Error: Type errors or build failures

Solutions:

  • Run npx prisma generate first
  • Check TypeScript version: npm list typescript
  • Clear Next.js cache: rm -rf .next
  • Verify all required environment variables are set

💡 Still stuck? Open an issue and we'll help!

📸 Screenshots

Coming soon! Check out the live demo in the meantime.

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

FlowKit wouldn't be possible without these amazing projects:

  • n8n - The powerful workflow automation tool that inspired this project
  • shadcn/ui - Beautiful and accessible UI components
  • Google Gemini - AI-powered workflow generation
  • Vercel - Hosting and deployment platform
  • All our contributors ❤️

📧 Contact & Community

Built with ❤️ in India 🇮🇳

If FlowKit helped you, consider giving it a ⭐ on GitHub!