A full-stack social media content management application built with modern web technologies. Create, manage, and schedule content across multiple social media platforms with AI-powered content generation.
- Multi-platform Content Management: Create and manage posts for LinkedIn, Twitter, and Bluesky
- Note-to-Post Workflow: Draft content as notes and convert them to platform-specific posts
- AI Content Generation: Integrated Gemini AI for content optimization and generation
- Multi-provider Authentication: Support for Google, LinkedIn OAuth, and local authentication
- Scheduling: Schedule posts for optimal timing
- Analytics Dashboard: Track performance and engagement statistics
- Modern UI: Clean, responsive interface built with Tailwind CSS and shadcn/ui
- NestJS - Scalable Node.js framework
- Prisma ORM - Type-safe database access
- PostgreSQL - Primary database
- JWT - Authentication tokens
- Gemini AI - Content generation
- React - UI library
- Vite - Build tool and dev server
- TanStack Router - File-based routing
- TanStack Query - Server state management
- Zustand - Global state management
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Reusable UI components
This is a Turborepo monorepo with two main applications:
apps/server/- NestJS backend API with Prisma ORMapps/web/- React frontend using Vite, TanStack Router, and Tailwind CSS@repo/eslint-config- Shared ESLint configurations@repo/typescript-config- Shared TypeScript configurations
Each package/app is 100% TypeScript.
- Node.js >=18
- PostgreSQL database
- pnpm package manager
-
Clone the repository
-
Install dependencies:
pnpm install
-
Set up environment variables:
- Copy
.env.exampleto.envinapps/server/ - Configure database connection and OAuth credentials
- Copy
-
Set up the database:
cd apps/server npx prisma migrate dev
To develop all apps and packages:
pnpm devTo run individual applications:
# Backend only
pnpm dev --filter=server
# Frontend only
pnpm dev --filter=webTo build all apps and packages:
pnpm buildTo build individual applications:
# Backend only
pnpm build --filter=server
# Frontend only
pnpm build --filter=web# Run ESLint across all packages
pnpm lint
# Format code with Prettier
pnpm format
# Run TypeScript type checking
pnpm check-types# Run Jest unit tests
pnpm test
# Run end-to-end tests
pnpm test:e2e
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:cov# Generate Prisma client (runs automatically on install)
npx prisma generate
# Run database migrations in development
npx prisma migrate dev
# Open Prisma Studio database GUI
npx prisma studioBackend (NestJS)
AuthModule- Multi-provider OAuth and JWT authenticationUsersModule- User management and profilesNotesModule- Draft content creation with paginationPostsModule- Social media post scheduling with status filteringStatsModule- Dashboard analytics and statisticsGeminiModule- AI content generation integration
Frontend (React)
- Context-based authentication with JWT tokens
- File-based routing with TanStack Router
- Server state management with TanStack Query
- Global state management with Zustand
- Responsive UI with Tailwind CSS and shadcn/ui components
- Content Creation: Users create Notes (draft content)
- Platform Targeting: Notes can be converted to Posts for specific platforms (LinkedIn, Twitter, Bluesky)
- Scheduling: Posts can be scheduled or published immediately
- AI Enhancement: Integrated AI helps generate and optimize content
- Analytics: Track performance and engagement across platforms
- Users: Authentication, profiles, and social media links
- Notes: Draft content that can be converted to posts
- Posts: Social media posts with scheduling and platform targeting
- Accounts/Sessions: OAuth account linking and session management
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request