2026-05-29
Calendar got a working day
- Right-side appointment panel. Click an appointment and the details slide in from the right. The calendar stays visible behind it so you can scan + click + scan + click without losing context. Same panel handles new appointments and time blocks.
- Color appointments by staff. New toggle in the calendar toolbar: Status (default) or Staff. When you pick Staff, each appointment takes its staff member's color, so you can see at a glance who's busy without reading every card.
- Multi-select staff filter. Pick more than one staff member to narrow the calendar. Stacked mini-avatars on the filter pill show who you're looking at.
- Mark status inline. Click the status pill at the bottom of any appointment card. Booked → Confirmed → Arrived → Completed, without opening the appointment.
Public booking page rewrite
- Hero band with your brand. Logo, salon name, tagline, About-us blurb, all editable in Settings. Replaces the generic header that used to greet first-time visitors.
- One wizard for services AND packages. Mix freely: a package + an add-on service in the same visit. Used to be separate tabs that cleared each other.
- Quantity stepper. Book the same service twice in one visit. Cards stay visible after you add them with a –/+ control so you can adjust without scrolling.
- Click-to-add cards. Services and packages add with a single click. No more hunting for an “Add” button at the bottom of the page.
- Bigger calendar + cleaner time pills. Date selector grew by 50% and time slots now read as proper times instead of squeezed labels.
Demo data
- Reusable demo account. Our seed script now lays down 3 months of history (~265 past appointments, 12 today, 37 upcoming), 40 clients with diverse profiles, Quick Sales, marketing campaigns, time entries, staff time off, branch closures. Enough depth for a sales call, screenshot, or recording without re-seeding.
2026-05-28
Bookkeeping push, part 3
- Profit & Loss statement. New report shows Revenue → COGS → Gross margin → OpEx → Net income with same-period comparison. Styled to hand to an accountant.
- Receipt PDFs. Per-appointment downloadable receipt, A4, with service + tip + tax + deposit/balance broken out. Useful for HSA / FSA reimbursement, weddings, and tax-jurisdiction requirements.
- Sales tax tracking. Per-business default rate + per-branch override + per-service / per-inventory taxable flag. Records collected tax as a liability (not revenue). New Tax tab on Reports + dashboard sub-line.
- Tips tracking. Tip column on every payment dialog. Refunds split into service refund + tip refund with independent caps. New Tips tab on Reports + per-staff payout totals.
Public booking depth
- Multi-service “build a visit”. Customer assembles a visit from N services, basket shows running duration + price, branch picker auto-narrows to where every chosen service is offered.
- Public booking on/off toggle. Business setting to disable online bookings entirely. Page shows a polite notice instead.
- Per-service “bookable online” toggle. Keep a service active for manual booking while hiding it from public.
- Booking availability controls. Minimum lead time, maximum advance days, slot interval, and “let client pick staff” toggle.
Calendar polish
- Day view splits by staff column. When there are 2+ staff in scope, each staff gets their own column.
- Calendar events render in business timezone. A 14:00 NY booking shows at 14:00 in Tokyo, not 2:00 AM.
- Drag to extend appointment time. Resize handle on each event; reschedule action takes the new duration.
- Month view “+N more” overflow popover. No more squished bottom-of-cell rendering on high-density days.
- Add service / Add product from an appointment. Add-on sales rung up from the appointment detail page roll into per-visit revenue.
2026-05-26
Catalog primitives
- Service bundles. Multi-service packages sold at a flat price. Catalog + manual booking + public booking + payment recording + cancel + reschedule + 4 email templates + Reports tab.
- Credit packages. Prepaid sessions, fixed-service or pooled, optional variant pinning + expiry. Sold from client detail. Race-safe atomic decrement. Cancel auto-refunds credit.
- Resources + processing time. Color stations, facial beds. Link them to services. Slot engine respects both.
- Service variants. Length / price tiers (“30 min” vs “60 min” massage) with optional per-variant deposit override and per-variant inventory requirements.
Earlier
Foundations
5-role RBAC + team invites; staff time tracking + timesheet pivot; per-staff custom permission overrides; marketing mass email with audience filter + unsubscribe; birthday auto-send with monthly cron; per-business email sender domain via Resend; iCal subscription feeds; appointment refunds with reason; per-appointment discounts; Quick Sale for walk-ins; repeating appointments; forgot-password flow; custom theme provider with dark mode; CSV import for clients / services / inventory; product commissions; ban-a-client; T&C on credit packages; flexible deposit waterfall; split-shift hours; partial-day closures + staff time-off.