The club runs on volunteers, so the site had to be cheap to run, never need a developer for routine changes, and be accessible to everyone the club exists for. It also had to pull events from the calendar tool the club already used rather than asking them to maintain events twice.
We built the site on Astro with TypeScript and Tailwind: a static site that loads instantly and has nothing to patch. Content that changes (blog posts, partners, press, FAQs, weekly swim times) lives in Sanity, a hosted CMS with a friendly editor, so the committee edits in a form and the site rebuilds itself.
Events come from the club's Luma calendar through its iCal feed and a small parser we wrote. Membership sign-ups go through an embedded Tally form straight into the club's own account, so the site stores no personal data at all. Everything deploys automatically through Netlify.
We built to AA colour contrast with semantic HTML, visible focus states and reduced-motion support, then handed over with a plain-English guide and a walkthrough for the committee. Day to day, the site is entirely in the club's hands.