Preferred tech stack

Software/web development and hosting

General

Task

Preferred tool

Pros

Cons

Static site hosting

netlify

  • It will run whatever build scripts you tell it to

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

Watch out - commerical projects if we ever have any should not be on the sponsored team

Virtual servers

  • AWS for projects matching our credits criteria.

  • Hetzner cloud for everything else

Database hosting

AWS RDS

  • 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

Domain Registration

domains.co.za

Local, lots of our domains already there

DNS

Cloudflare

Supports apex domain aliases (Regularly resolves the provded hostname to serve an A record as if it's a CNAME)

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)

Built on simple principles. Very secure.

Steep learning curve even for techies.

Not usable by non-technical people.

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

Has JSONB field types where optional nested fields can be indexed

Databases that accept writes at data-loading events

SQLite

Website monitoring

uptimerobot (migrating from uptimedoctor.com)

Most affordable, does the job

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