Start a conversation
← Portfolio

Roomi Pitch the product, not the deck.

Roomi puts a working demo in a pitch room: the live product, a guided tour through it, and the pages and files that go with it, behind a link for each person. You see who opened it, what held them, and what they said back. I co-founded it and built it.

Role
Co-founder and CTO
Live at
getroomi.com
Runs on
Cloudflare Workers and Containers
Deploy
One sentence to Claude, or roomi deploy
Receipts
942 commits · 444 test files · since 25 September
LLarkfield StudioTillwise
End tourCommentHannah Clarke
TillwiseTillwise Go
LaptopFull screenNew tabOn your phone
OverviewForecastSitesAlertsSuppliersSettings
Sites
Marylebone
Clapham
Bristol Harbourside
Leeds Corn Exchange
Forecast / All sites
Cash, the next 13 weeks
4 weeks13 weeks26 weeks
Cash today£182,400+£4,100 on last week
Lowest point£36,900week 7, VAT and rent
Your floor£40,000set by you
Covers forecast21,48013 weeks, 4 sites
Closing cash by weekactualforecast, with its rangefloor
Week 7 dips below your floorVAT quarter and two rents land in the same week.
SiteCash todayLowest pointWeekStatusMarylebone£41,200£9,800wk 7Below floorClapham£38,650£12,400wk 7ClearBristol Harbourside£52,900£8,100wk 8Below floorLeeds Corn Exchange£49,650£14,600wk 6Clear
Step 2 of 5Explore freely
A forecast with its reasons
Thirteen weeks ahead, from your tills, rota and supplier terms. Week 7 dips under the £40k floor you set, and Tillwise says why: the VAT quarter and two rents land together. Press Next to move a payment and watch it clear.
← Back
Next →
This demo runs on mock data. Nothing you do here reaches a real system.
What happens next?
The pitch room. What a viewer opens from their own link: the live demo in its device frame, the guided tour running on their own copy of it, the pages and files beside it, and a next step always one click away.

A working demo persuades. Getting it in front of someone does not.

With Claude, people build real, clickable prototypes in an afternoon. Then they share them the old way: a staging link that breaks the morning it is opened, a password sent in the same email, a screen recording out of date by the next change. And after pressing send, nothing comes back. You do not know who opened it, how far they got, or who they passed it to.

Every link gets its own copy, and the room does the listening.

A demo runs on mock data, as one container or a static folder, and each viewer link gets its own copy, so one prospect never sees another’s clicks. A Worker in front checks the link, records the visit and injects the comment and tour overlay into every page, so a builder adds nothing to their demo. The room lives on its own domain, apart from where people sign in. Deploying always rehearses first: the CLI runs the demo here with no network and walks every tour step before anything leaves the machine.

Tillwise
2 apps · live · tillwise.getroomi.app
Preview as viewer ↗New link
OverviewRoomBuildsLinksActivityAnalyticsPipelineFeedbackSettings
Last 7 daysLast 30 daysLast 90 daysCustom
Days are counted in UTC.
Views214across 41 links
Viewers37people, each once
Time in the room9 h 40 min15 min per viewer
Next steps chosen114 meetings booked
Turned away0room full
Views a day30 days
214
Viewers a day30 days
37 people
Minutes a day30 days
9 h 40 min
Turned away a day30 days
none
Apps usedtime per app
Tillwise · 31 viewers6 h 52 min
Tillwise Go · 14 viewers1 h 26 min
Pages openedopens per page
Why Tillwise · 22 viewers · 41 min read26 opens
How the forecast works · 15 viewers · 58 min read19 opens
Proposal for Marlow Dining · 2 viewers · 12 min read5 opens
The tourpeople who reached each step
1
Where the cash goes this month
29
2
A forecast with its reasons
27
3
Every site, side by side
22
4
The alert before the dip
19
5
The same view on a phone
16
Started it 29Reached the end 15Left it to explore 9
Next steps chosenanswers
Book a meeting 4
Yes — send the proposal 2
Get back to me 2
Bring in a colleague 2
Ask a question 1
Not for me 0
Analytics. Who came, how long they stayed, which app and page held them, how far through the tour they got, and what they chose at the end.
Pipeline
Every live link across your projects: who opened it, who leaned in, who answered.
All projects ▾This month ▾
OPWho to call first
Owen Price at Brightside Kitchens: came back 3 times this week, 41 minutes inside, and back on How the forecast works today.
See Owen’s journeyDraft a follow-up with Claude
Sent4
Daniel ReidCopperleaf Inns · Tillwise

