← Articles · Infrastructure · Business · GCP

Beyond the website:
what real business infrastructure looks like in 2026.

Most businesses have a website, a Google Drive folder that no one can find anything in, and a WhatsApp group running operational decisions. That is not infrastructure — that is controlled chaos with a domain name. Here is what real business infrastructure looks like, what it costs to build, how it handles sensitive data, and what the difference between an admin portal and a client portal actually means in practice.

Jarrit Hosking
Forge Vertical · Cape Town · September 14, 2026
16 min read
// The infrastructure gap

There is a moment every growing business hits. The team is larger than five people, the client list is long enough that you cannot remember everyone's status from memory, documents are being emailed back and forth in versions named final_v3_ACTUAL_FINAL.pdf, and nobody is entirely sure what the current price list is because three people have their own copy.

This is not a productivity problem. It is an infrastructure problem. And the solution is not another subscription to another SaaS tool that half the team will use correctly and half will ignore. The solution is infrastructure that is built specifically for how your business operates — with your workflows, your document types, your approval processes, your client access requirements.

What follows is a plain-language explanation of what that infrastructure actually looks like — the platforms, the security architecture, the separation between what staff see and what clients see, how sensitive documents are handled in the cloud, and what it costs to build versus what it costs not to.

GCP vs AWS — which platform and why it matters

// Chapter 01 — Choosing the right foundation

Google Cloud Platform (GCP) and Amazon Web Services (AWS) are both enterprise-grade cloud platforms capable of running anything from a small business tool to the infrastructure behind a national bank. The question is not which one is better — it is which one is better for your specific use case, your team's skills, and your budget model.

Factor GCP (Google Cloud) AWS (Amazon)
Entry cost for small business Lower — Firebase free tier covers most small business workloads. Cloud Functions, Firestore, Auth, Storage — all generous free tiers. Higher — AWS free tier exists but runs out faster on real workloads. Costs escalate quickly as you add services.
Real-time database Firestore — real-time listeners built in. Client portals update instantly without page refresh. Perfect for dashboards. DynamoDB — powerful but requires more configuration for real-time behaviour. Better at massive scale.
Authentication Firebase Auth — email/password, Google, phone OTP out of the box. Free for up to 10,000 users/month. AWS Cognito — robust but more complex to configure. Better for large enterprise with complex auth requirements.
File/document storage Firebase Storage (Cloud Storage) — integrates with Auth rules. Per-user, per-role access baked in. S3 — industry standard. Better for large-scale media storage. More granular policy control at scale.
Serverless functions Cloud Functions — deploy in minutes. Node 24 runtime. Pay per invocation. Zero idle cost. Lambda — more mature, more runtime options. Cold starts can be an issue for low-traffic business tools.
AI integration Gemini API — native integration. Document summarisation, classification, extraction from PDFs direct on GCP. AWS Bedrock — access to multiple models. Better for multi-model strategies at scale.
Best for Small-to-mid business tools, client portals, document systems, real-time dashboards, SA-based teams Large enterprise, high-volume transaction processing, complex multi-region deployments

For most South African small and medium businesses building their first real infrastructure layer — client portals, document management, staff dashboards, automated workflows — GCP on Firebase is the right starting point. Lower entry cost, faster deployment, generous free tiers, and native integration with the AI tools that add the most value for document-heavy workflows.

AWS makes more sense when you are processing very high transaction volumes, need multi-region redundancy across continents, or have an existing team with AWS expertise. For a Cape Town professional services firm, a construction company managing site files, or a healthcare practice handling patient records — GCP gets you there faster and cheaper.

What "sensitive documents in the cloud" actually means

// Chapter 02 — Data security is not a feature, it is architecture

Putting sensitive documents in the cloud is not inherently risky. Putting them in the cloud without thinking about access control, encryption, audit trails, and retention policy is. The distinction matters because most businesses conflate the two — they are nervous about "the cloud" as a concept, but they have already been storing sensitive data in Gmail, Google Drive, and WhatsApp for years without any of the protections a properly built cloud system would give them.

Your client contracts are probably already "in the cloud" — in the attachments of your Gmail thread from 2023. The question is not whether to use the cloud. It is whether your cloud has security rules, access control, encryption, and an audit trail. Gmail does not. A properly built document system does.

