← All releases

wp-content/themes/bastion/

Bastion

A theme for a site that has to stay up during the week everyone visits it.

== Description ==

Emergency information sites, election results and outage pages share one requirement: they must work on the day the traffic arrives. Bastion is built so every page is fully cacheable — no per-visitor markup, no session-dependent output, nothing that forces a cache to bypass.

Personalised elements are loaded after the fact from a separate endpoint, so the page itself is identical for everyone and can be served from an edge node without ever touching PHP.

The critical layout is 6KB of inline-free CSS in one request. There is no webfont, because a webfont is a single point of failure for legibility on the day it matters.

== Screenshots ==

Numbered the way they ship in /assets/. Click any one to see it full width.

== Installation ==

  • Install and activate the theme.
  • Set your cache headers using the bundled example configuration.
  • Test with the origin blocked, which the readme walks through.

The readme includes load-test figures and the configuration that produced them.

== Frequently asked questions ==

Logged-in users?

The admin bar loads after the page from a separate request, so a logged-in view does not defeat the cache for everyone else.

Is it ugly?

It is plain. Plain and fast is the brief; there are two style variations and neither is decorative.

== Changelog ==

= 1.6.0 =

  • Admin bar deferred to a separate request so logged-in views stay cacheable.
  • Critical CSS reduced to 6KB.

= 1.4.0 =

  • Removed the last per-visitor markup: the greeting in the header, which nobody needed.