A mobile-first content operations app that converts raw articles and social posts into branded social media assets.
This project combines SvelteKit, PocketBase, Remotion, Mistral, and Replicate to automate the full workflow from ingestion to render delivery.
9:16 video, 4:5 image, tweet-style image)/feeds or create a post manually in /create//scraped/[id] and choose template + generation settings/gallery and /renderssrc/remotion)src/lib/render-queue.tssrc/lib/server/scrape-queue.tshourly, 6h, daily)@remotion/cli, @remotion/player, @remotion/media-parser)npm install
cp .env.example .env
Required variables:
PRIVATE_POCKETBASE_URLPUBLIC_POCKETBASE_URLPRIVATE_POCKETBASE_ADMIN_USERNAMEPRIVATE_POCKETBASE_ADMIN_PASSWORDPRIVATE_REPLICATE_API_TOKENPRIVATE_MISTRAL_API_KEYOptional variables:
PRIVATE_REPLICATE_MODEL (defaults in code if omitted)Import pb_schema.json into your PocketBase instance.
npx tsx scripts/seed-database.ts
npm run dev
npm run dev - start dev servernpm run build - production buildnpm run preview - preview production buildnpm run check - Svelte + TypeScript checksnpm run lint - ESLint/ - content feed with filters and infinite scroll/scraped/[id] - per-item generation workspace/create - manual content creation flow/feeds - feed source management/gallery - generated metadata and outputs/renders - rendered media library/dev - internal development toolsPOST /api/render-queue - enqueue render jobsGET /api/render-queue - queue status/jobsPOST /api/generate-single - generate one template from source contentPOST /api/generate-bundle - generate multi-variation asset bundlePOST /api/manual-create - create + enqueue from manual inputGET /api/feeds - list/test feed sourcesPOST /api/feeds - create feed sourceGET /api/progress/stream - real-time progress SSEdocker compose up --build