Here is what a properly built document handling system provides that Google Drive and email do not:

01
Role-based access control — not everyone sees everything
A Firestore security rules file defines exactly which users can read or write which documents. A client can see their own contracts but not another client's. A junior staff member can view but not delete. A manager can approve but not access financial records. These rules run at the database level — they cannot be bypassed by guessing a URL.
02
Encryption at rest and in transit — standard on GCP
All data stored in Firebase Storage and Firestore is encrypted at rest using AES-256. All data in transit uses TLS 1.3. This is not optional or a paid add-on — it is the default. Your sensitive documents are encrypted whether you think about it or not, unlike a shared folder on a local server.
03
Signed URLs for document access — time-limited, auditable
Instead of a permanent shareable link (which anyone can forward), sensitive documents are served via signed URLs that expire after a set time — 15 minutes, 1 hour, whatever the policy requires. Every access generates a log entry. You know who downloaded what and when. A forwarded link that expired is a dead link.
04
Audit trail — every action logged
Every document upload, download, approval, deletion, and status change writes a timestamped record to a dedicated audit collection. This is not optional — it is the infrastructure. For legal disputes, POPIA compliance, or internal investigations, you have a complete immutable record of what happened, when, and under which user account.
05
Data retention and deletion — POPIA compliance built in
A Cloud Function runs on a schedule and flags documents past their retention period. A client's personal information can be fully deleted on request — from Firestore, from Storage, from the audit log index — with a single admin action that generates a deletion confirmation receipt. That is POPIA compliance by architecture, not by policy document.

Admin side vs client side — what the distinction actually means

// Chapter 03 — Two portals, two completely different experiences

The most common question when businesses first think about a custom platform is: "So it is like a website with a login?" Partially. A more accurate description is two completely separate experiences built on the same infrastructure — one for your team and one for your clients — with a security layer between them that prevents either side from accessing the other's data or functionality.

// Admin portal — internal team
What your staff sees
  • Full client list with status, history, and notes
  • Document upload, approval, and rejection workflow
  • Automated task queue — what needs action today
  • Financial overview — invoices, payments, outstanding
  • Staff role management — who can do what
  • Audit log viewer — full activity history
  • Bulk operations — mass status updates, batch emails
  • Report generation — export to PDF or CSV
// Client portal — external access
What your clients see
  • Their own documents only — nothing else
  • Current status of their application or job
  • Documents requiring their signature or action
  • Invoice history and payment status
  • Secure document upload — ID, contracts, proofs
  • Message thread with your team
  • Notification preferences — email or SMS
  • Download their own completed documents
// Data layer — shared foundation
What sits underneath both
  • --before:color:#8b5cf6">Firestore database with security rules
  • Firebase Storage for document files
  • Firebase Auth managing all user sessions
  • Cloud Functions handling all business logic
  • Audit collection — immutable event log
  • GCP Secret Manager for credentials
// Automation layer — the work that runs itself
What happens without anyone clicking
  • New client → welcome email → portal access created
  • Document uploaded → staff notified → review queued
  • Invoice unpaid 7 days → reminder sent automatically
  • Document approved → client notified instantly
  • Job status changed → client sees update in real time
  • Monthly report → generated and emailed to management

The security boundary between admin and client is not a password on a folder. It is a set of Firestore security rules that evaluate on every single read and write request: what is the authenticated user's role? What collection are they trying to access? Does their user ID match the owner field of this document? If any check fails, the request is rejected at the database level before it reaches any application code.

Real example — a legal practice: A client can log in and download their completed will document. They cannot see other clients' files. They cannot see the staff notes on their own file. They cannot see what the firm charged for the work unless the invoice is explicitly marked as client-visible. All of that is defined in the security rules — not in the UI, not in a setting, but in the rules that run before any data is returned.

The automation layer — what runs without anyone clicking

// Chapter 04 — The part that actually saves time

The single biggest value in a properly built business platform is not the admin dashboard or the client portal — it is the automation layer that connects them. Cloud Functions are small pieces of server-side code that run in response to events: a new document is uploaded, a payment is received, a status is changed, a deadline is passed.

Each of those events can trigger a cascade of automatic actions that currently require a human to notice the event and manually do the thing. The automation does not replace the human decision — it handles the logistics around it.

A practical example for a construction company managing site compliance files:

A subcontractor uploads their updated COID certificate through the client portal. The Cloud Function detects the upload, validates the file type and size, extracts the expiry date from the document using Gemini's document AI, stores the extracted date in Firestore, updates the subcontractor's compliance status to "pending review," notifies the site manager via email, creates a task in the admin queue for document verification, and if the expiry date is within 30 days of the site start date, automatically flags the file as high priority and sends an SMS to the compliance officer. All of that happens in under three seconds after the file is uploaded. No one had to do anything.

The AI document extraction layer: Gemini 2.5 Flash can read a PDF certificate, extract the relevant dates, names, and registration numbers, and write them to your database as structured data — without a human reading the document. For businesses processing high volumes of compliance documents, certificates, contracts, or applications, this collapses what was a half-day data-entry task into a background process that runs on upload.

What this costs to build vs what it costs not to

// Chapter 05 — The honest numbers

A custom business platform on GCP costs between R25,000 and R120,000 to build depending on complexity — the number of user roles, document types, automation workflows, and integration requirements. That is a real number and a real investment.

The comparison is not "R60,000 vs free." The comparison is R60,000 vs what the current chaos actually costs — in staff time spent on manual tasks that should be automated, in errors that happen when the same information lives in three different places, in client experience that drives churn, in compliance exposure from undocumented processes, and in the ceiling it puts on growth because every new client adds work rather than revenue.

Running costs on GCP are low for most small business workloads. Firebase's generous free tier covers the first 50,000 reads and 20,000 writes per day at zero cost. A typical small business platform with 200 active clients might generate 10,000-15,000 reads per day — well within free tier. Beyond that, costs scale incrementally. A platform serving 500 active clients typically runs R800–R2,500 per month in GCP costs depending on storage and function invocations.

// The SaaS trap The alternative most businesses choose is subscribing to four or five SaaS tools — a CRM here, a document tool there, an invoicing platform, a project management system — none of which talk to each other properly, all of which charge per user per month, and none of which are built for how your specific business works. R1,200 per user per month across five tools for a team of eight is R9,600 per month — R115,200 per year — for a stack that still requires someone to manually move data between tools. A custom platform at R60,000 to build and R2,000 per month to run pays back in under eight months and then just runs.

What Forge Vertical actually builds

// Chapter 06 — From conversation to live infrastructure

Forge Vertical builds production infrastructure on GCP with security, access control, automation, and AI integration designed into the architecture — not retrofitted after the fact. Every project starts with a requirements conversation that maps your workflows, identifies the documents and data involved, defines the user roles, and establishes the security and compliance requirements before a line of code is written.

What gets delivered is not a template with your logo on it. It is infrastructure that is specifically built for how your business operates — with your approval workflows, your document naming conventions, your client communication patterns, and your compliance requirements baked into the system rather than worked around it.

// What Forge Vertical builds
Custom business infrastructure on GCP — built for how your business actually works
Not a template. Not a subscription. Infrastructure that is specifically built for your workflows, your document types, your client access requirements, and your compliance obligations — with security, automation, and AI integration designed in from the first commit.
Admin portals with role-based access
Client portals with secure document upload
Automated workflow on document events
AI document extraction and classification
POPIA-compliant data handling
Signed URL document delivery
Full audit trail and activity logging
Email and SMS notification automation
Invoice and payment tracking
Staff task queues and approval workflows
Monthly report generation
GCP hosting — R800–R2,500/month running cost
→ Start the infrastructure conversation
Or WhatsApp directly: +27 65 741 7593 · [email protected]

The businesses that will compound their advantage over the next five years are the ones that build infrastructure now — while their competitors are still managing operations through WhatsApp groups and emailed spreadsheets. The gap between a business with real infrastructure and one without does not close over time. It widens, because the automated business is getting more efficient while the manual one is getting more chaotic as it grows.

The conversation to have is not "can we afford to build this?" It is "can we afford to keep operating without it?"

Written by
Jarrit Hosking
Forge Vertical · Cape Town · September 14, 2026