A self-hosted social media scheduling app built with Laravel. Connect your Twitter, Facebook, and LinkedIn accounts, compose posts, and schedule them with cron-based automation.
- PHP 8.2+
- Composer
- Node.js 18+ & npm
- MySQL, SQLite, or PostgreSQL
git clone <repo-url> postflow
cd postflow
composer install
npm install && npm run buildThen open the app in your browser. On the first visit you'll see a Setup Wizard that walks you through:
- Database configuration (SQLite works out of the box, or enter MySQL/PostgreSQL credentials)
- Creating the
.envfile and application key - Running migrations and seeding subscription plans
- Creating your admin account
Once setup completes you're taken straight to the dashboard.
If you prefer to configure everything by hand:
cp .env.example .env
php artisan key:generateEdit .env with your database credentials, then:
php artisan migrate
php artisan db:seed# All-in-one dev server (web + queue worker + Vite + log tail)
composer dev
# Or just the web server
php artisan serveTo enable "Connect with Twitter/Facebook/LinkedIn" buttons, register an app on each platform's developer portal and add the credentials to .env:
| Platform | Env Variables | Developer Portal |
|---|---|---|
TWITTER_CLIENT_ID, TWITTER_CLIENT_SECRET |
https://developer.twitter.com | |
FACEBOOK_APP_ID, FACEBOOK_APP_SECRET |
https://developers.facebook.com | |
LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET |
https://linkedin.com/developers |
Set each platform's callback URL to: https://yourdomain.com/auth/{platform}/callback
- Multi-platform posting — Twitter, Facebook, LinkedIn, Instagram
- Cron-based scheduling — Fine-grained control with cron expressions
- Bulk posting from files — Upload CSV/text files and schedule line-by-line
- Subscription tiers — Starter, Professional, and Enterprise plans
- Live character-count previews — Platform-specific limits while composing
- OAuth integration — Connect accounts via Laravel Socialite
- Laravel 12 / PHP 8.2
- Vanilla CSS design system (no Tailwind dependency)
- Laravel Socialite for OAuth
- Database-backed queues and sessions
MIT