- Features
- Tech Stack
- Project Structure
- Pages & Routes
- Prerequisites
- Installation
- Environment Setup
- Running the Application
- Deployment
- Contributing
- License
- Dark/Light Mode: Seamless theme switching with persistent preferences
- Responsive Design: Fully optimized for desktop, tablet, and mobile devices
- Custom Theming: Advanced theme customization with color picker
- Glassmorphism UI: Modern design with backdrop blur effects
- Smooth Animations: Framer Motion powered transitions and micro-interactions
- NextAuth.js Integration: Secure authentication system
- Multiple Providers: Email/Password and Google OAuth support
- Session Management: Persistent user sessions with JWT
- Protected Routes: Middleware-based route protection
- User Profiles: Complete profile management with image uploads
- Stripe Integration: Secure payment processing
- Multiple Plans: Free, Professional, Business, and Enterprise tiers
- Subscription Management: Upgrade, downgrade, and cancellation
- Billing Portal: Self-service billing management
- Webhook Handling: Real-time payment status updates
- Visual Workflow Builder: Drag-and-drop interface with React Flow
- Multiple Node Types: Triggers, actions, conditions, and loops
- Real-time Validation: Live error detection and feedback
- Workflow Execution: Run and test workflows
- Export/Import: JSON-based workflow sharing
- Version Control: Track workflow changes and history
- User Management: Complete user CRUD operations
- Workflow Monitoring: Track all user workflows
- Message Management: Handle contact form submissions
- Newsletter System: Manage email subscribers
- Analytics Dashboard: Real-time platform statistics
- Premium Access: Locked features with purchase integration
- Framework: Next.js 15 (App Router)
- Language: TypeScript 5.0
- Styling: TailwindCSS v4 with custom configuration
- UI Components: Radix UI primitives
- Icons: Lucide React
- Workflow Engine: React Flow (@xyflow/react)
- State Management: Zustand
- Forms: React Hook Form + Zod validation
- Animations: Framer Motion
- API: Next.js API Routes
- Database: MongoDB with Mongoose ODM
- Authentication: NextAuth.js v5
- File Upload: Cloudinary integration
- Payments: Stripe API
- Email: Nodemailer (optional)
- Package Manager: pnpm
- Linting: ESLint
- Code Formatting: Prettier
- Version Control: Git
- Deployment: Vercel (recommended)
webflow-app-yt/
βββ public/ # Static assets
β βββ preview.png # Preview image
β βββ *.svg # Icon files
β
βββ src/
β βββ app/ # Next.js App Router
β β βββ (public)/ # Public routes (no auth required)
β β β βββ about/ # About page
β β β βββ blog/ # Blog section
β β β βββ contact/ # Contact form
β β β βββ features/ # Features showcase
β β β βββ pricing/ # Pricing plans
β β β βββ privacy/ # Privacy policy
β β β βββ terms/ # Terms of service
β β β βββ ... # More public pages
β β β
β β βββ admin/ # Admin dashboard (premium)
β β β βββ dashboard/ # Admin overview
β β β βββ users/ # User management (premium)
β β β βββ workflows/ # Workflow monitoring (premium)
β β β βββ messages/ # Message management (premium)
β β β βββ newsletter/ # Newsletter management (premium)
β β β βββ paid-members/ # Subscriber management (premium)
β β β βββ settings/ # Admin settings (premium)
β β β
β β βββ auth/ # Authentication pages
β β β βββ signin/ # Sign in page
β β β βββ signup/ # Sign up page
β β β
β β βββ workflow/ # Workflow management
β β β βββ new/ # Create new workflow
β β β βββ [id]/ # Edit workflow
β β β
β β βββ api/ # API Routes
β β β βββ auth/ # NextAuth endpoints
β β β βββ admin/ # Admin API routes
β β β βββ workflows/ # Workflow CRUD
β β β βββ stripe/ # Payment webhooks
β β β βββ subscription/ # Subscription management
β β β βββ contact/ # Contact form handler
β β β βββ newsletter/ # Newsletter subscription
β β β βββ upload/ # File upload handler
β β β βββ user/ # User management
β β β
β β βββ dashboard/ # User dashboard
β β βββ profile/ # User profile
β β βββ billing/ # Billing management
β β βββ payment-success/ # Payment success page
β β βββ docs/ # Documentation
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Home page
β β βββ globals.css # Global styles
β β βββ error.tsx # Error boundary
β β
β βββ components/ # React components
β β βββ layout/ # Layout components
β β β βββ AppLayout.tsx # Main app layout
β β β
β β βββ navigation/ # Navigation components
β β β βββ Header.tsx # Site header
β β β βββ Footer.tsx # Site footer
β β β
β β βββ providers/ # Context providers
β β β βββ SessionProvider.tsx # Auth session
β β β βββ ThemeProvider.tsx # Theme context
β β β βββ ThemeCustomizerProvider.tsx
β β β
β β βββ ui/ # UI components
β β β βββ button.tsx # Button component
β β β βββ card.tsx # Card component
β β β βββ dialog.tsx # Modal dialog
β β β βββ input.tsx # Input field
β β β βββ badge.tsx # Badge component
β β β βββ paid-feature.tsx # Premium feature lock
β β β βββ ... # More UI components
β β β
β β βββ workflow/ # Workflow components
β β βββ WorkflowCanvas.tsx # Main canvas
β β βββ NodePalette.tsx # Node sidebar
β β βββ ... # More workflow components
β β
β βββ hooks/ # Custom React hooks
β β βββ use-mobile.ts # Mobile detection
β β βββ use-subscription-updates.ts
β β βββ use-workflow-limits.ts
β β
β βββ lib/ # Utilities & configs
β β βββ models/ # Mongoose models
β β β βββ User.ts # User model
β β β βββ Workflow.ts # Workflow model
β β β βββ Message.ts # Contact message model
β β β βββ Newsletter.ts # Newsletter model
β β β
β β βββ auth.ts # NextAuth config
β β βββ mongodb.ts # MongoDB connection
β β βββ stripe.ts # Stripe configuration
β β βββ cloudinary.ts # Cloudinary setup
β β βββ plans.ts # Subscription plans
β β βββ types.ts # TypeScript types
β β βββ utils.ts # Utility functions
β β βββ rate-limit.ts # API rate limiting
β β βββ admin-middleware.ts # Admin auth middleware
β β
β βββ store/ # State management
β β βββ workflowStore.ts # Workflow state
β β
β βββ types/ # TypeScript definitions
β βββ admin.ts # Admin types
β
βββ types/ # Global type definitions
β βββ next-auth.d.ts # NextAuth type extensions
β
βββ .env # Environment variables
βββ .env.example # Example env file
βββ .gitignore # Git ignore rules
βββ components.json # Shadcn UI config
βββ eslint.config.mjs # ESLint configuration
βββ next.config.ts # Next.js configuration
βββ package.json # Dependencies
βββ pnpm-lock.yaml # Lock file
βββ postcss.config.mjs # PostCSS config
βββ tailwind.config.ts # Tailwind config
βββ tsconfig.json # TypeScript config
βββ README.md # This file
| Route | Description |
|---|---|
/ |
Landing page with hero section and features |
/about |
About the platform and team |
/features |
Detailed feature showcase |
/pricing |
Subscription plans and pricing |
/blog |
Blog articles and updates |
/contact |
Contact form |
/faq |
Frequently asked questions |
/privacy |
Privacy policy |
/terms |
Terms of service |
/security |
Security information |
/integrations |
Available integrations |
/templates |
Workflow templates |
/guides |
User guides |
/tutorials |
Video tutorials |
/changelog |
Product updates |
| Route | Description |
|---|---|
/auth/signin |
User sign in |
/auth/signup |
User registration |
| Route | Description |
|---|---|
/dashboard |
User dashboard with workflows |
/workflow/new |
Create new workflow |
/workflow/[id] |
Edit existing workflow |
/profile |
User profile management |
/profile/complete |
Complete profile setup |
/billing |
Subscription and billing |
/payment-success |
Payment confirmation |
/docs |
Documentation |
| Route | Description | Access |
|---|---|---|
/admin/dashboard |
Admin overview & statistics | Free |
/admin/users |
User management | Premium |
/admin/workflows |
Monitor all workflows | Premium |
/admin/messages |
Contact messages | Premium |
/admin/newsletter |
Email subscribers | Premium |
/admin/paid-members |
Subscription management | Premium |
/admin/settings |
System configuration | Premium |
Before you begin, ensure you have the following installed:
- Node.js: Version 18.0 or higher (Download)
- pnpm: Package manager (Install)
npm install -g pnpm
- MongoDB: Database (choose one):
- MongoDB Atlas (Cloud - Recommended)
- MongoDB Community (Local)
- Git: Version control (Download)
- Google Cloud Account: For Google OAuth (Console)
- Stripe Account: For payment processing (Sign Up)
- Cloudinary Account: For image uploads (Sign Up)
git clone https://github.com/noorjsdivs/webflow-app-yt.git
cd webflow-app-ytpnpm installCopy the example environment file:
cp .env.example .envOpen the .env file and configure the following variables:
Option A: MongoDB Atlas (Recommended for Production)
- Go to MongoDB Atlas
- Create a free account and log in
- Click "Build a Database"
- Choose "Free" tier (M0 Sandbox)
- Select your preferred cloud provider and region
- Click "Create"
- Set up database access:
- Click "Database Access" in left sidebar
- Click "Add New Database User"
- Create username and password
- Set privileges to "Read and write to any database"
- Set up network access:
- Click "Network Access" in left sidebar
- Click "Add IP Address"
- Click "Allow Access from Anywhere" (0.0.0.0/0) or add your IP
- Get connection string:
- Click "Database" in left sidebar
- Click "Connect" on your cluster
- Choose "Connect your application"
- Copy the connection string
- Replace
<password>with your database user password - Replace
<dbname>with your database name (e.g.,webflow)
MONGODB_URI="mongodb+srv://username:[email protected]/webflow?retryWrites=true&w=majority"Option B: Local MongoDB
MONGODB_URI="mongodb://localhost:27017/webflow-app"Generate a secure secret:
openssl rand -base64 32Add to .env:
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET="your-generated-secret-here"For production:
NEXTAUTH_URL=https://yourdomain.com- Go to Google Cloud Console
- Create a new project or select existing:
- Click "Select a project" dropdown
- Click "New Project"
- Enter project name and click "Create"
- Enable Google+ API:
- Go to "APIs & Services" β "Library"
- Search for "Google+ API"
- Click and enable it
- Create OAuth credentials:
- Go to "APIs & Services" β "Credentials"
- Click "Create Credentials" β "OAuth client ID"
- Configure consent screen if prompted:
- Choose "External"
- Fill in app name, user support email, developer email
- Add scopes:
email,profile - Add test users if needed
- Select "Web application" as application type
- Add authorized redirect URIs:
- Development:
http://localhost:3000/api/auth/callback/google - Production:
https://yourdomain.com/api/auth/callback/google
- Development:
- Click "Create"
- Copy credentials to
.env:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret- Go to Cloudinary
- Sign up for a free account
- From your dashboard, get:
- Cloud Name
- API Key
- API Secret
- Add to
.env:
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret- Go to Stripe Dashboard
- Create an account and verify email
- Get your API keys:
- Click "Developers" in top right
- Click "API keys"
- Copy "Publishable key" and "Secret key"
- Create products and prices:
- Go to "Products" in dashboard
- Create products for each plan:
- Professional Plan
- Business Plan
- For each product, create two prices:
- Monthly subscription
- Yearly subscription
- Copy the Price IDs (starts with
price_)
- Set up webhooks:
- Go to "Developers" β "Webhooks"
- Click "Add endpoint"
- Endpoint URL:
https://yourdomain.com/api/stripe/webhook - Select events:
checkout.session.completedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deleted
- Copy the "Signing secret"
For local testing, use Stripe CLI:
stripe login
stripe listen --forward-to localhost:3000/api/stripe/webhookAdd to .env:
STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Price IDs from your Stripe products
STRIPE_PROFESSIONAL_MONTHLY_PRICE_ID=price_...
STRIPE_PROFESSIONAL_YEARLY_PRICE_ID=price_...
STRIPE_BUSINESS_MONTHLY_PRICE_ID=price_...
STRIPE_BUSINESS_YEARLY_PRICE_ID=price_...For the premium admin features, set your purchase link:
NEXT_PUBLIC_PURCHASE_LINK=https://buymeacoffee.com/yourusernameOr use your own payment link.
NODE_ENV=developmentFor production:
NODE_ENV=production# MongoDB Configuration
MONGODB_URI="mongodb+srv://username:[email protected]/webflow?retryWrites=true&w=majority"
# NextAuth.js Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET="your-generated-secret-32-chars"
# Google OAuth Configuration
GOOGLE_CLIENT_ID=123456789.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-your-secret
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=123456789
CLOUDINARY_API_SECRET=your-secret
# Stripe Configuration
STRIPE_PUBLISHABLE_KEY=pk_test_your-key
STRIPE_SECRET_KEY=sk_test_your-key
STRIPE_WEBHOOK_SECRET=whsec_your-secret
STRIPE_PROFESSIONAL_MONTHLY_PRICE_ID=price_xxx
STRIPE_PROFESSIONAL_YEARLY_PRICE_ID=price_xxx
STRIPE_BUSINESS_MONTHLY_PRICE_ID=price_xxx
STRIPE_BUSINESS_YEARLY_PRICE_ID=price_xxx
# Premium Purchase Link
NEXT_PUBLIC_PURCHASE_LINK=https://buymeacoffee.com/yourusername
# Application Configuration
NODE_ENV=developmentpnpm devThe application will start at http://localhost:3000
# Build the application
pnpm build
# Start production server
pnpm start# Run linting
pnpm lint
# Type checking
pnpm type-check-
Sign Up
- Visit http://localhost:3000
- Click "Sign Up" or "Get Started"
- Create account with email or Google
-
Complete Profile
- Add profile picture
- Fill in personal information
- Set preferences
-
Explore Dashboard
- View your workflows
- Check subscription status
- Access quick actions
- Click "Create Workflow" or "New Workflow"
- Enter workflow name and description
- Drag nodes from the sidebar to canvas
- Connect nodes by dragging from output to input
- Configure each node by clicking on it
- Save your workflow
- Test execution with "Run" button
| Plan | Price | Workflows | Executions | Features |
|---|---|---|---|---|
| Free | $0 | 5 | 1,000/mo | Basic features, Email support |
| Professional | $29/mo | Unlimited | 10,000/mo | All features, Priority support |
| Business | $99/mo | Unlimited | 50,000/mo | Advanced features, Phone support |
| Enterprise | Custom | Unlimited | Custom | Dedicated manager, SLA |
Some admin features require a one-time premium purchase:
- User Management
- Workflow Monitoring
- Message Management
- Newsletter Management
- Paid Members Management
- Advanced Settings
Purchase link: Set in NEXT_PUBLIC_PURCHASE_LINK environment variable
-
Push to GitHub
git add . git commit -m "Initial commit" git push origin main
-
Connect to Vercel
- Go to vercel.com
- Click "Import Project"
- Select your GitHub repository
- Configure project settings
-
Set Environment Variables
In Vercel dashboard, go to Settings β Environment Variables and add:
MONGODB_URI NEXTAUTH_URL (use your Vercel domain) NEXTAUTH_SECRET GOOGLE_CLIENT_ID GOOGLE_CLIENT_SECRET CLOUDINARY_CLOUD_NAME CLOUDINARY_API_KEY CLOUDINARY_API_SECRET STRIPE_PUBLISHABLE_KEY STRIPE_SECRET_KEY STRIPE_WEBHOOK_SECRET STRIPE_PROFESSIONAL_MONTHLY_PRICE_ID STRIPE_PROFESSIONAL_YEARLY_PRICE_ID STRIPE_BUSINESS_MONTHLY_PRICE_ID STRIPE_BUSINESS_YEARLY_PRICE_ID NEXT_PUBLIC_PURCHASE_LINK NODE_ENV=production -
Update OAuth Redirect URIs
- Google Cloud Console: Add
https://your-domain.vercel.app/api/auth/callback/google - Update
NEXTAUTH_URLto your Vercel domain
- Google Cloud Console: Add
-
Update Stripe Webhook
- Add new webhook endpoint:
https://your-domain.vercel.app/api/stripe/webhook - Update
STRIPE_WEBHOOK_SECRETwith new signing secret
- Add new webhook endpoint:
-
Deploy
- Click "Deploy"
- Wait for build to complete
- Visit your deployed application
- Create account at railway.app
- Click "New Project" β "Deploy from GitHub repo"
- Add environment variables
- Deploy
- Install Netlify CLI:
npm install -g netlify-cli - Build project:
pnpm build - Deploy:
netlify deploy --prod
MongoDB Atlas (Recommended)
- Create production cluster
- Set IP whitelist to
0.0.0.0/0(all IPs) or specific Vercel IPs - Create database user with strong password
- Update
MONGODB_URIin production environment variables
- Create API Route: Add to
src/app/api/ - Add Components: Create in
src/components/ - Define Types: Add to
src/lib/types.ts - Update Models: Modify Mongoose schemas in
src/lib/models/ - Test: Thoroughly test new features
Edit src/app/globals.css to customize:
- Color variables
- Font families
- Spacing system
- Animation durations
- Define in workflow types
- Add icon and configuration
- Update workflow canvas
- Implement execution logic
We welcome contributions! Here's how you can help:
-
Fork the Repository
git clone https://github.com/your-username/webflow-app-yt.git cd webflow-app-yt -
Create a Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Write clean, documented code
- Follow existing code style
- Add tests if applicable
-
Commit Changes
git commit -m "feat: add amazing feature" -
Push to GitHub
git push origin feature/your-feature-name
-
Open Pull Request
- Go to GitHub repository
- Click "New Pull Request"
- Describe your changes
- Submit for review
Follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Error: connect ECONNREFUSED 127.0.0.1:27017
Solutions:
- Ensure MongoDB is running locally
- Check connection string format
- Verify network access in MongoDB Atlas
- Check firewall settings
Error: [next-auth][error][NO_SECRET]
Solutions:
- Set
NEXTAUTH_SECRETin.env - Generate new secret:
openssl rand -base64 32 - Ensure
.envis not in.gitignorefor local development
Error: Module not found
Solutions:
# Clear cache and reinstall
rm -rf .next node_modules
pnpm install
pnpm devError: No signatures found matching the expected signature
Solutions:
- Use Stripe CLI for local testing
- Verify webhook secret matches
- Check endpoint URL is correct
- Ensure raw body parsing is enabled
- π Documentation
- π¬ Discord Community
- π GitHub Issues
- π§ Email: [email protected]
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - React framework
- React Flow - Workflow visualization
- MongoDB - Database
- Stripe - Payment processing
- Vercel - Hosting platform
- TailwindCSS - Styling
- Radix UI - UI components
- Lucide - Icons
- Developer: Noor Mohammad
- GitHub: @noorjsdivs
- YouTube: ReactBD
- Website: reactbd.com
- User authentication
- Workflow builder
- Database integration
- Basic subscription system
- Admin dashboard
- Payment integration
- Theme customization
- Real-time collaboration
- Workflow templates
- Advanced analytics
- Slack integration
- Google Sheets integration
- Email service integration
- Webhook support
- API marketplace
- Custom node SDK
- Team management
- Role-based access control
- Audit logs
- SSO integration
- White labeling
- Dedicated instances
β Star this repository if you find it helpful!
npm run dev: Start development servernpm run build: Build for productionnpm run start: Start production servernpm run lint: Run ESLint
- Define Node Type: Add to
NODE_TYPESinsrc/lib/types.ts - Add Icon: Import icon in components
- Update Configuration: Add config form in
NodeConfigModal.tsx - Handle Execution: Add execution logic in workflow run API
Edit src/app/globals.css to customize:
- Color schemes
- Node styling
- Animations
- React Flow appearance
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
MongoDB Connection Error
- Verify MongoDB is running (local) or connection string is correct (Atlas)
- Check network connectivity and firewall settings
NextAuth Configuration Error
- Ensure
NEXTAUTH_SECRETis set - Verify
NEXTAUTH_URLmatches your domain
Google OAuth Not Working
- Check client ID and secret are correct
- Verify redirect URI is properly configured
- Ensure Google+ API is enabled
Build Errors
- Clear
.nextdirectory andnode_modules - Run
npm installagain - Check for TypeScript errors
- Check the Issues page
- Review MongoDB and NextAuth.js documentation
- Check React Flow documentation for workflow-related issues
- Real third-party integrations (Slack, Google Sheets, etc.)
- Workflow scheduling and cron management
- Advanced conditional logic
- Workflow templates marketplace
- Team collaboration features
- Workflow analytics and monitoring
- Custom node development SDK
Built with β€οΈ using Next.js, React Flow, and MongoDB
