A production-ready graphic design SaaS platform with an intuitive drag-and-drop editor, AI-powered features, and complete subscription management. Built with Next.js 14, Fabric.js canvas engine, Replicate AI, and Stripe payments.
New to this project? Follow our step-by-step setup guide:
Start here: 00-PREREQUISITES.md
Estimated setup time: ~90 minutes
- π¨ Professional Design Editor - Templates, text, shapes, drawing tools, and layers
- π€ AI-Powered Tools - Image generation and background removal
- π Multi-Auth - Google, GitHub, and Email/Password
- π³ Stripe Subscriptions - Complete payment management
- π€ Export Options - PNG, JPG, SVG, JSON
- π± Fully Responsive - Works on all devices
- π Project Management - Create and organize multiple projects
- π― Unsplash Integration - Millions of free stock photos
Frontend: Next.js 14, React 18, TypeScript, TailwindCSS, Shadcn UI, Fabric.js
Backend: Hono.js, Drizzle ORM, Neon PostgreSQL, Auth.js
AI & Media: Replicate AI, Unsplash, UploadThing
Payments: Stripe
State: Zustand, TanStack Query
Before starting, you need:
- Node.js (v18+) or Bun
- Git
- Free accounts for: Neon, UploadThing, Replicate, Unsplash, Stripe, Google, GitHub
π See Prerequisites Guide for details
Follow these guides in order:
- Prerequisites - What you need (2 min)
- Installation - Clone and install (5 min)
- Database Setup - Neon PostgreSQL (10 min)
- Unsplash API - Stock photos (5 min)
- UploadThing API - File uploads (5 min)
- Replicate API - AI features (10 min)
- Stripe Setup - Payments (20 min)
- Templates Setup - Design templates (15 min)
- GitHub OAuth - GitHub login (5 min)
- Google OAuth - Google login (10 min)
- Deployment - Deploy to Vercel (15 min)
Need help? Check Troubleshooting Guide
# Install dependencies
bun install
# Setup database
bun run db:generate
bun run db:migrate
# Start development
bun dev
# Open database GUI
bun run db:studioFull command reference: See Installation Guide
Create a .env file with these variables:
DATABASE_URL=
AUTH_SECRET=
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_UNSPLASH_ACCESS_KEY=
UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=
UPLOADTHING_TOKEN=
REPLICATE_API_TOKEN=
STRIPE_SECRET_KEY=
STRIPE_PRICE_ID=
STRIPE_WEBHOOK_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=Detailed guide: Environment Variables Reference
Unlock with subscription:
- β¨ Unlimited projects
- π¨ Premium templates
- π€ Unlimited AI generations
- π€ High-resolution exports
- πΎ Priority support
- Setup Guides - Complete step-by-step setup
- Troubleshooting - Common issues and solutions
- Environment Variables - All variables explained
- Next.js Documentation
- Drizzle ORM Documentation
- Auth.js Documentation
- Fabric.js Documentation
- Stripe Documentation
- Replicate Documentation
Course: YouTube/Original Tutorial (18-hour course)
Creator: Code With Antonio
Deployment: Vercel
UI Components: Shadcn
This project is based on the tutorial by Antonio Erdeljac.
If you found this project helpful, please give it a star!
Need help?
- Check Documentation
- Review Troubleshooting
- Create an issue on GitHub
Ready to start? β Begin with Prerequisites Guide π
