Skip to content

Older release notes

Changelog archive

Last updated v0.217.2

Older releases, newest first. Back to the latest changelog.

v0.97.12 — 2026-06-13

  • Improved — The map now pans and zooms more smoothly on phones (it renders at a lighter resolution that's still sharp), the map code starts downloading earlier so it appears sooner, and tiles fade in a touch faster — open the map.

v0.97.10 — 2026-06-13

  • Improved — Full-screen map now pans and zooms freely and smoothly (one-finger drag, normal scroll) instead of needing two fingers or Ctrl/⌘, and the legend sits higher so it's easier to see — open the map.

v0.97.9 — 2026-06-13

  • Improved — In full-screen map view the button now shows a clear "exit full screen" icon (inward corners), and the legend opens automatically (still collapsible) so the pins are explained right away — open the map.

v0.97.4 — 2026-06-13

  • Improved — The locations map loads faster — the connection to the map tile service is warmed up ahead of time so it paints sooner.
  • Fixed — Enlarging the map now keeps the top navigation bar visible and stops above it, and the on-map buttons stay clear of the rounded corners on phones.

v0.97.1 — 2026-06-13

  • New — The locations map now has a "near me" button — tap it to drop your location and see the closest branch — and an enlarge button to expand the map to full screen on phone or laptop (tap again or press Escape to exit) — open the map.

v0.97.0 — 2026-06-13

  • Improved — Search engines now get rich data for your locations, events, and FAQs (structured markup), so they can show them as proper local-business, event, and FAQ results — browse locations.
  • Improved — Shared links (Open Graph / Twitter cards) resolve to the right address per gym and pull in your location and event photos, so a pasted link previews cleanly.
  • Improved — Every public page now declares a canonical URL, so search engines stop treating query-string variants of a page as duplicates.

v0.96.3 — 2026-06-13

  • Improved — Faster check-in, dashboards, and the resoler queue — several screens now fetch their data in parallel instead of one query at a time.
  • Fixed — Cancelling a coaching session always refunds exactly one credit (even on a double-tap), and online pass/coaching purchases land on the Online line of the daily Z-reading — view Z-readings.
  • Security — Sign-up records your consent choices atomically with your account; admin account-recovery actions are gym-scoped and re-auth gated; and shared coaching credits + policy re-prompts stay within your own gym.

v0.96.2 — 2026-06-13

  • New — Tap a branch on the locations map and the popup now shows the branch photo, whether it's open right now with today's hours, and — when set — a "where to park" photo so you know where to go — view the map.
  • New — Admins can upload a parking photo per branch (a shot of the entrance or the lot) from branch settings; it appears in that branch's map popup — edit a branch.

v0.96.1 — 2026-06-13

  • Improved — The FAQ page is now listed in the site map so search engines discover and index it — browse all FAQs.

v0.96.0 — 2026-06-13

  • New — Each page can now show its own relevant FAQ in a block above the footer — see rates questions on the rates page, resoling questions on the resoling page, and so on — browse all FAQs.
  • NewFAQ is now in the top navigation bar on desktop and tablet, and reachable from the command palette (Cmd/Ctrl+K).
  • Improved — Admins choose which FAQ category appears on each page from a new Page placements tab — manage FAQ placements.
  • Improved — FAQ answers are now search-engine friendly (rich-result data) and individual questions can be linked to directly.

v0.95.1 — 2026-06-13

  • Improved — Parking on the Locations map is now a clearer blue "P" badge (instead of yellow), and only the parking near each branch is shown (within about 500 m) so the map stays focused — view the map.
  • Improved — The Locations map is finalized to your gym's brand colour scheme (the temporary mono/brand preview switch has been removed).

v0.94.2 — 2026-06-13

  • Improved — On phones and tablets, tapping a calendar day now shows a quick preview first and a second tap on the same day opens the full detail — so scanning the calendar no longer jumps you straight into a day. On a computer, one click still opens the day — open your calendar.

v0.94.1 — 2026-06-13

  • Fixed — Location pins no longer lag behind the map when you pan or zoom — they now stay pinned exactly to their spot — open the map.
  • Improved — Redesigned the branch pins so your logo reads clearly on any brand colour, and made the parking markers larger and easier to spot.

v0.94.0 — 2026-06-13

  • Improved — Calendars now read in plain language — months show as "June 2026" instead of a raw code, and a new Today button jumps straight back to the current month — open your calendar.
  • Improved — Switching tabs, views and filters across the app now animates smoothly instead of snapping, and tapping a calendar day glides its details into view.
  • Improved — A polish pass on the member and operator dashboards: clearer rows, gentler hovers, and friendlier empty states with a next step to take.
  • Fixed — Long values and cards no longer spill past their borders, and the calendar's day markers stay tidy on small phones.

v0.93.0 — 2026-06-13

  • Improved — The locations map got a cleaner, editorial redesign with branch names shown right on the map, redesigned pin markers, and buildings that rise in subtle 3D as you zoom into a neighbourhood — explore the map.
  • Improved — The map no longer hijacks the page when you scroll past it: scrolling moves the page, and you zoom with Ctrl/⌘ + scroll (or two fingers on a phone).

v0.92.1 — 2026-06-13

  • Fixed — The rates page no longer lists every branch when they all charge the same — the "Prices for" branch chips now appear only when a branch actually has a different price, so identical branches aren't shown as separate options — see rates.

v0.92.0 — 2026-06-13

  • New — Your logo is now the map pin: each branch is marked by the gym's own mark right where it stands (the map-wide watermark is gone), with a legend decoding every pin and marking — explore the map.
  • New — Tap a parking spot or transit stop near a gym and get its distance ("Right by Eton Centris — ≈ 60 m") plus one-tap Google Maps / Waze / Apple Maps directions.
  • New — Each location's own page now shows the same brand map in its "Find us" card (replacing the Google embed when the branch is pinned).
  • Improved — Roads are now a muted tone so the brand pins stand out; the map opens with a slight cinematic tilt; and the Locations pages always open at the top.

v0.91.0 — 2026-06-13

  • Major — The Locations map is now a fully custom vector map drawn in your gym's colours — dark brand base, brand-green roads, your logo as a watermark, and crisp seamless rendering — explore the map.
  • New — The map shows parking spots and public transport (stations, bus stops, rail lines) when you zoom into a gym's neighbourhood.
  • New — Tap a pin and get one-tap directions — open the exact spot in Google Maps, Waze, or Apple Maps — with each pin titled by gym and branch (e.g. "Good Climbs — Eton Centris").
  • Improved — Map credits are now small and unobtrusive, and the zoom controls match the dark theme.

v0.90.0 — 2026-06-13

  • Improved — The homepage gains depth: the hero photo now lags gently behind the headline as you scroll past it, the photo band's three pictures drift at three different speeds, and the stats bar and closing banner pick up a subtle scroll drift of their own.
  • Improved — Your gym's motion preset (Calm / Standard / Expressive / Off) now also scales how strongly those scroll effects move — Calm keeps the drift gentle, Off stills it completely, and a visitor's reduce-motion setting always wins.
  • Fixed — Several decorative animations that had silently stopped playing are back: the homepage headline's entrance, the gentle photo drift, the pearlescent shimmer on annual passes and gift cards, and the soft fade when overlays open.

v0.89.6 — 2026-06-12

  • Hotfix — Fixed the real culprit on the Locations page: a location card's placeholder photo could expand to cover the whole page (and tapping it navigated away). The card image is now correctly boxed — open Locations.

v0.89.5 — 2026-06-12

  • Hotfix — Definitively stop the Locations map from covering the page: its slot is now sized and clipped by the page itself, instantly, instead of waiting on a stylesheet to load — open Locations.

v0.89.4 — 2026-06-12

  • Hotfix — Added a second safeguard so the Locations map can never grow past its slot and cover the page, even during a slow first load — open Locations.

v0.89.2 — 2026-06-12

  • Improved — The Locations map now uses a dark, on-brand basemap instead of the plain street map — explore the map.

v0.89.1 — 2026-06-12

  • Hotfix — The Locations map no longer overflows its card and covers the page in production — open Locations.

v0.89.0 — 2026-06-12

  • New — The Locations map now also shows partner gyms, resole providers, and physical-therapy studios near you — colour-coded pins, with a "Partners & services" list under the map — explore the map.
  • New(Platform operator) A new Directory screen in the platform console curates those external map listings for every gym in one place — open the directory.
  • Fixed — The Locations map no longer occasionally overflows its card on first load.

v0.87.0 — 2026-06-12

  • MajorBranches are now Locations: the public pages moved from `/branches` to `/locations` (old links redirect automatically) and the nav says Locations everywhere — see our locations.
  • New — The Locations page now opens with a large interactive map of every location — pan, zoom, and tap a pin for the address and a link to that location's page — explore the map.
  • New — The command palette now searches the FAQs: type part of a question and jump straight to the answer — press Cmd/Ctrl+K and try "refund" — browse the FAQs.
  • Improved — Admins can pin each location on the map by entering its coordinates in the branch settings — open Branches settings.

v0.86.0 — 2026-06-12

  • New — Members can now Buy a pass and View locations straight from the command palette — press Cmd/Ctrl+K, or tap the search icon, and start typing — see passes.
  • New — FAQ answers can now contain links — admins can turn any word or phrase into a link to another page from the FAQ editor — browse the FAQs.
  • Improved — The admin Overview dashboard now shows new-registration counts for Today / This week / This month, and the Active passes card links straight to Pass Statistics — open the dashboard.
  • Improved — One search launcher, not three: the duplicate "Search" entries in the account menu and mobile drawer were removed — the always-visible search icon covers every device.

v0.85.2 — 2026-06-12

  • Improved — The animated topographic background no longer competes with scrolling: it now renders on a separate browser thread (where supported), big and high-resolution screens auto-adapt its detail, and a background parked at speed 0 costs nothing. Pages feel noticeably smoother, especially on desktop.
  • Fixed — Local setup and deploys no longer fail after the recent database-pooler change: Prisma 7 requires connection URLs in its config file, not the schema — migrations now correctly use the direct connection while the app keeps using the pooler.

v0.85.0 — 2026-06-12

  • New — The command palette can now do things for members, not just navigate: a My account group with Book a session (opens the real booking page) and Download my data — the Data Privacy Act export, triggered straight from the palette — open your dashboard and press Cmd/Ctrl+K.
  • Security — A final hardening sweep behind the scenes: the member activity timeline and a couple of page titles now read strictly from your own gym's data, closing out the multi-gym isolation audit.
  • Improved — Signed-in pages load a touch faster: your gym is now remembered on your session instead of being looked up from the database on every request.

v0.84.0 — 2026-06-11

  • New — Receipts now show a pass's student discount as its own line — the original price, then "Less student discount (X%)" — so customers see exactly why it was reduced.
  • New — Tuck rarely-used passes under an "Others" popup at check-in to keep the front-desk grid uncluttered — set it per pass with the counter placement toggle — open Pricing & passes.

v0.83.0 — 2026-06-11

  • New — Choose how animated your site feels with the Motion preset (Calm, Standard, Expressive, or Off) in the theme editor — open Theme settings.
  • Improved — The public site gets a motion polish pass: the homepage intro animates in, sections reveal gently as you scroll, stat counters tick up, and photos drift subtly — always still for visitors whose device asks for reduced motion.
  • Improved — Moving between public pages now cross-fades smoothly instead of cutting — on browsers that support it, and never when reduced motion or the Off preset is set.

v0.79.0 — 2026-06-11

  • New — Custom passes you create are now sold + issued everywhere — the front desk, check-in, and online buy — not just the standard four.
  • New — The rates page can show a different price per branch: pick a branch to see its pricing — see the rates.
  • Improved — Apply a student discount when issuing a pass at the desk (VAT still charged), and per-pass purchase limits + sale windows are now enforced (a manager can override the limit at the desk).

v0.77.0 — 2026-06-10

  • New — Passes, perks, and discounts now live in one place: your gym sets each pass's price, duration, perks, badges, and per-branch availability, and the member rates page shows it live — see the rates.
  • Improved — The rates page now lists each pass's perks with icons, highlights the most popular pick, and can show a different price per branch.
  • Fixed — Receipts for passes issued at the front desk now show the correct VAT (the VAT line was previously over-stated on priced passes).

v0.71.2 — 2026-06-10

  • New — Your profile photo now shows in the navbar: the picture taken at sign-up or by the front desk appears beside "Welcome back" instead of a placeholder.
  • New — A search button sits right in the member top bar, so the command palette is one tap away on a phone — open it from any page.
  • Improved — Admins: the dashboard is now called "Overview", reachable from the homepage menu, with a "View site" link to jump back to the public pages.
  • Security — The member roster is now strictly scoped to your gym, and palette search across sales, events and products is indexed to stay fast as you grow.

v0.71.1 — 2026-06-10

  • Fixed — Creating an account no longer gets stuck on "already exists" if you double-tap the sign-up button or your connection retries — re-submitting now signs you straight in, and any sign-up error shows clear links to sign in or reset your password instead.
  • Security — Front-desk check-in now verifies your waiver is signed against the current version of the waiver, not just signed at some point. If the waiver has been updated since you signed, the desk will ask you to re-sign before you climb.

v0.70.0 — 2026-06-10

  • New — The command palette now remembers you: a "Recent" list of your last commands appears when you open it, and the commands you use most rank higher while searching.
  • New — Deep search for operators: typing in the palette now also finds passes, sales, events and products (admin), and passes (staff) — straight from the same search box.
  • New — Members can use the palette on the public site too: Cmd+K and the "Search ⌘K" menu item now work on the marketing pages while signed in, not just inside the portal.

v0.69.1 — 2026-06-10

  • Fixed — The command palette now opens on the first tap of its "Search & commands" launcher on phones and tablets — previously a tap did nothing until a keyboard Cmd+K had been pressed.
  • Improved — Members can open the palette without a keyboard: a "Search ⌘K" item in the account menu and a "Search & commands" button in the mobile menu, available across the member portal — open your dashboard.
  • Improved — The palette loads in the background after the page settles, so the first open is instant even on a slow connection, and touch targets are bigger on phones.

v0.67.0 — 2026-06-06

  • Improved — Group check-in receipts now break down by person with each person's own subtotal, and for Senior/PWD guests the VAT-exemption + 20% discount show right on their lines.
  • New — A pass bought with a Senior/PWD discount is now tied to that cardholder — it can't be shared, and the receipt says so (RA 9994 / RA 10754).
  • Improved — At the counter, the Senior/PWD discount applies to one item per cardholder; extra units ring up at the regular price on their own line.

v0.65.0 — 2026-06-06

  • Improved — If we update the Privacy Policy or Terms, you'll be asked to review and accept the new version once on your next visit before continuing — your previous agreement is kept, and the new acceptance is added with its date.

v0.64.0 — 2026-06-06

  • New — Set up an on-site print agent per branch for network and back-of-house printing, with a live Connected / Paper-out / Offline status for each station — open Printers.
  • New — Send a test print to any network/agent printer to verify it end-to-end, right from the Printers page.
  • Improved — Group check-in receipts now show a clear per-person breakdown with a subtotal for each person.
  • Improved — Diagnostics gained a live print-agent health check (agent connected, printers online).

v0.59.0 — 2026-06-05

  • Improved — The homepage hero is now swipeable — swipe (or tap the dots) to glide between photos with a smooth dissolve, while the cinematic slow-zoom keeps playing — open the homepage.

v0.56.0 — 2026-06-05

  • Improved — Signing up now asks you to explicitly accept the Privacy Policy and Terms (links open in a new tab) before your account is created — clearer consent, and your agreement is recorded with the version you saw. Marketing stays a separate, optional choice that never blocks sign-up.

v0.55.0 — 2026-06-05

  • Improved — Consent records are now captured everywhere: signing up records your privacy, terms, and waiver agreements (plus marketing if you opt in), and front-desk sign-ups now record the waiver too — all in your consent history.
  • Improved — Legal documents are now classified as required (privacy, terms, waiver, guardian waiver) vs informational, laying the groundwork for cleaner consent prompts.

v0.53.0 — 2026-06-05

  • New — Your personal-data export now includes your full consent history — every time you granted or withdrew a consent (waiver, marketing), with the date — open My profile.
  • Improved — Consent is now recorded as a permanent, append-only history (each change is a new dated entry, never an overwrite), strengthening our Data Privacy Act record-keeping.

v0.52.0 — 2026-06-05

  • Improved — The browser-tab icon (favicon) now follows your brand colour — recolour your theme and the tab icon recolours with it. (The installed-app home-screen icon stays a fixed brand image; regenerate it at deploy time if your brand colour changes.)

v0.50.0 — 2026-06-05

  • Improved — Your logo now follows your brand colours: it's drawn inline, so retinting your theme recolours the Good Climbs mark in the footer, the staff sidebar, and the install splash instead of leaving it stuck on the default green — open Appearance.

v0.47.0 — 2026-06-05

  • New — Admins now manage FAQ categories directly — add, rename, reorder, or remove them, and pick one from a dropdown when writing a FAQ — open FAQs.
  • Improved — Every staff and admin sidebar now shows the app version, linking straight here to the changelog.
  • Improved — In-app manuals gained numbered sections and a quicker table of contents.

v0.44.1 — 2026-06-05

  • Improved — The public site is much snappier on phones: the animated topo background now runs at a lighter quality on mobile and waits for the page to paint first, so the homepage becomes interactive far sooner — open the homepage.
  • Improved — Faster first paint everywhere — custom web fonts no longer block the page from rendering, and a background animation now runs on the GPU.

v0.44.0 — 2026-06-05

  • New — A Policy updates page lists when each of our legal documents — waivers, privacy, terms, and refund policies — last changed, newest first, with a link to read the current version. Find it in the site footer under Legal.
  • Improved — The changelog now links across to Policy updates, so legal-document changes and release notes are easy to find from one another.

v0.43.4 — 2026-06-05

  • Fixed — Release notes no longer link to a page you can't open: a link to a staff- or resoler-only screen now shows as plain text for everyone who can't reach it, so you read what changed without tapping into a forbidden page — the people who can use the screen still get the working link.
  • Fixed — Corrected a broken "manage resolers" link in an earlier note that pointed at a page that doesn't exist.

v0.43.3 — 2026-06-05

  • Improved — Tuned the branch "Find us" map height to a standard widescreen proportion — a touch taller than the original, without feeling oversized.

v0.43.2 — 2026-06-05

  • Improved — The branch "Find us" map is now a little taller, showing more of the area around the venue.

v0.43.1 — 2026-06-05

  • Improved — The branch "Find us" map is now zoomed out a little to show the surrounding streets and main roads, making it easier to place the venue at a glance.

v0.43.0 — 2026-06-05

  • New — Every uploaded photo (member photos, products, event heroes, branch walls, route + resoling photos) is now served in the most efficient format your device supports — AVIF, then WebP, then a universal fallback — so pages load faster on every browser.
  • Improved — The homepage photos now load as AVIF too, cutting the homepage's image weight roughly in half on modern browsers.
  • Improved — Photos are auto-compressed on submit and capped at an admin-configurable size; the cap + image quality live in `/admin/settings/operations`.

v0.42.0 — 2026-06-05

  • Improved — Each branch's "Find us" map now loads as a single lightweight image instead of the heavy interactive map (~90% lighter, far faster on mobile) — tap it to open the full, interactive map.

v0.41.2 — 2026-06-05

  • Improved — The map on each branch's "Find us" section is now more compact and loads faster.
  • Fixed — The homepage hero photo no longer looks stretched on laptop and desktop screens.

v0.41.0 — 2026-06-04

  • New — Gyms operating before their BIR registration is approved can now switch on Pre-registration mode (Settings → BIR registration): sales are still fully recorded, but slips print as a clearly-marked "Acknowledgement Receipt — not an Official Receipt" and no official OR# is consumed, keeping the BIR range pristine for when the PTU lands.
  • Improved — While pre-registration mode is on, the end-of-day Z-reading prints as a clearly-marked internal sales summary rather than an official BIR Z-reading.
  • Improved — The platform oversight view now shows each gym's BIR posture (Registered / Pre-registration / Not configured) at a glance.

v0.37.0 — 2026-06-03

  • New — The front desk can now check in a whole group at once: existing-pass holders are let in as you scan them, and anyone without a pass is added to one shared checkout where staff pick their pass, add-ons, keyfob, and any Senior/PWD discount.
  • New — A group pays on a single receipt that lists each person and their items by name; Senior and PWD discounts are itemised per cardholder, and a keyfob can be sold and paired to your account by scanning it at the desk.
  • Improved — A shared receipt now shows up for everyone on it: if a friend paid for your pass, the receipt appears in your Order History with your own lines highlighted.

v0.35.1 — 2026-06-01

  • Improved — Release notes now link straight to the thing that changed, so you can click through and try it — like the new family page right here: open My family.

v0.35.0 — 2026-06-01

  • New — When you add a child to your family (or re-sign their waiver), you now read a dedicated Guardian Consent & Attestation and confirm you're their guardian, that the details you gave are correct, and that you accept the gym's policies on their behalf — then sign at My family.
  • New — The Guardian Consent is a published page anyone can read at /guardian-waiver, and admins can edit its wording at /admin/legal/guardian-waiver; changing it re-prompts guardians to re-confirm, just like the main waiver.
  • Improved — The footer's Legal section now lays its (growing) list of policies out in two columns so it's easier to scan.

v0.34.0 — 2026-05-31

  • New — Parents can now manage their kids. The new My family page lets a guardian add the children in their care, sign each child's waiver, and keep track of them — under-13s are managed entirely by the parent, while teens 13+ can have their own login — open My family.
  • New — Guardians can pay and sign up on a child's behalf: buy a pass that lands on the child's account, register them for an event, or book them a solo coaching session — the parent pays in each case.
  • New — A guardian can give a 13+ child their own login at any time, graduate a dependent at 18 so they take over their own account, and transfer a child to another guardian (e.g. a co-parent) — the receiver accepts before anything moves.
  • Improved — Front-desk staff see at a glance whether a member is a minor in someone's care and whose waiver is on file, and admins can move or reverse a guardianship from the member page.

v0.32.0 — 2026-05-31

  • New — The changelog is now tailored to you: members and staff see the updates that affect them, and admins see the full release history.

v0.31.2 — 2026-05-31

  • Hotfix — Android installs are less likely to trip the "Unsafe app blocked" warning: the app now declares a stable identity so the system recognises it consistently across updates.

v0.31.1 — 2026-05-31

  • Improved — The About page photos now fade in from a soft blur like the rest of the site, instead of popping in after the page loads.
  • Improved — Switching to the About, Resoling, Branches, and FAQ pages now shows an instant page outline while the content loads, so navigation feels immediate instead of pausing on the old page.

v0.31.0 — 2026-05-31

  • Improved — Photos now fade in from a soft blur instead of popping in after the page loads — the home hero, the photo bands, the resoling logo, and branch thumbnails all settle smoothly, even on a slow connection.
  • Improved — Faster first load: the site fonts and marketing photos are much smaller (the main hero photo dropped from ~800 KB to ~160 KB), and the hero image is preloaded so it paints sooner.

v0.30.11 — 2026-05-31

  • Improved — Recorded the planned push-notifications and Face ID / passkey sign-in features in the internal roadmap so they're not lost (no user-facing change).

v0.30.10 — 2026-05-31

  • Improved — Extended the installable-app (PWA) test coverage to the install button's on-screen behavior (Android one-tap vs iPhone manual steps vs already-installed) and the home-screen launch routing, so these user-facing flows are locked against regressions.

v0.30.9 — 2026-05-31

  • Improved — The app-icon preview on the Get the App page renders smaller so it looks crisp instead of pixelated.

v0.30.8 — 2026-05-30

  • Improved — The Get the App page now previews the Good Climbs app icon in the iPhone section, so you can see exactly what lands on your home screen.

v0.30.7 — 2026-05-30

  • Improved — Hardened the app's background worker so a one-off storage hiccup can't stop it from updating an out-of-date installed app.
  • Improved — Added a comprehensive automated test suite for the installable-app (PWA) layer — covering bugs, efficiency, device compatibility, and edge cases — so this area stays reliable as the app grows. Documented the PWA rules in the contributor guide.

v0.30.6 — 2026-05-30

  • Fixed — Resolved the "NotFoundError" that made the installed app fail when navigating between pages. The launch splash screen was being removed from the page in a way the app's framework couldn't track; it's now hidden safely instead.
  • Improved — Added an automated PWA test suite that locks in every fix from this round (no-caching service worker, safe splash, resilient launch + language loading) so these installed-app bugs can't quietly come back.

v0.30.5 — 2026-05-30

  • Fixed — Pages no longer intermittently show "We hit a snag loading the page." The cause was the app's language-file loader, which ran on every page and could fail transiently with no fallback, crashing the whole page; it now falls back to English instead of erroring.
  • Improved — If a page ever does hit that screen, it now has a "Show details" toggle revealing the actual error, so problems can be diagnosed instead of guessed at.

v0.30.4 — 2026-05-30

  • Fixed — The installed app now actively replaces an out-of-date background worker on launch and reloads once, which clears the stale-cache state behind the "navigate → error → stuck loading" problem some installed apps hit.
  • Improved — When a page does error, the error screen now has a "Show details" toggle that reveals the actual error, and the error is reported to our monitoring — so the cause can be identified instead of guessed at.

v0.30.3 — 2026-05-30

  • Fixed — The installed app could open to an error screen or get stuck loading, because its launch page failed when the backend was briefly slow or unavailable. It now always opens to a working page even if the backend hiccups.
  • Improved — Added server-side diagnostics so backend hiccups during page load are now logged (visible in the hosting logs) instead of failing silently.

v0.30.2 — 2026-05-30

  • Fixed — The installed app no longer shows broken links / pages that won't open after an update. The app now always loads fresh from the network (it behaves exactly like the website), and the fix automatically clears the stale version off devices that already had it.
  • Improved — The footer's "Get the App" button is hidden when you're already using the installed app.

v0.30.1 — 2026-05-30

  • Fixed — Pages no longer occasionally show a "this page couldn't load" error — the home page, the sign-in page, and other links while signed out. A brief connection hiccup now degrades gracefully instead of failing the whole page, and any error shows a branded screen with a "Try again" button.
  • Fixed — In the installed app, a dropped mobile-network request mid-navigation no longer leaves you on a hard error screen — it falls back cleanly to the offline page.
  • Improved — "Get the App" is now a clear button under the Good Climbs logo in the footer.

v0.30.0 — 2026-05-30

  • New — A "Get the App" page (linked in the footer) walks you through installing Good Climbs: a one-tap Install button on Android, and clear, Safari-highlighted Add-to-Home-Screen steps on iPhone with a "not working?" troubleshooting guide.
  • Improved — The installed app now opens straight to your dashboard when you tap the home-screen icon (or to sign-in if you're logged out), instead of whatever page you added it from.
  • Improved — The installed app no longer flashes raw, unstyled page content on a slow connection — it shows a branded Good Climbs splash until it's ready.
  • Fixed — The offline screen now shows the Good Climbs logo properly (it no longer relies on a network image that failed while offline).

v0.29.0 — 2026-05-30

  • New — Good Climbs is now installable as an app. On Android/Chrome you'll get an "Install" prompt; on iPhone, Safari's Share → "Add to Home Screen" shows the Good Climbs logo and opens full-screen like a real app.

v0.28.2 — 2026-05-30

  • Improved — Release notes now lead with a category tag (New, Improved, Fixed, Hotfix, Security) so each entry tells you at a glance what kind of change shipped.

v0.28.1 — 2026-05-30

Fixed the branch-page "Find us" map showing as a blank white box — the site's security policy was blocking the Google Maps frame, so it's now allowed to load.

v0.28.0 — 2026-05-30

Admin-gifted multi-session passes that overlap with an existing covering pass now land in a pending activation state — the member taps Activate from `/my/passes` (or staff at check-in) when they're ready, and the duration clock only starts then. `/my/passes` also gains a "Next visit will use: X" line so members can see which pass the next check-in will burn, and staff get an inline Switch pass button on the check-in welcome panel for the rare "use my friend's gift, save my monthly" override.

v0.27.1 — 2026-05-30

Readability fix on the public resoling page: the "X of Y slots left" counts and the note under the weekly-slots cards were dark-on-dark — now they render in readable light/green on the dark section.

v0.27.0 — 2026-05-30

Each branch page now shows a Good Climb of the Week progress bar counting down to the next reset, and the old latest-routes list was removed. The "Find us" card gained a pinned Google map with one-tap "open in" buttons for Google Maps, Waze, and Apple Maps.

v0.26.0 — 2026-05-30

The public resoling page is now an informative guide instead of a price picker: the shoe diagram and "choose your repair" tiers are gone, replaced by the resolers’ own pricing guide (pulled live from their rate scheme) and a step-by-step of how the quote-based flow actually works. Plus the v0.25.4 navbar/footer/font polish.

v0.25.4 — 2026-05-30

Navbar and footer polish: the "Good Climbs" wordmark no longer flashes a fallback font on load (the brand fonts are now preloaded) and renders identically in the navbar and footer. On mobile the top bar stays a solid bar while the menu is open, and the footer category headings are larger with tighter, left-aligned links.

v0.25.3 — 2026-05-30

Fixed the resole submit form so removing a photo never leaves a stray empty slot (you only ever see one blank "add a photo" slot at a time, up to three). Also gave the submit page a dark-theme UX pass — readable text and dark input fields instead of hard-to-read greens and white boxes.

v0.25.2 — 2026-05-30

Third-pass fix for the `/changelog` page being empty in production — this one is final. Next.js 16's `output: 'standalone'` deploy tracer just refused to bundle `CHANGELOG.md` on Railway no matter how the `outputFileTracingIncludes` glob was shaped (diagnostic on prod showed `cwd = /app`, file absent everywhere). Solved by inlining the markdown body into a generated TypeScript module that the page imports — no runtime file-system access at all. A `prebuild` step regenerates the module from `CHANGELOG.md` on every deploy.

v0.25.1 — 2026-05-30

Second-pass fix for the `/changelog` page rendering empty in production. The page now walks up the cwd tree looking for the file, the `outputFileTracingIncludes` glob is wider to catch app-router build layouts, and the empty-state card shows diagnostic info about which paths the runtime tried so we can chase any host-specific layout differences.

v0.25.0 — 2026-05-29

Resole intake got a cleaner submit form (grouped sections, up to 3 photos with a counter) and the waiver is now a tappable link to a dedicated page. The public resoling page shows how many deposit-box slots are left this week at each branch, and resolers can mark a whole batch delivered — texting every waiting member at once. Also: first attempt at fixing the `/changelog` page so it actually renders in production (the standalone build wasn't bundling `CHANGELOG.md` — pinned via `next.config.js` `outputFileTracingIncludes`).

v0.24.0 — 2026-05-29

Tappable version in the footer now opens a public `/changelog` page listing the release history in plain English. AGENTS.md gates every future version bump on a matching `CHANGELOG.md` entry, with a static test that fails the build if the entry is missing.

v0.23.0 — 2026-05-29

Step-up re-authentication for sensitive admin actions. Before running one of nine high-risk admin operations (member delete, backup restore, etc.), an admin re-verifies with a fresh one-time code via authenticator app, email, or PH SMS — even if already signed in.

v0.22.0 — 2026-05-29

Quote-based resoling workflow overhaul. Members self-submit a resole request with photos and a signed waiver, resolers quote from an editable rate scheme, the member approves before work starts, and SMS reminders fire on the return-pickup window. Standalone receipt — no Sale, no OR#, no Z-reading.

v0.21.0 — 2026-05-29

Live per-branch capacity tracker. Front-desk and admin surfaces now see a real-time headcount per branch alongside the soft cap, so a busy session is visible at a glance before a member even walks in.

v0.20.0 — 2026-05-29

Coaching accountability + admin gift passes. Coaches must be admin- accredited to appear in the public booking picker, level badges render on the coach card, no-shows are tracked in a ledger, and admins can gift passes directly to a member or generate a redeemable `/redeem/<token>` link. New `/coaching-policy` and `/membership-refund-policy` legal pages.

v0.19.0 — 2026-05-29

Per-branch landing pages. Every branch gets a dedicated `/branches/<slug>` page with a hero photo, amenities chips, hours, contact card, and a preview of the latest routes that deep-links into the wall map. The wall map moves from `/routes/<slug>` to `/branches/<slug>/wall` with a 308 redirect; old bookmarks keep working.

v0.18.x — 2026-05-28

Audit follow-ups + a one-tap "Seed default FAQs" button on the empty `/admin/faqs` state so the owner can bootstrap the public FAQs from a phone. Google OAuth setup walkthrough added under the runbooks, and the auth layer surfaces a half-configured warning at boot.

v0.17.x — 2026-05-27

Per-zone backgrounds: public + auth + waiver + kiosk zones keep the animated topo canvas, while signed-in zones (member / staff / admin / coach) get flat backgrounds tuned for long-session readability. The topo canvas lifts to the root layout so cross-zone navigation no longer flashes. Plus a prod-safe `npm run db:seed:faqs` script.

v0.16.0 — 2026-05-26

Admin pass analytics + custom pass-type catalog. Admins can define their own pass types beyond the standard four SKUs, and a new `/admin/analytics/passes` page shows a type × status sales matrix and a utilization leaderboard for every unlimited pass with a ≥30-day window.

v0.15.x — 2026-05-25

Damascus pattern tuning across the annual-pass surfaces — finer grid, solid black core with a chalk lit edge, pure-CSS animation that drifts the apparent light direction. Footer also gains a balanced 4-column mobile layout that survives down to phone widths.

v0.14.x — 2026-05-24

Annual pass redesigned to pure charcoal with a drifting topographic contour pattern — a low-saturation premium-matte signal that reads distinct from the other tiers without competing with the on-card text. Multiple iterations land the contour style.

v0.13.x — 2026-05-23

Multi-session passes (multipass / monthly / annual) now activate on first check-in rather than at purchase — the duration clock starts on the first visit, with a 1-year shelf life until then. Pearlescent mother-of-pearl finish on every annual-pass surface and a holographic gift-card foil round out the visual layer.

Pre-v0.13

Earlier releases covered the foundational POS, member portal, waiver + check-in workstation, waitlist, marketing campaigns, BIR receipt + Z- reading compliance, and the routes / wall CMS. See `STATE.md` for the full prose history.