Best-fit stack for this project
Next.js for the production app layer. It gives us one codebase for the public booking flow, admin screens, server actions or API routes, and future reporting pages.
Supabase for Postgres, auth, file storage, and server-side rules. It is affordable, modern, and a strong fit for inventory + booking data.
Paystack for online payments and Meta WhatsApp Cloud API for WhatsApp reminders from day 1. Email is optional, so it does not need to be part of the first production release.
Why Paystack is recommended over “Capitec” as the main payment layer
Paystack is the full payment platform that handles multiple payment methods through one integration. That makes it the stronger default choice for a launch build.
Capitec Pay is one payment option, not a full standalone gateway strategy for the whole system. It can sit inside a broader payment platform, but it is not the same type of product as Paystack.
How each layer solves a real business need
| Layer | Recommended tool | Why it fits Focus Media |
|---|---|---|
| UI / website application | Next.js | Lets us keep the public site, booking flow, and admin tools in one production-grade app while still supporting good SEO and flexible routing. |
| Database | Supabase Postgres | Perfect for structured booking data, date ranges, inventory quantities, payment status, and audit history. |
| Authentication | Supabase Auth | Handles real admin sign-in securely, replacing the current front-end demo login. |
| File storage | Supabase Storage | Useful for inventory images, invoice exports, terms PDFs, and uploaded proof of payment if needed. |
| Payments | Paystack | Best overall launch choice. It gives one clean integration, supports multiple methods, and keeps the first production release simpler. |
| Optional in phase 1 | Email confirmations can be added later. WhatsApp matters more for the first release, so email does not need to drive the stack choice. | |
| Meta WhatsApp Cloud API | Best for due-back alerts, photoshoot reminders, and booking confirmations once the business account is verified. This should be included from day 1. |
Where the real booking rules should live
- Store each inventory item with quantity, rate, and replacement value.
- Store each booking with date ranges, selected items, totals, deposits, and status.
- Track returns, extensions, and damage notes.
- Block overlapping studio bookings.
- Block equipment double-booking by quantity and booking window.
- Require accepted terms before payment sessions are created.
How I would structure the live system
Run the commercial site, booking flow, and admin pages inside one Next.js app. This is the cleanest developer setup and easiest to maintain.
Keep the marketing site where it is, and run the booking system on a subdomain like book.focusmedia24.com. This is useful if the existing host is static-only.
If George wants this on both Apple and Google stores
Build the live web system first. Once bookings, payments, inventory logic, and WhatsApp automation are stable, then convert that system into a mobile app if store distribution is still needed.
Expect an additional R45,000 - R85,000 to build and publish a proper mobile app for both Android and iPhone, plus the Apple and Google store-account fees.
| Mobile component | Estimate | Notes |
|---|---|---|
| Apple Developer Program | US$99/year (+/- R1,640/year) | Official Apple developer membership for App Store distribution. |
| Google Play Console | US$25 once-off (+/- R415 once-off) | Official Google Play registration fee. |
| Additional mobile build effort | R45,000 - R85,000 | Includes the mobile app UI, device testing, packaging, push-notification setup where needed, and store submission. |
If cost becomes the main driver
| Area | Main recommendation | Cheaper fallback | Tradeoff |
|---|---|---|---|
| Frontend | Next.js | Keep parts of the public site as static HTML | Cheaper short-term, but harder to scale into one unified production app. |
| Database | Supabase Pro | Supabase Free while traffic is low | Good for starting, but not ideal once real bookings and admin workflows become business-critical. |
| Payments | Paystack | Peach for EFT-heavy usage | The cheapest gateway depends on actual transaction mix, but Paystack remains the cleaner overall build choice here. |
| Meta Cloud API direct | Email only at first | Cheaper and easier to launch, but less immediate than WhatsApp reminders. |