DevPost AI
Converts your GitHub commits into LinkedIn posts using OpenAI. OAuth for both platforms, BullMQ + Upstash Redis for background scheduling, timezone-aware posting, and a clean review UI before anything goes live.
Role
Solo Builder
Duration
6 weeks
Year
2025
Overview
I built DevPost AI as a personal SaaS project after noticing that most developers — myself included — never talk publicly about what they're building. The knowledge stays locked in commit messages. This tool reads your recent commits, writes developer-voice LinkedIn posts using OpenAI, and schedules them at whatever time you want. You review before anything goes out.
What I built
GitHub OAuth + Commit Fetching
Users connect GitHub via OAuth. The app fetches their recent commits across repos, filters out merge commits and dependabot noise, and groups by date.
AI Post Generation
Each commit group is sent to OpenAI with a carefully tuned system prompt. Output is conversational, first-person developer voice — not corporate speak.
Draft Review UI
Generated posts go into a review queue. Users can edit the copy, tweak the tone, or regenerate before scheduling. Nothing posts without explicit approval.
Scheduled Publishing
BullMQ delayed jobs handle publishing. Users pick a date and time in their local timezone. The scheduler converts to UTC and enqueues the job.
LinkedIn OAuth Publishing
Approved posts go live via LinkedIn's Share API using the user's connected OAuth token. Token refresh is handled automatically.
Challenges solved
NextAuth v5 has a significantly different config structure from v4 — the callbacks, adapter patterns, and session handling are all different. Spent a day migrating to the new pattern
BullMQ on Vercel Edge doesn't have persistent workers. Solved by running the worker as a separate long-lived process alongside the Next.js app
Timezone handling for scheduled posts — storing UTC in Redis but displaying and accepting user input in their local timezone required careful conversion
OpenAI prompts for developer voice kept producing corporate-sounding copy. Iterated on the system prompt heavily to get output that sounds like a developer actually wrote it
LinkedIn API rate limits on post creation — implemented exponential backoff in the BullMQ job processor
Tech stack
Frontend
Backend
Auth
AI
Infra
Need something built?
I'm open to new projects. Let's talk about what you're building.