← All work SELECTED WORK / 04

Slotly

Independent project · Interactive demo

Service booking application

An independent capability project using fictional data. Explore the read-only shared sample, or open your own private demo calendar. Registration and login are available; bookings and changes affect only your space. New business items are limited to 10 in a rolling 60 minutes. Spaces expire after 24 hours. Payments are simulated and no real emails are sent.

View demo ↗

Slotly time planner showing service, studio date, available times and a private appointment summary
Role
Interface implementation / Full-stack development / Demo deployment
Type
Service booking application
Status
Independent project · Interactive demo
Year
2026
Link
slotly.jonho.dev ↗

01

Understand

Make time the main task.

Choose a service, a studio date and an available time. The three-part planner keeps the session, calendar and selection together, including your time zone and the studio time.

02

Trust

Keep each visitor’s work separate.

The shared sample stays read-only. A private calendar has its own services, staff and appointments, with clear remaining allowance and expiry time. Account registration retains the same space and does not reset usage.

03

Act

Complete a fictional booking.

Review an appointment, confirm the simulated deposit when required, then view, move or cancel it. The real backend rechecks availability and rejects conflicts, exhausted allowances and expired spaces.

a closer look.

Real public Slotly desktop planner with a private calendar, available start times and appointment summary
Desktop — plan a time in your own calendar

Captured from the deployed HTTPS version. Service, studio date, time-zone selection, remaining allowance and private-space lifetime are shown together.

Real public Slotly phone showing an appointment confirmed in the visitor private demo space
Mobile — a confirmed fictional appointment

This confirmation follows a real booking request and simulated deposit. No real charge or email was produced.

behind
the pages.

  • Next.js, FastAPI and PostgreSQL, with separate schema initialization, application and cleanup roles.
  • The server selects the visitor space; database row policies and workspace constraints enforce isolation beyond the interface.
  • Accepted creations share a durable rolling allowance. Duplicate requests and rejected conflicts do not consume another creation.
  • Availability conflicts, private booking changes, registration/login, quotas and expiry were verified against the deployed backend.
  • A separate worker handles simulated events; a restricted cleanup process checks expired spaces every 15 minutes. Account identity retention is separate from the 24-hour business space.
  • These screenshots come from the real public release using synthetic data. No client results or conversion claims are presented.

Explore the fictional data and interface. Read-only: no bookings, registration, payments or email.

View demo ↗