About this site

How it is put together, and what it is built on.

This site is built the way it is because a sailing club is run by volunteers, not by a web team. The pages are generated in advance and served as plain files: there is no database to back up, no login for an attacker to find, and no software sitting on a server that needs patching every month. Hosting is free, and the whole site is kept in version control, so any change can be undone.

Race results are not typed in by hand. The officer of the day uploads the Sailwave file they already produce, and the standings, the individual races and the record of who has done race duty all come from it.

Built with open source

Nearly all of it is free and open source software, maintained by people who give it away. It is worth naming them.

Astro

Builds the site · MIT

Turns the pages into plain HTML ahead of time, so there is no software running on a server waiting to be kept patched.

Cloudflare Pages

Hosts it · Free tier

Serves the site worldwide and runs the small amount of code behind results uploads. Costs the club nothing.

node-ical

Reads the club calendar · Apache-2.0

Expands the repeating entries in the club's Google Calendar so the site can list every Sunday and Wednesday race.

sharp

Processes photographs · Apache-2.0

Resizes the club's photographs so pages load quickly on a phone.

Bricolage Grotesque & Inter

Typefaces · SIL Open Font License

Bricolage Grotesque for headings, Inter for everything else. Both are free to use and redistribute.

Scoring

Results are scored in Sailwave, which is free for clubs to use but is not open source. It has been the standard for club and championship scoring for years, and this site reads its files rather than asking anyone to change how they score. Sailwave's own scores are published exactly as it calculated them. Nothing here recalculates a result.

Where the information comes from

  • Calendar: the club's own Google Calendar, read live. Whoever maintains it carries on exactly as they do now.
  • Results and duties: Sailwave files uploaded after racing.
  • Everything else: the club's existing pages and photographs.

Accessibility

The site is checked automatically on every change: every page is loaded at phone and desktop sizes and tested for readable structure, images that describe themselves, links that say where they go, and controls big enough to tap.