umair.
AI SaaS Tool2025

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

01

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

02

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

03

Timezone handling for scheduled posts — storing UTC in Redis but displaying and accepting user input in their local timezone required careful conversion

04

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

05

LinkedIn API rate limits on post creation — implemented exponential backoff in the BullMQ job processor

Tech stack

Frontend

Next.js 16TypeScriptTailwindCSS

Backend

Node.jsBullMQUpstash RedisMongoDB

Auth

NextAuth v5GitHub OAuthLinkedIn OAuth

AI

OpenAI GPT-4oPrompt Engineering

Infra

VercelBackground WorkerCron

Need something built?

I'm open to new projects. Let's talk about what you're building.

Get in touch