Technical Recommendation

Focus Media recommended production tech stack.

This page explains the stack I would use to turn the current demo into a real booking system, why each tool is recommended, and where we have cheaper alternatives if George wants to trim recurring cost.

Recommendation

Best-fit stack for this project

Frontend

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.

Backend and database

Supabase for Postgres, auth, file storage, and server-side rules. It is affordable, modern, and a strong fit for inventory + booking data.

Payments and notifications

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.

Recommended production stack for this project: Next.js + Supabase + Paystack + Meta WhatsApp Cloud API. This is the clearest fit because WhatsApp automation is important from day 1 and email can remain optional.
Payment Choice

Why Paystack is recommended over “Capitec” as the main payment layer

Paystack is the gateway

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 a method

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.

Short version: Paystack is better than Capitec only in the sense that it is the better overall gateway choice. Capitec Pay is still useful as one payment method within a gateway mix.
Why This Stack

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.
Email 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.
WhatsApp 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.
Business Logic

Where the real booking rules should live

Database rules
  • 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.
Server-side validation
  • Block overlapping studio bookings.
  • Block equipment double-booking by quantity and booking window.
  • Require accepted terms before payment sessions are created.
Deployment Shape

How I would structure the live system

Option A: one application

Run the commercial site, booking flow, and admin pages inside one Next.js app. This is the cleanest developer setup and easiest to maintain.

Option B: split public site and booking app

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.

Because the website already has a host and domain, I would treat that as an existing asset and decide later whether the live booking system should share that stack or sit behind a booking subdomain.
Mobile App Path

If George wants this on both Apple and Google stores

Recommended sequence

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.

Extra mobile cost

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.
Affordable Alternatives

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.
WhatsApp Meta Cloud API direct Email only at first Cheaper and easier to launch, but less immediate than WhatsApp reminders.