AI / Stripe experiment / botlou

rushmoreme

Upload a face, get yourself chiseled into Mount Rushmore — a one-shot novelty generator with a one-shot monetization model.

visit rushmoreme ↗
status: Live · Novelty experiment
role: Solo build, with Claude collaboration
domain: rushmoreme.com
CategoryAI / Stripe experiment
StackNext.js 14 on Vercel
GenerationOpenAI image API
PaymentsStripe one-time, $2.99
Build timeweekend experiment
MonetizationCSS watermark overlay that lifts on paid unlock
live site preview rushmoreme site preview

the story

RushmoreMe is the smallest, silliest project on this list, and on purpose. Upload a photo of a face. Get a Mount Rushmore image with that face carved into the mountain. Pay $2.99 to lift the watermark. That is the whole product.

The point of building it was not the novelty — it was proving a reusable pattern: a one-shot AI generation product with a one-shot payment, deployed in a weekend, with a monetization mechanic simple enough to explain in one sentence. The CSS watermark overlay is key to the pattern. Instead of a full gate, the user sees the image immediately, the watermark is obvious, and paying lifts it. Low friction, high intent.

It was built in collaboration with Claude — scoped, planned, implemented, and iterated as a prompt-engineered fast-ship exercise. The result is currently live at rushmoreme.com, running on Next.js 14 on Vercel, using the OpenAI image API for the generation and Stripe for the unlock. Small polish is deferred in favor of keeping the live version stable, which is the correct call for a product of this shape.

microblog
Apr 2026 · Preview pipeline

Shipped a watermarked low-res preview path that markets itself

The first-pass image now ships as a shareable low-res preview with a built-in watermark, and the watermark scales to match each generator's aspect ratio. So the thing people post while deciding whether to buy also advertises the product for free. That is the correct kind of vanity.

Apr 2026 · Delivery model

Switched to generate once, then unlock the exact same HD image

The original high-res file now gets stashed in Vercel Blob and unlocked after verified Stripe payment. That means buyers always receive the exact image they previewed instead of paying for the privilege of rolling the dice on a second generation.

Apr 2026 · Session recovery

Users can now pick up where they left off

localStorage persistence plus a “Pick up where you left off” card means back button chaos, refreshes, and tab closes no longer kill the result. Only a brand-new generation clears the old one, which is how this should have worked from the start.

Apr 2026 · Joke density

Built real generator variety instead of one joke wearing six hats

RushmoreMe now has per-generator aspect ratios and 32 hand-written variants across six styles like Vogue, GQ, Tabloid, Old West, and 80s VHS. The goal was simple: actually use the joke space instead of pretending one generic prompt equals a product line.

Apr 2026 · Vision preflight

Bad uploads get rejected before they burn a real image call

A lightweight vision preflight now classifies the uploaded photo, blocks obvious bad inputs, suggests the best variant, and surfaces friendly framing/orientation warnings. Better UX and cheaper ops in one move, which is my favorite kind.

Apr 2026 · Offer ladder

Added a multi-variant pass, speed pass, and day pass

The monetization path is no longer just “buy one image or leave.” There is now a $0.99 three-option pass, a $1.99 speed pass to skip the throttle, and a day pass — all gated and consumed cleanly per purchase instead of feeling stapled on.

Apr 2026 · Free-to-paid

The free cap now behaves like a product, not a tantrum

RushmoreMe now enforces a hard three-per-24h free cap using both cookies and localStorage, with an invisible counter, a friendlier wall, and a discounted returning-buyer day-pass upsell. It still limits abuse, but it does it without acting weird about it.

Apr 2026 · Error UX

Replaced “Something went wrong” with honest moderation explanations

The app now uses preflight context to explain false-positive moderation failures like a human instead of hiding behind a generic shrug. It is still the same rejection under the hood, but the product now takes responsibility for making it understandable.

Apr 2026 · Root-cause fix

Fixed the real upload bug instead of adding more superstition

The actual issue turned out to be JPEG bytes getting sent with a PNG MIME type. Server-side Sharp normalization now auto-rotates, resizes, and re-encodes everything as a real PNG before it hits OpenAI, which is much better than praying at the prompt layer.

Apr 2026 · Model quality

Closed the “why doesn’t this look like ChatGPT?” gap

Adding input_fidelity: "high" plus a much tighter preserve/change/constraints prompt closed a surprising amount of the quality gap while keeping face fidelity intact. The nice part is the economics still work: medium-quality generations are landing in the rough 7–10¢ range instead of becoming a toy that melts margins on contact.

Biggest highlights:

  • face fidelity got materially better without turning the output into a generic filter
  • prompting became much more explicit about what must stay vs what can change
  • per-generation cost stayed low enough to support a real consumer offer ladder
Mar 2026 · Shipped

RushmoreMe is live at rushmoreme.com

Upload a face, get Mount Rushmore, pay $2.99 to lift the watermark. A weekend build that also happens to prove a reusable one-shot-AI + one-shot-payment pattern. Next.js 14, OpenAI image API, Stripe, CSS watermark overlay as the monetization mechanic.