*What it does:*
- Schedule posts across multiple platforms simultaneously
- Platform-specific metadata (YouTube titles/descriptions, TikTok hashtags, Instagram captions)
- Automated publishing via cron jobs
- Account management for multiple social accounts
- Real-time post queue with status tracking (scheduled, posted, failed)
*Tech stack:*
- Astro + React for the frontend
- Prisma + PostgreSQL for data
- Better-auth for authentication
- Google Cloud Storage for media
- node-cron on a Digital Ocean droplet
*Why I built it:*
Most social media schedulers are either expensive SaaS products or locked behind complex enterprise tools. I wanted something free to use and easy to incorporate into a workflow.
*What was challenging:*
Each platform has its own quirks – TikTok's creator API, YouTube's OAuth scopes, Instagram's Graph API. The OAuth verification process was brutal:
- Google took several rounds of revisions (had to add a landing page with privacy/terms just for their requirements)
- TikTok only needed 3 rounds but each round took several weeks for feedback, so it actually took longer than Google
- Dealing with different API restrictions across all platforms
I also had to migrate off Vercel because of their request size limits (video uploads) and cron job pricing. Running node-cron on a $6/month Digital Ocean droplet ended up being way more cost-effective.
The project uses a simple API design, so you can integrate it into your own workflows or build CLI tools on top of it.
Would love to hear your feedback and ideas for improvements!