Preferred tech stack

Software/web development and hosting

General

Task

Preferred tool

Pros

Cons

Static site hosting

  • Netlify

  • Vercel

  • Github Pages

  • CloudFlare

  • Free for most of our needs and usage levels

  • Run whatever front-end and even some back-end build scripts you tell it to

  • We have a Netlify team account for open source non-commercial projects

  • Fundamentally these are CDNs for low latency

  • Technically locked in though practically moving to Docker hosted on Virtual Servers is possible if platform specific features (Netlify Functions, Vercel Sourced Images) not used.

  • Not all have South African data centres

Virtual servers

  • AWS EC2

  • Hetzner Cloud

  • Quick to spin up right-sized instances

  • AWS EC2 Free Tier is capable

  • Managing server operating systems

  • Cost

Database hosting

  • AWS RDS

  • Supabase

  • No need to wonder or worry about backups

  • We have a server that handles our load

  • It's the same cost and less stress than managing the server and ops ourselves

  • Still costly

  • End Of Life version support very expensive

Domain Registration

  • Domains.co.za

  • CloudFlare

  • Domains.co.za is local, lots of our domains already there

  • CloudFlare built in DNS, security, proxy etc. very capable

DNS

  • Cloudflare

  • Supports apex domain aliases

  • DDoS, anti-scraping, and "bot" protection

  • Free Pro features for worthy projects

  • South African data centre

Configuration management

  • One authoritative representation of how an app should currently be deployed. Deploying additional instances is trivial

  • It only works if we keep it up to date

Secrets management (for things needed when we deploy apps)

  • Bitwarden

  • Usable UI

  • Not free

Running apps on servers

  • Dokku

  • Standardised configuration storage

  • Automated HTTP proxy to docker containers

  • Seamless deploy with smoke tests

  • Easy TLS

  • Not suitable for every situation, e.g it doesn't have a notion of dependencies between apps. Docker Networks solves this better than Docker Links though.

Databases that accept writes at runtime

  • PostgreSQL

  • Open Source

  • Performant

  • Under active development

  • Has JSONB field types where optional nested fields can be indexed

  • Not cheap to host

Databases that accept writes at data-loading events

  • SQLite

  • Cheap to host

  • Multi-user performance

Website monitoring

  • UpTimeRobot

  • Most affordable, does the job

  • Not many global locations

Error alerting

  • sentry.io

  • Very helpful request and error data capture/presentation,

  • Aggregating many instances of the same error (as opposed to 1000 emails of the same issue)

  • Open Source sponsorship for team account

Application Performance Monitoring (APM)

  • sentry.io

Port monitoring (notifications when a new port opens on a server)

  • hackertarget.com

  • Diff of open ports via email makes it really easy to spot changes and decide if they thought be open or not.

Software/web development stack

Please discuss deviations from our standard stack options in #technology-advice-grp.

See Tech to try in our Tech Infrastructure backlog for exploring alternatives to these.

Name

Components

Good for

Bad for

Dev costs

Running costs

Webflow static site, webflow-hosted

Webflow

Visually appealing sites

Frequent content edits

Webflow designer time

$12/m annual; $15/m monthly

Webflow static site, static-hosted

Webflow, static hosting

Visually appealing sites, free hosting

Frequent content edits

Webflow designer time

Free - updates require developer to redeploy (30 minutes)

Webflow CMS

Webflow

Visually appealing sites, easy content management

more than 2000 data items

Webflow designer time

$16/m annual; $20/m monthly

Webflow frontend as Django templates

Webflow, Django

Visually appealing sites, social-sharing metadata, thousands to millions of data items

Hosting has an operations overhead

Webflow designer time, Django developer time, Javascript developer time

~$5 per month + hosting operations

Webflow frontend as Single Page App

Webflow, API backend (probably Django)

Visually appealing sites, independence of frontend and backend developer, thousands to millions of data items

Hosting has an operations overhead

Webflow designer time, Django developer time, Javascript developer time

~$5 per month + hosting operations

Django apps

Our preferred way to structure and use django apps is documented and templated using our Django Cookiecutter

Last updated