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.example
to.env
inapps/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 dev
To run individual applications:
# Backend only
pnpm dev --filter=server
# Frontend only
pnpm dev --filter=web
To build all apps and packages:
pnpm build
To 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 studio
Backend (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