Cases

What we build, with the bill attached.

Each case shows the architecture, the decisions we took and what we left out on purpose, with the monthly cost line by line. We start with our own platform, because it is the one we can publish without asking anyone. Client cases follow as they authorise them.

Case 01 · Cloud · AWS

Hosting three apps with database, backend and frontend for as low as 12 USD a month.

Our own platform: three web applications, each with a frontend, an API and a MySQL database, running in production on AWS. The whole thing costs less than a single managed database instance, with no trick we would not recommend to a client.

≈ 12 USDPer month, all ineu-west-1 with a one-year Savings Plan on the instance. About 20 USD on demand with no commitment
3 appsOn one t4g.small instanceGraviton, 2 vCPU and 2 GB: MySQL plus three backend containers behind Caddy
0 USDFor frontends, CDN and TLSStatic sites on S3 and all traffic through CloudFront, within its always-free tier of 1 TB a month
Line itemWhat it coversUSD / month
EC2 t4g.small, one-year Compute Savings PlanMySQL 8, three backend containers and Caddy, 730 hours. No upfront payment; 13.4 USD on demand8.5
EBS gp3, 20 GBOperating system, images, database volume and certificates1.8
Route 53One hosted zone and DNS queries for all subdomains0.6
EBS snapshotsDaily incremental backup of the volume, three days retained0.4
S3 and CloudFrontThree static frontends and one distribution per app, also in front of the APIs; TLS certificates from ACM< 0.1
Public IPv4 addressNone. The instance is IPv6-only and CloudFront reaches it over IPv6. Would be 3.7 USD0
Data transfer outCloudFront covered by its free tier; first 100 GB a month from EC2 free0
TotalOne-year commitment on the instance only≈ 11.5

How it is built

A single Docker Compose stack for shared infrastructure: MySQL with a 128 MB buffer pool, phpMyAdmin reachable only from the instance, and Caddy as reverse proxy. Each app adds its own compose file with a 512 MB backend container on the shared network. CloudFront sits in front of everything, terminates TLS and talks to the origin over IPv6, so the instance needs no public IPv4. Administration goes through Session Manager, which is free.

What it does not give you

No high availability: one instance in one zone, so a maintenance event means minutes of downtime. Restore is from the daily snapshot. It fits internal tools, early-stage products and demos. When one app needs more, move only that one to Fargate or RDS and keep the rest where it is. We stop here on purpose: a t4g.micro or a three-year reservation would shave a few more dollars at the expense of headroom or flexibility.

Prices for eu-west-1 (Ireland) in September 2026, before taxes. The same stack on demand, with a public IPv4 and seven days of snapshots, comes to about 20.5 USD a month.

Case 02 · Cloud · AWS

A bilingual website and a React app served for cents.

This site and Skyline's web app share one S3 bucket and one CloudFront distribution. English at the root, Spanish under /es/, the app under /app/. No server, no framework on the public pages and nothing loaded from third parties.

< 1 USDPer month for site and appStorage in S3 and requests through CloudFront's always-free tier; the DNS zone is the only fixed line
1 functionFor clean URLs and redirectsA CloudFront Function maps /cloud to cloud.html, sends .html and /es to their canonical form with a 301 and falls back to the app router
0 requestsTo third partiesTwo self-hosted variable fonts, inline SVG and one stylesheet. No tag manager, no analytics script, no external CSS
PieceDecisionWhy
StorageOne private S3 bucket, read only by CloudFront through origin access controlNo public bucket, one place to sync
URLsCloudFront Function rewrites /cloud to /cloud.html and /es/ to /es/index.html; .html and /index.html URLs redirect to the clean formOne canonical URL per page
LanguagesEnglish by default, Spanish in /es/ with hreflang in every page and in the sitemap; the language switch points at the same page in the other languageRight page in each market
CacheHTML five minutes; fonts and the app's hashed assets one year and immutable; the app's index.html never cachedInstant publishes, cheap repeats
ErrorsS3 returns a real 404 and CloudFront serves a custom 404 page with the site navigationNo blank error screens
TLS and DNSCertificate from ACM on the custom domain, zone in Route 53Free certificate, automatic renewal
Edge locationsPrice class 100: CloudFront edges in Europe and North America only, where the audience isLowest per-GB rate
DeployOne script builds the app, syncs the site and the app with their cache policies and invalidates the distributionOne command, under two minutes

How it is built

The public pages are plain HTML files with a shared stylesheet, written to load in one round trip: fonts preloaded, critical layout in a single CSS file and SVG diagrams inline. The React app is built with Vite and lands under /app/ with hashed file names, so only its entry document needs a short cache. The whole thing is described in Terraform next to the rest of the platform, and the same distribution fronts the APIs of the hosting case above.

What it does not give you

No server-side rendering and no content management system: editing a page means editing HTML and running the deploy script. That is fine for a site of a dozen pages maintained by engineers. If marketing needs to publish daily, we would put a static site generator in front and keep the same bucket and distribution.

Prices for eu-west-1 (Ireland) in September 2026, before taxes. CloudFront's always-free tier covers 1 TB of transfer and 10 million requests a month. The hosted zone is already counted in the hosting case.

Want your case to look like this?

A ten-day, read-only assessment gives you the numbers first.

Request an assessment