What the club needed
The club meets once a month, runs three miles, and finishes at a local business that puts out free food and drinks. It costs nothing to join and there is no signup. The two people who run it are students who announce each run on Instagram. The site had to tell a first timer what to expect, and let the club post the next run from a phone without asking anyone for help. It also had to run on almost nothing, so every service we picked is free at the club's size or needs no account at all.
What's above the fold and why
The header has the logo, four links (About, Runs, Community, Merch) and a "Join Us" button. The headline is "Sheboygan runs better together." The line under it answers a new runner's first questions: "A free monthly running club in Sheboygan, WI. 3 miles. Good people. Great coffee at the finish." One button, "Come Run With Us", goes to the runs page. The other, "See What We're About", scrolls down.
Right under the hero is a four item bar: Est. 2025, 3 mi every run, monthly runs, all paces welcome. A nervous first timer sees "all paces welcome" before scrolling.
How the pages are organized
- Home: who we are in three cards, the next runs, photos from past runs, member quotes, a join call to action and the newsletter box.
- About: the club's story, four things it believes in, and the people who run it.
- Runs: the next run on top, then past runs, then five questions a new runner asks. When nothing is scheduled the page says the next run is being planned and points to Instagram.
- Each run has its own page with the date, start time, meeting spot, a map, distance, a pace note and the post run spot. The meeting spot has an "Open in Google Maps" link, and an upcoming run shows a weather forecast for run day.
- Community: run photos, a recap page for each past run, and a card for the club's Strava group.
- Join: "Your first run is free. So is every run after that." Three steps, the newsletter and the same five questions.
- Merch: a coming soon page the club fills in when it's ready.
How the club edits the site
The editor lives at /keystatic on the site itself and runs on Keystatic Cloud. The club signs in with an email and password and sees a sidebar of what they can change. Runs, Community Photos, Run Recaps, Member Testimonials, Homepage, About, Team Members, Site Settings and Merch. The editor only exposes fields, so the club changes words, dates, places and photos and the layout stays the way we built it.
Adding a run is a form. Title, date, start time, meeting location, distance, a pace note, a description, a checkbox to show it on the homepage, a status of Upcoming, Completed or Cancelled, the post run spot, a route map link and a difficulty. Click Save and the change is committed to the site's code repository. Vercel rebuilds, and the live site updates in about a minute.
After the run, the club flips the status to Completed and it moves to past runs. A cancelled run hides from the schedule but stays in the records. The homepage rechecks the date every hour, so a run drops off the upcoming list on its own once the day passes. iPhone photos upload as they are, since the editor converts HEIC files to JPEG in the browser first. A plain English guide at /admin-guide covers each task.
The contact path
There is no contact form. The footer on every page has an "Email Us" link that opens the club's email address, next to Instagram, Facebook and Strava. The newsletter is one email field and a "Count Me In" button under "Never miss a run." Each signup goes to Buttondown, the newsletter tool the club writes from.
What we left out on purpose
- A contact form. It was in the first plan. The club signed off on dropping it, since an email link does the job with nothing to maintain.
- RSVP, accounts and a member list. You show up.
- A store with checkout, until there is something to sell.
- An Instagram feed embed and Google Maps embeds. Both need API keys. The maps are OpenStreetMap, which needs none.
How it measures
Measured 2026-10-06 with Lighthouse 13 on mobile: performance 96, accessibility 96, best practices 100, SEO 100. Largest Contentful Paint 2.8 seconds, Cumulative Layout Shift 0. The pages are built ahead of time from the club's content, and the two typefaces are hosted on the site. The animated dot surface behind the hero loads only on desktop.
See what we build for gyms, studios and clubs Websites for health and fitness.
