Content Machine is a self-hosted, multi-workspace dashboard and API for capturing ideas and managing posts and videos. It publishes through PostSyncer. It also has Telegram capture, AI-assisted triage, Google Drive access, and a presentation player for video decks.
- Laravel 13 app with a workspace-scoped dashboard and token-authenticated
/api/v1endpoints. - Scratch Pad capture from the dashboard and Telegram. Link resolution and voice transcription run in the queue.
- Ideas, posts, and videos stored in PostgreSQL. Posts and videos can be scheduled or published through workspace-configured PostSyncer accounts.
- Queued publishing with checkpoints and explicit recovery for uncertain PostSyncer operations.
- Google Drive integration for video exports and a presentation player for video decks.
See the architecture overview, the API guide, and the PostSyncer guide.
You'll need PHP 8.3+, Composer, Node.js, npm, and PostgreSQL. The test suite currently needs PHP 8.4 because Pest 5 requires it. Follow local setup for installation and database setup.
composer install
npm ci
cp .env.example .env
php artisan key:generate
php artisan migrate
composer run devSee CONTRIBUTING.md for project conventions and checks.
CI runs PHP tests against PostgreSQL 17. See local
setup
before running tests locally.
See SECURITY.md for how to report a vulnerability.