A complete end-to-end system for generating SEO + AIO + GEO-optimized weekly content for local businesses with multi-tenant dashboard, seed-based content generation, and secure review workflows.
- Seed-Based Content Generation: Ingest URLs, articles, or videos as inspiration
- Multi-Tenant Dashboard: Secure workspaces with Owner/Staff/Client roles
- Weekly Content Packages: Blog posts, video scripts, social media posts, email newsletters
- SEO + AIO + GEO Optimized: Automatic optimization for search engines and AI overviews
- Image Generation: Node-based generation with Sharp resizing for all platforms
- Review & Approval Workflow: Edit, comment, and approve before publishing
- Smart Scheduling: Timezone-aware posting schedules with best-time recommendations
- Platform Support: Facebook, Instagram, LinkedIn, GBP, TikTok, YouTube, Email
- Framework: Next.js 14 (App Router, TypeScript)
- Styling: Tailwind CSS + ShadCN UI
- Authentication: Auth.js (NextAuth v5)
- Database: Prisma + PostgreSQL
- Image Processing: Sharp
- Encryption: AES-256-GCM for API tokens
- Deployment: Vercel-ready
- Node.js 18+ and npm
- PostgreSQL database
- (Optional) Google OAuth credentials
git clone <your-repo>
cd content-accelerator
npm installCreate .env file:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/content_accelerator"
# Auth.js
AUTH_SECRET="your-secret-key-min-32-chars-long"
AUTH_URL="http://localhost:3000"
# Google OAuth (optional)
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
# Encryption Key (32 bytes hex for AES-256)
ENCRYPTION_KEY="generate-with-node-crypto-randomBytes-32-toString-hex"
# Public URL
NEXT_PUBLIC_URL="http://localhost:3000"Generate encryption key:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"# Push schema to database
npm run db:push
# Seed demo data
npx tsx scripts/seed-database.tsnpx tsx scripts/generate-demo-images.tsnpm run devEmail: demo@example.com
Password: demo123
/app
/(dashboard)
/login # Login page
/app
/projects # Projects dashboard
/intake # Content generation intake
/review/[slug] # Review & preview content
/members # Team management
/settings # Platform connections
/(public-site)
/blog/[slug] # SSR blog posts with JSON-LD
/lib
/aio.ts # SEO/AIO validation
/authz.ts # RBAC authorization
/crypto.ts # Token encryption
/db.ts # Prisma client
/images.ts # Image generation & Sharp
/keywords.ts # Keyword optimization
/schedule.ts # Content scheduling
/seed.ts # Seed content parsing
/strings.ts # Text utilities
/prisma
/schema.prisma # Database schema
/review
/[slug] # Generated content weeks
/blog.md
/video-script.md
/social-posts.json
/email.md
/schedule.json
/validation.json
/index.json
/components
/ui # ShadCN components
Navigate to New Content and fill out:
- Seed sources (optional URLs)
- Business details
- Topic and angle
- Target platforms
- Week identifier
Click Generate Content to create a full content week.
- View generated content in the Review page
- Check SEO/AIO validation score
- Edit blog, scripts, social posts, email
- Add comments for team collaboration
- Preview blog post as it will appear publicly
- Review the publishing schedule (timezone-aware)
- Approve content when ready
- Schedule posts to platforms (when integrated)
- Export content for manual posting
- Or connect platforms to auto-schedule (requires platform API setup)
- Passwords: Bcrypt hashed
- API Tokens: AES-256-GCM encrypted at rest
- Sessions: JWT with secure cookies
- RBAC: Owner/Staff/Client permissions
- No Autoposting: Review-first workflow
- Update
IMAGE_SIZESinlib/images.ts - Add platform to Prisma schema
- Create platform-specific templates
- Update intake form
Edit files in /review/[slug]/ or create generators in /lib/
Replace stub in lib/images.ts with:
- DALL-E API
- Midjourney
- Stable Diffusion
- Custom service
Every generated content week includes:
- β SEO title length (β€70 chars)
- β Meta description (120-160 chars)
- β Word count (800-1200)
- β Keyword density (1-2%)
- β H1/H2 structure
- β FAQ section for AIO
- β JSON-LD schema (Article + FAQPage)
- β Local keywords (region-specific)
- β Image alt texts
- β Internal/external links
- Push to GitHub
- Import to Vercel
- Add environment variables
- Deploy!
Vercel automatically:
- Builds Next.js app
- Provisions PostgreSQL (Vercel Postgres)
- Handles serverless functions
Compatible with any Node.js hosting that supports:
- Next.js 14
- PostgreSQL
- Server-side rendering
# Development
npm run dev
# Build
npm run build
# Start production
npm run start
# Database studio
npm run db:studio
# Lint
npm run lintMIT License - feel free to use for commercial projects.
Contributions welcome! Please:
- Fork the repo
- Create a feature branch
- Submit a PR
- Implement real image generation API integration
- Add platform OAuth flows (Facebook, LinkedIn, etc.)
- Build actual posting automation
- Add real-time collaboration (comments, notifications)
- Implement content versioning
- Add analytics dashboard
- Create mobile app
For questions or issues, open a GitHub issue or contact [your-email].
Built with β€οΈ using Next.js, Prisma, and AI-powered content optimization.