décohanie
The booking log was a WhatsApp group. Now it is an app.
Every booking décohanie took was retyped by hand into a WhatsApp group — name, package, date, deposit, balance. It worked at five bookings a month and would not survive twenty. This is the system that replaced it: enquiries capture themselves, and the phone in your pocket knows what is happening today, who owes what, and what has to go in the car.
Private tool · screens below are the real interface, with invented bookings
- Client
- décohanie
- Sector
- Events & makeup
- Scope
- Product design, build, database
- Year
- 2026

// The brief
The website already handed enquiries to WhatsApp, which is where the customer wants to be. The problem was everything after that. Two people would agree a package in chat, then one of them would retype the details into a shared group so the other could see it. If nobody retyped it, the booking existed only in a conversation.
Nothing could be searched. Nobody could answer “who still owes me money” or “is that Saturday taken” without scrolling. The fix had to work on a phone, in a car park, mid-conversation — not on a laptop at the end of the week.
// Try it
This is the dashboard itself, running on invented bookings. Nothing is saved and nothing leaves the page — reload and it starts over.
Worth trying: open a booking and change the transport figure to watch the balance move. Tap Paste booking and press Read it — the message matches an enquiry already on file. In Money, the document icon draws a real invoice.
Live · iPhone 16 Pro viewport, scaled to fit · invented data
// The approach
- 01
Capture at the source, not afterwards
The enquiry form already composed a WhatsApp message. It now writes the booking to a database first and opens WhatsApp second. The customer sees no difference, and the record exists whether or not anyone remembers it — including for the people who fill the form and never send the message.
- 02
Paste the chat, keep the booking
Deals still close in WhatsApp, so the app reads WhatsApp. Paste the message and it pulls out the name, date, venue, package, transport and deposit, checks the arithmetic against the stated balance, and matches it by phone number to the enquiry already on file — so pasting completes a booking instead of duplicating it.
- 03
Money that cannot disagree with itself
Package, transport and add-ons are entered; total and balance are calculated and never typed. The same block prints on the invoice, so what the customer receives and what the studio sees are the same arithmetic. Balances fall due the day before the event, because chasing payment on setup morning is too late.
- 04
What to load into the car
A Signature booking means three tables, eighteen chairs, a serving table, four cloths and a deco set. That lived in someone's head. The app now derives the packing list from the package, pulls the flower colour from the theme, and shows the progress on the day's job — because arriving one chair short is the expensive mistake.


// What shipped
- Automatic capture from all three enquiry paths on the website
- Postgres database with row-level security: the public may file an enquiry and nothing else
- Installable phone app — home screen icon, works like a native app
- Today view: what needs attention, today's jobs, the week ahead
- Double-booking flagged the moment two jobs share a date
- Paste-and-match from a WhatsApp message, with arithmetic checked
- Packing list generated from the package, ticked off as the car is loaded
- Branded invoices and receipts with a DuitNow QR, shared straight into a chat
- Aged balances with one-tap WhatsApp reminders
- Sales by month with a six-month trend and best-earning package
- Push alert when a new enquiry lands, carrying no customer data
- Directions handed to Waze, Google Maps or Apple Maps
// Where it stands
The system is live and in daily use by two people. Prices, packages and access are managed in the database rather than the code, so the studio can change them without a deploy. Volume and time-saved figures are not published here — when there is enough history to say something true about them, this section gets numbers.
// Let's build
Ready to grow online?
Tell me what you're building. You'll get a straight answer and a plan — no jargon, no overhead.
Johor Bahru, Malaysia · Available for new projects