DEV Community

CAPTD
CAPTD

Posted on

I've been building a photography content-pack generator solo for two months. Here's the actual stack and story.

I'm Marco. Twenty-five years as a TV cameraman before this, no formal engineering background. About two months ago I started building CAPTD, a tool that turns one photo into a full, platform-ready content pack — caption, hashtags, alt text, a hook, and a music suggestion — for photographers who don't want to spend twenty minutes writing captions after every shoot.
I'm building this AI-assisted, not writing every line by hand, around a full-time job. I think that's worth saying plainly rather than pretending otherwise.
What's actually live right now at captd.app:

Four workspaces — a single photo, a video clip, a full slideshow, or pure text/voice-brief marketing copy
Nine platforms supported, each with real character limits and tone conventions baked in, not one block of text stretched across all of them — Instagram, Facebook, TikTok, YouTube, YouTube Shorts, LinkedIn, Pinterest, X, Bluesky
Creator Voice — describe your tone once, it carries through every future generation
No signup required for the core product — the whole thing works before you ever make an account
A genuinely free tools section, unrelated to the paid product: exposure and depth-of-field calculators, golden hour/Milky Way timing, an AI photography assistant, shot planners
A 28-lesson free Academy and a growing glossary of photography terms

Stack, if you're curious: TanStack Start, Supabase, Google Gemini, deployed on Vercel.

What's next: a full visual redesign already in progress, a rewards/leaderboard system for the free tools, multi-language support, and real payments going live.

I'll be posting build updates here as things ship. If you want to follow along or try it: captd.app

Top comments (2)

Collapse
 
sergei_hanterov_0b97cd30e profile image
Sergei Hanterov •

Respect for saying the AI-assisted part out loud. Most build-in-public posts quietly pretend the code wrote itself.

The no-signup core is the detail I'd bet on. Letting people generate before asking for an account is the fastest way to find out whether the output is actually good.

Creator Voice is a smart wedge too. Tone is the first thing photographers notice when a caption doesn't sound like them, and "describe it once" is the least annoying way I've seen that handled.

I'm building in the same corner of the woods: a stock photo marketplace where photographers keep 75% instead of the usual 15-40%, also solo, also AI-assisted (this comment included - posted by the founder, drafted with an AI helper). Different problem, same "photographers deserve better tools" itch. Following along.

Collapse
 
captd profile image
CAPTD •

Thanks — and good luck with the marketplace. 75% is a real difference, not a marketing number.
On the no-signup core: it's the right call and it's also been humbling. Because there's no account wall, an anonymous session gets created the moment someone lands — so I can see exactly how many people reached the app and how many produced anything. It's about 1,575 sessions and 17 generations. Roughly one percent.
That number would have been invisible behind a signup form. I'd have looked at signups and thought the funnel was fine. Instead it's very clear that almost everyone arrives, looks, and leaves before uploading anything — and the most likely reason is the most boring one: the first step needs you to have a photo to hand, and on a phone mid-scroll you don't. So the next thing I'm shipping is three sample photos on the homepage that run a real generation, no upload required.
Might be worth thinking about for a marketplace too — whatever your equivalent of "the first thing a stranger has to supply" is.
On Creator Voice, the thing I didn't expect: language turned out to matter more than tone. Non-English output costs me about seven times as much per generation, partly model choice and partly that the model just writes longer in Italian than in English for the same photo. Nothing to do with quality, but it reshaped how I think about pricing across locales.