📝
How we work (org handbook)
  • Home
  • Onboarding
  • Code of Conduct
  • Project Management
    • Project Initiation
      • Documentation and Checklists
      • Aligning with OpenUp's Mission and Vision
      • Getting Partners and Stakeholders on Board
      • Defining Project Parameters and Limitations (scope)
      • Product Management during the Project Initiation Phase
      • DRAFT COPY
    • Project Implementation
      • Project Planning
      • Agile, Scrum, and the Lean Startup Method
      • Stakeholder Management
      • Meetings
      • Communication
      • Team Management
      • Roles and responsibilities
    • Project Close-out
      • The Close-Out Report
      • Retrospective
      • Donor thanks
      • One page write-up
      • Blog article
      • Maintenance plan (if necessary)
    • Project overviews
      • Citizen Engagement App
      • Our Project List
      • Local Gov Programme
        • Business Portal
      • Tech Infrastructure
    • Project boards
  • How we work
    • Preferred tools
      • Tool sponsorships
    • Budgets & Finance
      • Taxes
        • VAT
        • PAYE and UIF
        • Workmen's compensation
        • Annual PAYE reconciliation
      • The Types of Budgets Used By OpenUp
      • When to Start Planning a Budget
      • Planning a Budget
      • How to Create a Budget
      • How to Spend a Budget
      • How to Adjust a Budget
      • Expense claims
      • Invoicing OpenUp
      • Capturing and approving invoices for payment
      • Allocating AWS costs to a project
      • Allocating Upwork transactions to projects
      • Software, Services and Hosting
      • Downloading Webflow invoices
    • Tool Development
      • Coding Roles
      • Tools For Coding
      • DESIGN
      • The Design Process: Step-By-Step
      • Tools Used In The Design Process
      • Quality Metrics: Design
      • Webflow export rules
      • CONTENT, WRITING, AND MEDIA
      • Creating Substance: The Role of Content in Tool Development
      • Creating Content: Step-By-Step
      • What Goes In Social Media
      • TRAINING & EVENTS
      • Event Planning
      • When, Where, and How to Hold a Training Session
      • Tools Used By Training and Events
      • User testing
      • Making government accessible
    • Outsourcing & Contracting
      • Why do we contract external workers?
      • Platforms We Use To Find Contractors
      • Contracting people for work
      • UpWork Contracting
    • Monitoring & Evaluation
    • Communications & Branding
      • Resizing images
      • Creating an email newsletter
      • Posting a blog
      • Sharing a blog post
      • Marketing Q &A
      • Official communications
      • Tracking app and campaign web traffic sources
    • Human Resources
      • Recruitment
      • Recruitment template: Project lead developer
      • DRAFT Recruitment template: Product owner
      • One-on-ones (1:1s)
    • Organisational Decision Records
      • ODR1: Organisational Decision Records
      • ODR2: Building dynamic web frontends using Webflow
    • Personal Information
    • Password management
  • Tech
    • Development guidelines
    • Preferred tech stack
    • Webflow project guide
      • How to build pages in Webflow so that content can be added using Javascript
    • Setting up a new server
    • Hosting on dokku
    • CDN in front of S3
    • Setting up a new Domain
    • CKAN
  • Product management
    • Our product design process
  • Codebridge
    • Codebridge - the space
Powered by GitBook
On this page
  • Software/web development and hosting
  • General
  • Software/web development stack
  • Django apps

Was this helpful?

  1. Tech

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

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

PreviousDevelopment guidelinesNextWebflow project guide

Last updated 5 months ago

Was this helpful?

Please discuss deviations from our standard stack options in .

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

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

#technology-advice-grp
Tech Infrastructure backlog
Django Cookiecutter
Ansible