Update: 5 October 2026
The current company portfolio classifies LaunchPad as in development. The earlier self-hosted build described below is an internal implementation, not evidence of a commercially launched service. Planning, channel-specific content and provider publication should each be validated separately.
Original engineering notes from May 2026
Every time I launch a product, the same thing happens. I have a list of 20 to 50 places to post — Reddit, Product Hunt, Hacker News, niche forums, a handful of Slack and Discord communities — and within an hour the whole thing has scattered across a spreadsheet, three browser tabs, and my own memory. LaunchPad is the tool I built to stop dropping the ball. It's a self-hosted platform that handles the full launch marketing lifecycle: planning the checklist, generating per-platform content, posting to communities, and watching what comes back.
It's live at a small scale, self-hosted on a VPS. I'm not selling it. It's the engine I run my own launches through, and it has taught me more about architecture debt than any of my other products.
The problem it actually solves
A launch isn't one task. It's a long tail of small, easy-to-forget tasks that each have their own timing, their own format, and their own community norms. The Reddit post that works in one subreddit gets you banned in another. The Product Hunt copy is not the Hacker News copy. Keeping all of that in your head while also, you know, watching whether anyone replied is the part that breaks.
LaunchPad starts with a launch checklist. There are pre-seeded templates for SaaS, mobile, and open-source launches, and the whole thing runs as a kanban board with progress tracking so I can see at a glance what's posted, what's scheduled, and what I forgot. That alone removed most of the "wait, did I post to X yet?" anxiety.
AI content, per platform, with A/B variants
The next layer is content generation. For each channel, LaunchPad generates platform-adapted copy — the tone and length tuned to where it's going — and it produces A/B variants so I'm not guessing with a single shot. This runs through OpenRouter, defaulting to Gemini 2.0 Flash because it's cheap and fast enough that generating a dozen variants costs almost nothing.
On top of that there's subreddit intelligence: the system surfaces relevant subreddits and reply opportunities, so instead of guessing where my audience hangs out, I get recommendations grounded in the actual communities. The analytics side tracks KPIs, conversion funnels, engagement velocity, and a per-platform breakdown, with CSV export when I want to pull it into something else.
The Reddit automation — and the honest caveat
Here's the part I want to be straight about. LaunchPad can auto-post to Reddit through a headless browser pool driven by Playwright. To make that survivable, I built in rate limiting, account rotation, and shadowban/removal detection so the system notices when a post quietly disappears. Credentials are encrypted at rest with Fernet rather than sitting in plaintext.
That's the engineering. The honest part is that automating Reddit posting sits in a gray area with respect to Reddit's terms of service. Headless-browser posting is not an approved API path, and shadowban detection exists precisely because platforms push back on this kind of automation. I built it because manually posting to dozens of communities is genuinely the worst part of a launch, but I'm not going to dress it up as a clever growth hack. It's an open risk. If you build something similar, you should assume accounts can get banned, treat it as a convenience for your own posting rather than a spray-and-pray machine, and read the room on each community's rules. I treat the rotation and detection as harm-reduction, not permission.
The split-brain story: how it sprawled, and how I refactored
LaunchPad started narrow. The whole idea was "automate the launch posting." Then it kept growing. I added competitor change detection. Then GEO and AI-search visibility tracking. Then ASO, influencer tracking, email outreach, teams and auth. Each addition made sense on its own, and each one bolted a new concern onto a codebase that was originally shaped around posting to channels.
The result was a split brain. Half the system thought in terms of "launches and channels," the other half had grown into a general marketing-intelligence suite, and the data model didn't agree with itself about what the central object was. An audit I ran on it made the problem obvious, and I did a project-first refactor: the project became the top-level container, and campaigns became execution containers inside a project. That one change reconciled the two halves. Launches are now just one kind of work that happens under a project, alongside competitor tracking or GEO monitoring.
I'm telling this part because it's the real lesson. A tool that grows feature by feature without anyone re-asking "what is the central thing here?" accumulates architecture debt quietly, and you don't feel it until two parts of the system are modeling the world differently. The refactor wasn't glamorous. It was the most valuable week of work the project got.
GeoRank — the AI-search visibility piece, pitched as a free-tool lead magnet — is the clearest example of the in-progress reality. The backend app and the frontend pages exist, but its evolution task list is empty, which means it's spec-stage and only partially built. I'd rather say that plainly than imply the whole suite is finished.
The stack
The backend is Python with Django 5, Django REST Framework, and Celery plus Beat for scheduled and background work — the posting, the AI generation, the monitoring all run as tasks. The frontend is React 18 with TypeScript, Vite, Tailwind, shadcn/ui, and React Query, around 28 pages at this point. Data lives in PostgreSQL 16, with pgvector planned for GeoRank's semantic features, and Redis 7 handles the Celery broker and caching. The Reddit automation runs on a Playwright browser pool. AI calls go through OpenRouter. Everything ships via Docker Compose, with Traefik terminating TLS (ACME via acme.json) and nginx in front.
The whole thing was built through an /evolve loop — an autonomous build cycle that commits one task per iteration against an EVOLUTION.md queue. Roughly 40 evolution tasks across 7 phases got it to where it is. I've written more about that workflow in my AI-assisted solo dev process, because the way LaunchPad was built is as interesting to me as what it does.
Where it's at, and what's next
LaunchPad is live and self-hosted, running my own launches at a small scale. I have not validated it with other users, I can't claim uptime numbers, and the test coverage is thinner than I'd want before handing it to anyone else. GeoRank needs to be actually finished rather than scaffolded. The Reddit automation needs ongoing care precisely because the platform side of that arrangement can change at any time.
What's next is less about new features and more about hardening the ones that exist — finishing GeoRank, tightening the monitoring, and deciding whether this stays a personal tool or becomes something I'd put in front of other founders. For now it does its job: it keeps me from dropping the launch ball.
If you want the wider context, this is one of the eleven products I'm building as a solo founder, and LaunchPad is downstream of every one of them — they all need launching. I write up these builds as I go; if that's your kind of thing, the newsletter is where the next one lands first.