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