Not opened yet

sent 3 days ago
Ruth CollinsFieldhouse Group · Tillwise

Not opened yet

sent yesterday
Ben CarterRedbank Cafés · Tillwise

Not opened yet

expires in 9 days
Peter LoweAshdown Hospitality · Rota Planner

Not opened yet

sent today
Opened4
Lucy WardAshdown Hospitality · Tillwise

opened once, 4 min inside, seen today

Sam TurnerHollins & Vale · Tillwise

opened once, tour: 2 of 5 steps

Amira KhanBrightside Kitchens · Tillwise

2 visits, seen 4 days ago

Nadia HassanFieldhouse Group · Rota Planner

opened once, on a phone, 6 min inside

Engaged3
Owen PriceBrightside Kitchens · Tillwise

came back 3 times, 41 min inside, back on How the forecast works

Follow up Thu
Grace PatelMarlow Dining Group · Tillwise

took the whole tour, left 2 comments, via Hannah’s link

Forwarded
Chloe BennettCopperleaf Inns · Tillwise

3 visits, reached 6 sections, seen yesterday

Said yes2
Hannah ClarkeMarlow Dining Group · Tillwise

Yes — send the proposal. Shared it with 2 new people

Proposal read2 forwarded
Tom AshbyAshdown Hospitality · Tillwise

Booked a meeting for Tue 21 Oct, 10:30

Meeting
Later2
Megan HughesHollins & Vale · Tillwise

Get back to me next quarter

Reminder 5 Jan
Rachel MossCopperleaf Inns · Rota Planner

Get back to me in a month

Reminder 14 Nov
Not now2
James WhitfieldRedbank Cafés · Tillwise

Not for me: timing

Lost
Kate DouglasFieldhouse Group · Tillwise

Not for me: already solved

Lost
The pipeline. Every link as a card, placed by what its viewer did. Who to call first is ranked by the evidence and said in words, never a score.
Tillwise
2 apps · live · tillwise.getroomi.app
Preview as viewer ↗New link
OverviewRoomBuildsLinksActivityAnalyticsPipelineFeedbackSettings
GP
Grace Patel2 h ago

Can the floor be set per site? Marylebone runs much leaner than Leeds.

Open On Tillwise · Forecast
OP
Owen Priceyesterday

Does this read our payment terms from the accounts, or do we type them in?

Answered On Tillwise · Suppliers
HC
Hannah Clarke2 days ago

This alert is exactly what our ops lead needs on a Monday.

Resolved On Tillwise Go · Alerts
LW
Lucy Ward3 days ago

Is there a version for a single site?

Open A question, in the room
TA
Tom Ashby4 days ago

Love that the sites line up. Could we group the two Leeds sites as one?

Answered On Tillwise · Sites
CB
Chloe Bennett5 days ago

Who gets this alert? Our finance lead and each site manager would both want it.

Resolved On Tillwise · Alerts
← All feedbackOpen
“Can the floor be set per site? Marylebone runs much leaner than Leeds.”
OverviewForecastSitesAlertsSuppliersSettings
Sites
Marylebone
Clapham
Bristol Harbourside
Leeds Corn Exchange
Forecast / All sites
Cash, the next 13 weeks
4 weeks13 weeks26 weeks
Cash today£182,400+£4,100 on last week
Lowest point£36,900week 7, VAT and rent
Your floor£40,000set by you
Covers forecast21,48013 weeks, 4 sites
Closing cash by weekactualforecast, with its rangefloor
SiteCash todayLowest pointWeekStatusMarylebone£41,200£9,800wk 7Below floorClapham£38,650£12,400wk 7ClearBristol Harbourside£52,900£8,100wk 8Below floorLeeds Corn Exchange£49,650£14,600wk 6Clear
1
The screen Grace was looking at when she commented, with where she pinned it · screenshot from the demo
FromGrace Patel, via Hannah’s link
AppTillwise
Screen/forecast
DeviceLaptop
EM
Ellie Morgan · draft

