Skip to content

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

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.