Product Design · Full-Stack Development
Nottral
Designing a multi-tenant booking platform from zero to launch
- Role
- Sole Product Designer & Full-Stack Developer
- Timeline
- 2024–2026 (ongoing)
- Tools
- Figma (concepting), Next.js 16, React 19, MongoDB, Redis, Stripe Connect, Socket.IO
- Live
- nottral.com
The Problem
Small service businesses in Romania — salons, dental clinics, gyms, consultants — lose clients every day because booking is friction-heavy. Clients DM on Instagram, call during busy hours, or simply give up. Businesses manage appointments in notebooks or WhatsApp groups.
No-shows cost a typical salon €150–300/month. There’s no affordable, localized booking platform built for the Romanian market with proper payment integration (Stripe Connect) and bilingual support.
Research & Discovery
What I did
- Interviewed 12 salon and clinic owners about their booking process
- Analyzed 8 competing platforms (Calendly, Fresha, SimplyBook, Booksy) — none had proper Romanian payment/invoicing support
- Mapped the full client journey from “I want an appointment” to “I showed up”
- Identified the 5-step conversion chain: see work → understand price → find time → book instantly → get reminder
Key insight
The problem isn’t that people don’t want to book online. It’s that the “last metre” is missing — price, open slot, one-click booking, and confirmation in their pocket.
Design Decisions
- 01
Multi-tenant architecture
- Decision
- Each business gets its own branded page (nottral.com/business-name) instead of a generic booking widget.
- Why
- Businesses wanted something they could share on Instagram that looked like “theirs”, not a third-party tool.
- 02
Real-time availability
- Decision
- Show actual open time slots, not a “request an appointment” form.
- Why
- Research showed that “we’ll contact you” killed 60%+ of booking attempts. People want to pick a time and confirm instantly.
- 03
WhatsApp reminders
- Decision
- Automated reminders via WhatsApp instead of email or SMS.
- Why
- In Romania, WhatsApp open rates are 90%+. Email reminders had 20% open rates in testing.
- 04
Stripe Connect marketplace model
- Decision
- Businesses connect their own Stripe account. Nottral takes a commission per booking.
- Why
- This eliminates the need for Nottral to handle individual business invoicing at scale.
The Solution
For clients
- Browse business page with services, prices, and photos
- Select service → pick available time → pay → confirmed in under 60 seconds
- Automatic WhatsApp reminder 24h before
For businesses
- Dashboard with calendar view per employee
- Real-time notifications for new bookings
- Client history and no-show tracking
- Stripe Connect for payments
Impact & Learnings
Results (measured)
- Platform built end-to-end as sole designer+developer
- 350+ API routes, 30+ database collections
- Booking flow completes in under 60 seconds (tested with 15 users)
- Real-time sync via Socket.IO — no page refresh needed
What I learned
- Designing and building gives you a feedback loop that’s impossible in handoff-only workflows. You see the friction in real usage, not in a prototype.
- Multi-tenant design requires thinking about customization boundaries — what each business can change vs. what stays consistent for platform coherence.
What I’d Do Differently
- Start with a design system in Figma before coding. I went straight to code, which made iteration faster but documentation harder.
- Test with real business owners earlier. I built for 3 months before getting external feedback — should have been 3 weeks.
- Simplify the onboarding flow. The current business setup has 8 steps; it should be 4.