News

Launching GhostSVG: How One Stubborn Prompt Turned Into a Product

The midnight tale of containers, wedding bells, and a laptop that refused to sleep—why I built an AI illustration generator and where it’s headed next.

Launching GhostSVG: How One Stubborn Prompt Turned Into a Product

Containers by Day, Code by Night

I’m a developer, full stop. For the past few years, though, my daylight hours have been hijacked by my dad’s shipping-container business. One moment I’m wrangling forklift schedules, the next I’m filling out customs forms that look like they were faxed straight from 1998. But the second the warehouse lights flick off, I sneak back to what I love—late-night commits, half-finished side projects, and way too many browser tabs about whatever framework just dropped.

Earlier this year I started tinkering with a DIY wedding-site generator. Juyeon and I aren’t officially engaged yet, but the trajectory is obvious, and I wanted our eventual site to be ours, built line-by-line. Vercel had just launched its Platforms kit, so I dove in—because nothing says romance like serverless functions at 2 a.m.

The Illustration Rabbit Hole (a.k.a. The Pain)

A wedding site without illustrations feels like a ceremony without flowers. I thought I’d grab a few cute graphics and move on. Oh boy. Stock libraries looked tacky, so I called on ChatGPT’s image API. Cue the roller-coaster: one prompt gave me a gorgeous bouquet; the next served a bouquet floating in outer space.

The real kicker? Backgrounds. I begged for transparent SVGs; ChatGPT happily produced PNGs with white boxes. I kept tweaking the prompt—remove background, no background, TRANSPARENT BACKGROUND, PLEASE—and still ended up exporting, masking, and rage-cropping in Figma. Twenty attempts per illustration, each generation a two-minute wait. Pain. In. The. Ass. Around 3 a.m., after yet another hallucinated rosebush, I slammed my laptop shut, stared at the ceiling, and thought, It cannot possibly be this hard. I’m stubborn, so I opened it again and kept digging.

Realizing the Tech Was Already Here

Stable Diffusion and Fal.ai were sitting there, quietly capable of learning any illustration style from just five reference images. SVG is practically the native language of the web—resolution-free, tiny file size, easy to tweak. The ingredients existed, yet nobody had glued them together in a way that felt built for devs and designers. I felt dumbfounded that I’d spent nights on a hunt that should’ve been a five-second API call.

Writing "ghostsvg" and Hitting Enter

So I did what any sleep-deprived developer would do: opened a blank repo, typed ghostsvg, hit Enter, and brewed another coffee. I wired Fal.ai under the hood, forced every endpoint to spit back clean SVG, added a real background remover (one that doesn’t leave ghost pixels), and slapped on a bulk generation queue because AI never nails it first try. By sunrise I had a scrappy prototype. Two weeks later I was using GhostSVG to design… GhostSVG. Yes, meta. Also the first time I shipped a product without pulling an all-nighter scouring Unsplash.

What You Can Actually Do Today

Pop open the app, pick from my favorite CC0 styles—Open Doodles, Humaaans, Open Peeps, plus a couple of secret sauces—drop in a handful of your own refs if you want, and type your prompt. GhostSVG hands back crisp vectors in the time it takes to stretch your wrists. Need ten options? Fire the bulk button and watch them stack while you refill your mug. Because everything’s SVG, changing a color in Figma is literally an eyedropper click.

Looking Down the Road (Because Shipping Is Just the Start)

I’m already fine-tuning new themes so nobody has to pay for yet another startup-characters-2025 bundle. Gutenberg blocks and Webflow components are on my Trello board. Framer too, because that community moves fast. And I can’t shake the idea of asking ChatGPT, “give me a hero image with a friendly ghost robot,” and having GhostSVG slide the SVG straight into the doc—no copy-paste, no download dialog.

If you have a wilder idea—Figma plugin, VS Code inline preview, carrier pigeon delivery—send it. My inbox (kobyungsoo@berkeley.edu) is open, even for ranty bug reports.

Hitting Publish, Then Refreshing Like a Maniac

So that’s the saga: a container guy by daylight, a wedding-site romantic by moonlight, and one stubborn prompt that refused to give me a transparent background. The result is GhostSVG, live right now. Go ahead, try to break it. I’ll be in the logs, probably sipping another cup of coffee and grinning like an idiot that this thing finally exists.

GhostSVG launch illustration