Inspiration

In Indonesia, and across Korea and Japan, the photobox is part of every hangout: four frames, a countdown, a printed strip to split with friends. The machines are fun, but they sit in malls, take cash, and give you whatever frame the operator loaded that week. JemBooth puts the whole booth in your phone, and keeps the part people actually love: the strip you can print and hold.

What it does

  • Booth mode. A countdown, then a burst of shots straight into the layout. Or pick photos you already have.
  • 100 layouts. Classic 2x6 photobox strips, Instagram grids, polaroids, 9:16 stories and collages, from a single photo up to sixteen.
  • Frames. Any layout can wear any frame: paper colour, pattern, photo outlines, a plate behind the date and stickers. There are fifteen, from soft dots and cherry gingham to film, Y2K sparkle, a Halloween frame and two Indonesian batik frames, Kawung and Mega Mendung.
  • Looks. Colour filters and tone controls, rendered on the GPU.
  • Prints for real. Export at exact 2x6 and 4x6 inch sizes at 300 dpi, so a strip drops straight onto photo booth paper at any print shop.
  • Fifteen languages, including Indonesian, Japanese, Korean, Chinese, Arabic and Hindi.

How we built it

Flutter for Android (iOS builds too), with one renderer that draws the editor preview, the thumbnails and the print export, so what you see is exactly what prints.

Frames are drawn, not pasted. A layout only says where the photos go. A frame is a small recipe (colours, pattern, outline, stickers) that the app draws around whatever layout it is given, so fifteen frames fit a hundred layouts with no per-layout artwork. Stickers are placed automatically: they hug photo corners the way real photobox frames do, but a test places every frame on every layout and checks that no sticker is ever centred on a photo, covers more than a sliver of one, or sits on the date.

Artwork was generated one element at a time (a tile, a sticker) with an image model, then cut out on the device with Apple Vision and compressed to WebP, so a whole illustrated frame costs about 150 KB.

Monetisation runs on RevenueCat. Pro is a monthly or annual subscription. Everything can be tried for free: Pro layouts, frames and filters preview without limits, and the meter only runs at export, once, and only if something Pro reaches the file. Free exports hold up to three photos at social size with a small watermark. Five free Pro exports let people feel the real thing before paying. Seasonal frames and new layouts can also ship over the air from a remote catalogue, and anything delivered that way is always Pro.

Challenges we ran into

The first plan was a hundred hand-drawn templates, each one a layout with its artwork baked in. Halfway through we realised most of them were the same four photos in a row wearing different clothes. Splitting "where the photos go" from "what the print looks like" turned a hundred pieces of artwork into a hundred plain layouts and a set of frames that fit all of them.

Automatic sticker placement was the other one. Photobox layouts leave thin margins, so stickers that avoid photos entirely end up tiny and rare. The fix was a clear rule: a sticker may hug a photo's corner or rim, but never more than a small share of it, and never a face.

Accomplishments that we're proud of

  • Fifteen frames times a hundred layouts is fifteen hundred combinations, all correct by construction and all tested.
  • Two Indonesian batik frames, made for the market the app launches in.
  • Prints that come out at exactly the paper size, with no cropping at the shop.

What we learned

Charge at the moment of value, not at the moment of curiosity. Letting people try every Pro layout and frame freely, and asking only when a Pro export is about to be saved, keeps browsing fun and makes the paywall a decision about something they already made.

What's next for JemBooth

  • More frames every month, seasonal ones first: Christmas, Imlek, Ramadan and Lebaran.
  • Default frames on picker templates, so the gallery shows off every combination.
  • iOS on the App Store.

Built With

  • apple-vision
  • dart
  • fastlane
  • flutter
  • gemini
  • google-play-billing
  • revenuecat
  • sentry
Share this project:

Updates

Submission history