Why BookPoint
What makes it better
than the alternatives
- 01
Deposit-backed online booking with real availability
Clients only see free slots, pay a deposit by card, and a row lock stops double bookings.
- 02
One install, any number of businesses
Each gets its own staff, services, clients and booking page, isolated by a tenant scope on every model.
- 03
One install, any number of businesses
Each gets its own staff, services, clients and booking page, isolated by a tenant scope on every model.
- 04
English and Arabic with right-to-left on every screen
Plus AED, SAR, QAR, USD and 5% VAT invoices with the TRN.
- 05
Reminders, coupons and waitlist offers run themselves
Sent by the scheduler 24 and 2 hours before, with automatic slot offers on cancellation.
Owner & Manager App
- Live dashboard with today's bookings
- deposits collected
- who is on the floor and an attention list
- Day and week calendar with one lane per staff member
- breaks
- blocked time and approved leave
- New booking in seconds for walk-ins and phone calls with client name and phone so same-name clients stay apart
- Booking drawer with arrive
- approve
- mark completed
- no-show
- resend deposit link
- reschedule
- book again and cancel with the policy applied
- Services with categories
- duration
- buffers
- add-ons
- deposit rules
- rooms and intake questions
- Staff with working hours
- shifts
- services offered
- time-off approval and email invites
- Clients with visits
- spend
- favourite therapist
- notes
- tags
- saved card
- packages
- credit and CSV export
- Reports with revenue by week
- average booking value
- no-show rate
- rebooking within six weeks
- top services
- staff utilisation and busiest hours for 7
- 30
- 90 or 365 days with CSV download
- Activity log of every change with who did it and when
Client Booking Pages
- Five-step booking wizard with service
- specialist or anyone available
- real free slots
- details and card payment
- Deposits as percentage
- fixed
- full or pay at the studio with the slot held during payment and a retry page after a declined card
- Coupon code at checkout with discount shown on the summary and receipt
- Studio page with treatments
- team
- reviews
- opening hours
- parking and directions
- Group classes with seat booking
- Shop for packages and gift cards
- Sign-in by one-time code to the phone
- My bookings with change
- cancel
- add to calendar (ICS)
- receipt and review
- Waitlist join and leave
- Video-call link for online services with pre-visit photo upload
- Embeddable "Book now" button for any website
- Arabic and English switch
Staff Portal
- My day with the next client highlighted and one-tap done or no-show with confirmation
- My week
- My clients with notes for the next visit
- My earnings with commission and tips by month
- Availability changes and time-off requests sent to the owner for approval
Payments & Money
- Deposits
- balances and no-show fees recorded per booking
- Card
- Apple Pay and buy-now-pay-later through one gateway connector (simulated in the demo)
- Invoices with VAT and TRN numbered per business
- Receipts and manual invoices
- Refunds to card
- store credit or cash with reason
- Release of unpaid bookings after the hold
- Packages and memberships with visit counts and expiry
- Gift cards
- Coupons with new-client-only and one-per-client rules
- Cancellation policy with free window
- late fee and card on file
Reminders & Messages
- Editable templates for confirmation
- 24 hours before
- 2 hours before
- thank-you with review link and time-to-rebook
- Per-channel sending by email
- WhatsApp or SMS from the scheduler once per booking
- One inbox per client with every message and quick replies
- Team alerts for new online bookings
- unpaid deposits
- waitlist and time-off
- Daily schedule email to each staff member at 8:00
- In-app notifications for the owner
Reviews & Waitlist
- Reviews collected after the visit with reply from the app and display on the studio page
- Waitlist by day and service with automatic offer and 30-minute hold when a slot frees up
- Admin waitlist entry and one-click booking from the waitlist
Multi-Business & Setup
- Self-service sign-up with a setup wizard for address
- hours
- first services
- team and deposit rule
- Locations
- rooms and equipment linked to services so two bookings never need the same room
- Intake forms with signature and per-service questions
- Client import from CSV and export of clients
- bookings and payments
- Brand colour
- welcome text and booking-page settings
- License page with credits
Security & Access
- Roles owner
- admin
- manager and staff enforced on the server for every page and action
- Sign-in that keeps the owner app and staff portal apart
- Tenant isolation so one business can never read another's data
- Bcrypt passwords
- rate-limited sign-in
- codes and booking
- CSRF on every form
- long random tokens for client links
- encrypted API keys
- client notes and intake answers
- Full audit trail
Integrations & API
- REST API with per-business keys and bookings by date and status
- Webhooks for booking created
- updated
- cancelled
- payment succeeded and refunded
- Connectors for payment gateway (Stripe
- Checkout.com
- Network International)
- WhatsApp and SMS (Twilio
- WhatsApp Business API)
- any SMTP email and Jitsi Meet video
- Scheduler commands for reminders
- unpaid release and daily schedule from one cron entry
Localisation & Region
- English and Arabic with right-to-left on all pages
- AED default with SAR
- QAR and USD
- 5% UAE VAT with TRN on invoices
- Dubai
- Riyadh and Qatar time zones
Technical
- Laravel 13
- PHP 8.3
- MySQL 8
- no npm or build step
- 44 tables from migrations or schema.sql with demo seed data
- 60 automated tests covering roles
- isolation
- booking rules
- payments
- API and database access rules
- Docker Compose
- Nginx and cPanel setup guides
- CLAUDE.md for AI coding tools
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 79.8% |
| HTML | — | — | Front-end | 9.1% |
| SQL | — | — | Database | 6.5% |
| CSS | — | — | Styling | 2% |
| JavaScript | — | — | Front-end | 1.8% |
| Shell | — | — | Scripts | 0.8% |
- Primary language
- PHP 8.x
- Framework
- Laravel
- Database
- MySQL 8.0
- Authentication
- Email+Password
- Licence
- Single-site
- Screens
- 15
- Database tables
- 8
- Supported languages
- English, Arabic
- Browser support
- Chrome 110+, Safari 16+, Edge 110+, Firefox 115+
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| OS | Ubuntu | Ubuntu |
| Est. monthly hosting | $20 | $20 |
sudo apt update && sudo apt install -y apache2 mysql-server php php-mysql php-curl php-mbstring php-xml php-zip # Upload project to /var/www/html/ # Create MySQL database and import the provided .sql file sudo systemctl restart apache2 # Windows Server (IIS) # Install IIS + CGI/FastCGI + PHP 8.x + MySQL # Upload project to C:\inetpub\wwwroot\ # Create MySQL database and import the provided .sql file # Configure PHP through IIS FastCGI and update the application's database configuration iisreset
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
What to know before you buy
4 non-blocking findings shown publicly: no real credentials found; weak defaults in .env.example require attention before deployment; strong authentication and role guards; minor ownership gaps on read-only client endpoints; database access rules: clean orm usage, minor schema gaps (missing indexes on foreign keys); good separation of concerns with some duplication and oversized utility files. The seller has been notified; fixes ship in the next version.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.