< cd ~/raba.pl

Business products

Pazy

Keep the salon's administration close to the appointment, so the stylist can follow one workflow through the day.

  • Prototype
  • July 2026 - present
  • Product design and engineering

The problem

Appointment details, previous treatments, deposits and product stock belong to the same job, but are easy to scatter across messages and notes. A mobile product also needs to handle connection gaps without silently losing the stylist's work.

My part

Product design and engineering. The cover shows the public website's hard-coded demonstration interface, not customer records. Production adoption and commercial results have not been verified.

What this shows

I can turn the details of a small service business into a focused product, then carry the workflow across web, mobile and backend systems.

Where it started

Pazy is a salon-management product for nail professionals working independently. It combines a public booking route with a web panel and native mobile implementations. The public website is available; the product is presented here as a prototype.

Interface preview

Pazy interface preview
Illustrative product interface from the public demo. Names and amounts are sample data.

The decisions behind the product

Start with the appointment

I connected the calendar to client records and visit history, including notes, photos and products used. Deposit status, stock and invoices sit alongside that workflow rather than in unrelated tools.

Connect public booking to the panel

The booking endpoint checks for a conflicting appointment, matches or creates the client and writes the appointment in a transaction. It applies the salon's deposit policy and schedules reminder records.

Account for an unreliable connection

I built native iOS and Android clients with cached data and an outbox for supported changes. Synchronization retries queued work and exposes failed operations, with idempotency keys on API requests.

What came out of the work

One product model for the working day

The prototype links a booking to the client, appointment, visit record and salon operations. The same service is available through a web panel and native mobile implementations.

Work can survive a connection gap

The mobile implementations keep supported changes in a local queue until they can be synchronized. Pending and failed work is visible in the interface.

Inside the implementation

Explore the features, architecture and quality checks

What I built

  • A public website and salon panel connecting the calendar, client records, visit history, products, deposits and invoices
  • Public booking that checks appointment conflicts, creates the client and appointment together, and schedules reminders
  • Native iOS and Android clients with cached data, queued changes and synchronization after the connection returns
  • A visit workflow for notes, photos, used products and client history
  • A demo-account flow populated with synthetic salon data

How it works

  1. BookA client chooses an available appointment; the salon's policy determines whether a deposit is requested.
  2. PrepareThe calendar and client record bring the appointment, previous visit and relevant notes together.
  3. Record the visitThe stylist adds notes, photos and used products to the same history.
  4. Keep workingMobile clients can queue supported changes while offline and synchronize when the connection returns.

Quality and reliability

  • Booking writes use transactions and conflict checks; API idempotency keys support safe retries of mobile operations
  • Mobile synchronization tracks pending and failed changes instead of treating every request as successfully saved
  • The current deposit workflow uses manual payment confirmation; Przelewy24 payments and real KSeF submission remain unfinished integrations
  • SMS delivery depends on a configured provider; the development provider logs messages instead of sending them

Technology

  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Drizzle
  • SwiftUI
  • Kotlin
  • Jetpack Compose
  • Vercel

Explore another problem I worked on

>_ Your next project

Liked what you saw?
Let’s get in touch!

Have an idea, a challenge, or a role in mind? I’d love to hear about it.

Let’s talk

>_ Start a conversation

Liked what you saw?
Let’s get in touch!

Tell me what you’re working on. Let’s see how I can help.

Email mepatryk@raba.pl
Send a message