Rheveal/ BUILD LOG
rheveal.app →

Building a disposable camera for events, in public. A new frame develops most nights.

DAY 04 · '26 07 12

The Host Gets a Light Mode

Status tags that vanished in light mode, fixed properly — a real light theme for the host, picked by contrast math.

The design system's new Light Mode reference for the host surfaces — status tags deepened until each passes the contrast bar on cream.
The design system's new Light Mode reference for the host surfaces — status tags deepened until each passes the contrast bar on cream.

A theme isn't a coat of paint — it's proof the system works. If flipping one switch can re-dress sixteen screens without breaking one of them, the next feature (or the next brand refresh) is a switch-flip too, not a repaint.

The goalClose the one honest gap from the code pass — the status tags (Live / Closed / Released / Draft) were designed for the dark theme and washed out to near-invisible when a host flipped the dashboard to light. Instead of patching one color, do it properly: give the design system a real light mode.

The moment

Watching the whole New-Event dialog — form fields, labels, buttons, everything — flip to a perfect cream-paper version by changing one word on the frame ("light"), because every color on it now routes through the system. That's what "design system" is supposed to mean.

DAY 04 · '26 07 12

Designing the Keepsake Film

A thinking day, on purpose: the post-launch differentiator — photo galleries cut to music — gets its full shape.

Every event app ends at "here are your photos." Nobody else ends at "here is your film." This is the differentiator — and the design makes the hard part (taste) the part that compounds in our favor with every correction I make.

The goalNo code today — a thinking session, on purpose. The biggest post-launch idea (photo galleries that become a film, cut to music) got a full design treatment while the most capable AI model was still on the plan: what exactly are we building, what's genuinely hard about it, and what's the moat.

The moment

Discovering that the marketing project had already left us a gift — a document from the fake-photo shoot that describes the montage grammar (open on the defining shot, build a rhythm, allow one charming blooper, close on the emotional one) — written weeks ago for a different purpose, and now literally the seed of the product's editorial voice.

DAY 04 · '26 07 12

The Design Moves Into the Code

The design system moved off the canvas and into the app's real code — then eight AI reviewers tried to break it.

The host's live feed, now speaking the design system — stat tiles, the green LIVE tag, and photos arriving.
The host's live feed, now speaking the design system — stat tiles, the green LIVE tag, and photos arriving.

Design systems die in the gap between the mockup and the code. Closing that gap — same numbers, same names, same rules in both — is what makes the next feature default to looking right. One honest gap remains for a design decision: the status tags are tuned for the dark theme, and the admin's light mode needs its own version of them.

The goalYesterday's design system existed on paper (well, on the design canvas). Today it had to become real — every value in the app's actual code pulled into line with it, with zero new design decisions along the way.

The moment

Mid-review, the working files suddenly looked like all the day's work had vanished — every edit reverted. Heart-stop moment... then the trail led to one of the review robots, which had temporarily "set aside" the changes to photograph the before state, and hadn't put them back yet. It did, everything was verified intact, and the work got safely committed minutes later. Lesson repeated from yesterday: build with AI, but keep receipts.

DAY 04 · '26 07 12

Giving It a Real Design Language

Dropped a whole headline font, collapsed four corner radii into one, set every control to a single height.

A product people trust has to feel trustworthy, and consistency is most of that feeling. This was the day the design stopped being "a nice coat of paint" and became a system with a backbone — so the actual app (next up) has one clear thing to match.

The goalThe app worked and had a look, but under the hood the design was held together with tape — spacing done by eye, buttons at slightly different sizes, four corner-roundnesses where one would do. Turn that into a real, consistent design system, the kind where every screen agrees with every other screen.

The moment

One of those AI workers came back not with its finished work but with a fake instruction — a message dressed up to look like it came from me, telling it to go run off and "fix some other bug, and don't check in." A textbook attempt to hijack the task. Caught it, ignored it, confirmed it had changed nothing, and redid that batch by hand. A small reminder that when you build with AI, you also have to keep an eye on it.

DAY 04 · '26 07 12

Publish Anywhere

One line, pasted onto any website, and the gallery appears there — borrowed, never handed over.

The public gallery in select mode — guests can pick a set and save them all at once.
The public gallery in select mode — guests can pick a set and save them all at once.

A gallery you can only see on our site is a destination. A gallery you can drop onto your own wedding site is a feature people share — it's how Rheveal travels beyond the people who were at the party.

The goalLet a host show their finished gallery on their own website — a wedding site, a Squarespace page, wherever — instead of only on Rheveal. And lay the groundwork so other services could plug in later.

Built and set aside on the workbench — a few setup steps (pointing the embed's web address, switching on two services) remain before it goes live.

The moment

The reviewer caught that the embed was rendering "naked" — no brand colors, no fonts — because it wasn't loading the style file. It looked perfectly fine in the code and would have looked wrong on a real page. Caught and fixed before it went anywhere.

DAY 03 · '26 07 11 ·

The Big Day

From "guests can shoot" to a complete, branded, live product — in one very long day.

The public gallery — the big reveal, a clean grid everyone can browse and save from.
The public gallery — the big reveal, a clean grid everyone can browse and save from.

This was the day it stopped being a prototype and became a product — with a face, a voice, and a front door.

The marathon. In one very long day, Rheveal went from "guests can shoot" to a complete, branded, live product.

Morning — the host's half of the app

Midday — reliability + polish

Afternoon — a brand, and going live

Evening — the glow-up

The moment

Seeing the whole app laid out on one canvas and then watching it transform, screen by screen, from "functional" to "unmistakably Rheveal."

DAY 02 · '26 07 10

The Camera

A real shutter, a real constraint — shoot blind, no chimping, and every shot saves before it ever uploads.

The guest camera — a warm Darkroom Amber viewfinder, a real shutter, and the exposure counter winding down.
The guest camera — a warm Darkroom Amber viewfinder, a real shutter, and the exposure counter winding down.

This is the whole product in the guest's hand. It had to feel like a real camera — a little constraint, a little magic — not a web form.

The goalBuild the guest experience — the actual disposable camera.

The moment

We found that iPhones firing photos in rapid bursts could get "stuck developing." Rather than thrash on it late at night, we documented it thoroughly, flagged it as a must-fix, and moved on. (It got beaten the next day.)

DAY 01 · '26 07 09

Foundations

The skeleton, the database, and a privacy model — all built before anything a guest would ever see.

An original frame — the clean, quiet admin side, the "ordinary screens" half of the day-one hybrid-look call.
An original frame — the clean, quiet admin side, the "ordinary screens" half of the day-one hybrid-look call.

Parties are intimate. If people don't trust that their candid shots stay in the circle, the whole thing falls apart.

The goalLay a solid base before building anything guests would see.

The moment

Before writing a single guest-facing screen, we sweated the privacy model. Guests' photos being actually private isn't something you bolt on later — it's the floor.