Newsletter content repurposing platform — turn your newsletter into social media posts.
Turborepo monorepo:
| App | Stack | Port |
|---|---|---|
apps/backend |
Express.js, Drizzle ORM, PostgreSQL | 3002 |
apps/web |
Next.js 16, Tailwind CSS | 3010 |
- Node.js ≥ 18
- pnpm 9
- PostgreSQL 15+
# Install dependencies
pnpm install
# Configure backend
cp apps/backend/.env.example apps/backend/.env
# Fill in required values (DATABASE_URL, BETTER_AUTH_SECRET, etc.)
# Configure frontend
cp apps/web/.env.example apps/web/.env.local
# Push DB schema
cd apps/backend && npx drizzle-kit push && cd ../..
# Run in development
pnpm devThe backend runs on http://localhost:3002 and the frontend on http://localhost:3010.
See apps/backend/.env.example for all required and optional variables.
Key secrets to configure:
DATABASE_URL— PostgreSQL connection stringBETTER_AUTH_SECRET— Session signing keyENCRYPTION_KEY— 32-byte hex key for OAuth token encryptionSTRIPE_SECRET_KEY— Stripe API key (usesk_test_for dev)GROK_API_KEY— xAI/Grok for LLM features
| Command | Description |
|---|---|
pnpm dev |
Start all apps in dev mode |
pnpm build |
Build all apps |
pnpm lint |
Lint all apps |
pnpm check-types |
TypeScript type checking |
- License:
LICENSE - Contributing guide:
CONTRIBUTING.md - Code of conduct:
CODE_OF_CONDUCT.md - Security policy:
SECURITY.md