Yes: each site can carry its own floor, and the group view adds them up. I’ll show you on Tuesday.

Reply in the room…ResolveSend reply
Feedback where it happened. A comment is pinned to the app, the screen and the spot the viewer meant, with a picture when the demo can send one. The reply goes back into the room.
~/tillwise-demo % roomi deploy
ok manifest: pitch.json validates (container, 2 apps, a 5-step story)
ok project: "tillwise" exists; this replaces its live build
ok secrets: gitleaks scanned the project and found nothing
ok build: docker build --platform linux/amd64 -t pp-build/tillwise:latest
ok bundle: /app and how it starts: node server.js
ok secrets: gitleaks scanned the bundle and found nothing
ok run: the platform's runner answered /healthz with no network, as in a room (unpacked in 610 ms, healthy 2140 ms after starting)
ok story 1/5 "Where the cash goes this month": shows web at /overview, runs nothing
ok story 2/5 "A forecast with its reasons": POST /api/demo/clock — "Moved to Monday 6 Oct"; opens /forecast
ok story 3/5 "Every site, side by side": shows web at /sites, runs nothing
ok story 4/5 "The alert before the dip": POST /api/demo/alerts — "Raised 2 alerts"; opens /alerts
ok story 5/5 "The same view on a phone": shows go at /go/alerts, runs nothing
What would go live: project "tillwise" at https://api.getroomi.com
Tillwise for Marlow Dining — container, health /healthz
artefact 6.8 MB (7130112 bytes)
apps:
web / laptop Tillwise (opens first)
go /go/ phone Tillwise Go
starts with: node server.js
story:
1 cash in web at /overview "Where the cash goes this month"
2 forecast in web at /forecast, 1 call "A forecast with its reasons"
3 sites in web at /sites "Every site, side by side"
4 alert in web at /alerts, 1 call "The alert before the dip"
5 phone in go at /go/alerts (phone) "The same view on a phone"
Rehearsal only: nothing has left this machine. `roomi deploy --commit` publishes exactly this.
~/tillwise-demo % roomi deploy --commit
⋮
ok upload: 6.8 MB
ok build: registered b_8kq2m7, with the story's rehearsal (5 steps)
ok live: build b_8kq2m7
~/tillwise-demo %
Deploying. roomi deploy rehearses: it scans, builds, runs the demo with no network and walks every tour step on that copy. Only --commit sends it, and it sends exactly what was checked.

Screens drawn with dummy data. No real customer, client or account appears.

What it does

A guided tour over the live demo

Each step puts the right app on the stage, rings what to look at and runs its own calls on that viewer’s copy. Back, Next, or explore freely at any point.

A link for each person

Named, expiring and revocable. When someone forwards it, the room asks who they are, so the whole buying group shows up instead of hiding behind one name.

Analytics per viewer

Visits, time in each app and page, how far through the tour they got and where they left, filed under the person who did it.

Feedback pinned where it happened

A comment lands on the app, the screen and the spot the viewer meant, and the reply goes back into the room.

A next step at the end of every visit

Book a meeting, send the proposal, get back to me, bring in a colleague. Each answer moves the viewer on the pipeline, and who to call first is ranked by what they actually did.

Deploy in a sentence

Say “deploy it to Roomi” in Claude, or run roomi deploy. It rehearses by default and publishes on --commit, exactly what was checked.

TypeScriptCloudflare WorkersCloudflare ContainersDurable ObjectsD1R2HonoNext.jsReactDrizzleBetter AuthStripeMCP
Roomi

Built something worth showing?

Put it in a room and send a link to each person. It is free to start, and you will see who looked and what they did.