// the take
contentport is a self-hostable Twitter/X content tool for founders — AI-assisted tweet drafting, scheduling, a topic-monitor feed, and video-to-tweet transcription, built on Next.js App Router with Drizzle, better-auth, and Stripe billing. It's aimed at developers who want an open alternative to Typefully/Tweethunter, or who want to study a real multi-tenant SaaS codebase with AI features wired in.
The transcription pipeline is its own AWS CDK Lambda stack with jest tests, not just a cron job bolted onto the main app — shows real separation of concerns. The Lexical-based tweet editor has custom plugins (mentions, link previews, code nodes) built specifically around Twitter's character-count and threading quirks rather than a generic rich-text widget. It's a complete commercial-grade stack end to end: Stripe subscriptions, S3 media, Redis, QStash for queuing — useful as a reference for wiring these together, not just a toy CRUD app.
The README is literally a roadmap and bug list, not documentation — no setup steps, no architecture overview, no env var explanation beyond .env.example; you're reading source to understand how anything connects. Last push was December 2025, roughly ten months before this check, despite an open roadmap implying active work — momentum has stalled. It's deeply coupled to paid third-party services (Stripe, S3, QStash, Firecrawl, OpenRouter) throughout the server routers, so self-hosting means accounts on five-plus vendors before you see a working instance. Two lockfiles for the same package manager (bun.lock and bun.lockb) plus a separate package-lock.json inside jobs/transcription suggests tooling hasn't been cleaned up.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →