Pilot-stage · Accra, Ghana · 2026

A public cloud, built in Ghana, for the developers building next.

Codafords runs app hosting, serverless functions, managed databases and object storage on a private, self-managed cluster we own end to end. Nothing shared with another provider. Every layer chosen to make a real multi-tenant cloud possible on infrastructure we control.

4
products live and exercised end to end
7
languages built with no Dockerfile
2
storage tiers, each purpose-matched
100%
self-managed, owned infrastructure
Part I — Infrastructure

Topology: from bare cluster to a tenant’s live URL.

Five layers, each purpose-built rather than one undifferentiated pool — this is what makes tenant isolation and platform stability possible at the same time. Traffic flows top to bottom; a tenant’s code flows bottom to top.

Edge

Edge, DNS & TLS

ingress-nginx · cert-manager

Every route on the platform enters through the default ingress class. Real TLS certificates are issued automatically via Let’s Encrypt — for platform URLs and tenant custom domains alike.

ingress-nginx
default ingress class
cert-manager
automatic TLS issuance
DNS + custom domains
verified per tenant
SafeLine WAF
reserved, not default
TLS-terminated HTTP control plane
Control

Control plane & identity

API / scheduler · OAuth2 / OIDC

The API and scheduler pool runs the control plane. Tenant-facing auth handles self-service signup, login, session management and account recovery, paired with OAuth2/OIDC token issuance — both dedicated exclusively to Codafords.

Control & API
scheduler + platform API
Identity
signup, login, sessions
Layered RBAC
least-privilege, anti-escalation
Capacity guardrail
admission-time headroom check
scheduling decisions node pools
Pools

Purpose-built node pools

enforced node affinity

Everything is split into distinct, isolated pools rather than one undifferentiated pool. A cluster policy automatically enforces node affinity, so tenant workloads run only in the tenant pool — physically separated from platform infrastructure.

Platform infra
shared platform services
DevOps
CI/CD tooling
Storage
block + object backends
Tenant resource
every tenant workload, only here
persistent volumes build artifacts
Data

Two storage tiers

block · S3-compatible

Two separate storage systems, each matched to what it is actually good at: block storage for anything needing a real POSIX-consistent low-latency disk, and object storage for anything better modelled as immutable blobs.

Block storage
Postgres, GitLab, registry, metrics
CodaSimpleStorage
artifacts, backups, tenant buckets
Encrypted secrets
every credential, token, TLS key
Off-site replication
nightly, physically separate
isolated namespace per tenant project
Tenant

Tenant & deployment

quota’d · NetworkPolicy-enforced

A user with three projects has three independently-quota’d, independently-isolated workloads. NetworkPolicies restrict pod-to-pod traffic across tenant boundaries, and event-driven autoscaling scales HTTP workloads down to zero when idle.

Tenant project
isolated namespace + quota
Deployment
image from tenant registry
Autoscaling
HTTP-based, scales to zero
Live URL
codafords-<slug>.cloud.gov.gh
Autoscaling

Event-driven autoscaling drives both tenant apps and CodaFunctions — chosen because standard autoscaling cannot scale to zero, but HTTP-based scaling can, which matters on a platform hosting many low-traffic apps.

Capacity guardrail

An admission-time check verifies real cluster headroom before a new tenant is provisioned, protecting the whole tenant pool from oversubscription. Pilot stage.

Credential discipline

Every credential generated anywhere in the project is logged in a single access-controlled, git-ignored record — enforced consistently across the whole build.

The deploy pipeline

Real, automated, auditable — end to end.

push live in ~90s
  1. 01

    Connect

    A GitHub repository through a real GitHub App integration, or a direct push to Codafords-hosted GitLab.

  2. 02

    Detect

    Automatic build detection with no Dockerfile required, plus a custom Next.js buildpack.

  3. 03

    Build

    A push triggers a real build on the DevOps pool, isolated from tenant workloads.

  4. 04

    Register

    The built image lands in the platform’s own container registry, scoped per tenant.

  5. 05

    Deploy

    Rolled out into the tenant pool, routed through ingress, TLS issued, live status reported.

Part II — What Codafords offers

Live today. Exercised against the real platform.

Not a roadmap slide — every product below has been run end to end on the running cluster, not demoed against a mock.

01Live

App Hosting

The foundation everything else builds on: push code, get a running, publicly-reachable application with zero infrastructure knowledge required.

  • GitHub App install-and-go, or Codafords’ own built-in GitLab
  • No Dockerfile required across seven languages, plus tested Next.js paths for Pages Router, App Router and Turbopack
  • Web apps and APIs equally supported — any HTTP service, any language
  • Custom domains with automatic, free TLS and live deployment health
02Live

CodaFunctions

Deploy a single function instead of a whole app, triggered however makes sense for the workload.

  • HTTP, scheduled/cron, and event-driven triggers on NATS JetStream — genuinely one execution per event
  • Go, Node.js and Python runtimes
  • A real in-browser editor that commits and redeploys through the same real pipeline
  • Live-editable trigger type, replica count and cron schedule after deployment
03Live

CodaDBaaS

A real “provision a production-grade database in minutes” experience — a dedicated instance per tenant, never a shared multi-tenant schema.

  • PostgreSQL via CloudNativePG and MongoDB via the official Community Operator
  • TLS mandatory on every connection, verified live for both engines
  • Per-database IP allowlisting, automatic backups, opt-in read replicas, connection pooling
  • Connection details injected automatically for Codafords-hosted apps
04Live

CodaSimpleStorage

An S3-like storage service, API-driven by design — tenants never receive a standing storage credential.

  • Public or private buckets with size-aware upload routing
  • Static website hosting with SPA routing and custom index/error pages
  • Version history with one-click restore on every object change
  • Per-bucket CORS and nightly off-site backup replication
05Live

Account & Dashboard

One platform experience covering everything a tenant runs, with real self-service throughout.

  • Self-service signup and login with password policy enforcement
  • Security-question-based password reset flow
  • Self-service account deletion — a real, complete deletion of every owned resource
  • A single dashboard across Projects, Functions, Databases and Storage

Build on it today.

Every layer above is running right now. Connect a repository and get a live URL in about ninety seconds.