Current · v1.24.0
The changelog.
- v1.24.0
- Tidied up the ledger filters: search and sort stay in a slim top bar, and the status / country / range / grade / ski controls now tuck behind a "Filters" button so the list starts higher up the page. A badge shows how many filters are active, and "Reset all" clears them in one tap.
- v1.23.0
- Adding a peak to your plan now files it under the current season automatically, so it shows up grouped on the plan page instead of landing in "Unscheduled".
- The plan page lets you change which season a peak is planned for right there — pick a year from the dropdown on each row and it moves instantly, no need to open the peak page.
- v1.22.0
- Renamed "Bundles" to "Tours" everywhere — the nav, the listing page, and the "Featured in" sections on peak and hut pages. The multi-peak itineraries themselves are unchanged. Old /bundles links redirect to /tours, so any bookmarks still work.
- v1.21.0
- The huts page now has a search box — filter the full list by hut name, area, operator (SAC/CAI/CAF), or season, with a live match count as you type.
- v1.20.6
- The "Quarter of the way" achievement now unlocks at 21 peaks — an actual quarter of the 82 — instead of 25.
- v1.20.5
- Cleaned up the navigation menu — the dividing lines between items are gone for a smoother, less cluttered look.
- v1.20.4
- Peaks you haven't climbed or planned yet now show as blue on the map instead of gray, so they stand out against the terrain alongside the green (climbed) and amber (planned) markers.
- v1.20.3
- Passport now reads well on phones. The open-state spread is now capped at a sensible portrait reading width (and centred), each stacked page sizes to its own content instead of fighting other pages for an equal share of an undefined column height, page-controls and Close button got bigger tap targets, and the stage takes a small side padding so the leaves don't run flush with the screen edge.
- v1.20.2
- Fixed sign-up confirmation emails that linked to localhost instead of the live site. The confirmation link now points back to the same address you signed up on, so clicking it actually confirms your account.
- v1.20.1
- Passport pages were unreadable in 1.20: the mountain watermark ballooned to fill the leaf and pushed all the print (photo, name, stats, stamps) out the bottom of the page. The watermark SVGs live inside their own component but the CSS that positioned them was defined in <Leaf>'s <style jsx> block — styled-jsx scopes CSS by JSX block, not by React tree, so the position/size rules never reached the SVGs and they rendered inline at their default size. Position + size moved inline on the SVG elements so they actually apply, watermark is now properly behind the print, and the page content (Holder, Tally, Lands, Stamps) is visible again.
- v1.20.0
- Passport pages now fit. The 1.11 watermark was a bottom-anchored band of ridges that climbed almost halfway up the page and chewed into the print area; the Tally tried to pack the summit count, total ascent, highest, every border, and every massif into one page and got clipped; and the stamps were big enough that only four fit, with the rest scrolling. Redesigned: the mountains are now a faint full-page passport watermark (engraved concentric rings + a triple-summit motif at ~6% opacity) sitting fully behind the print. The Tally keeps just the count, total ascent, and highest. Borders and massifs moved to their own new "Lands" page. Stamps are now smaller, in a 3×3 grid (nine per page instead of four), continuing onto further pages as needed. Internal page scrolling is gone — extra content gets a new spread.
- v1.19.0
- Cleaner masthead on the marketing page — the The peaks / Method / Journal links have been removed so the top of the page leads with the logo and sign-in.
- v1.18.1
- Ludwigshöhe now shows a real photo of the peak (with Corno Nero and Parrotspitze on the Monte Rosa ridge) instead of a stray city-district map SVG.
- v1.18.0
- Top nav no longer carries the X/82 progress chip — your live count already lives big on the dashboard, and the chip was crowding the four primary destinations.
- v1.17.0
- Dashboard headline now opens on the same sweeping Mont Blanc photo that fronts the marketing homepage. The Volume / count / progress bar sit on the editorial backdrop, with the country breakdown, by-massif list, and the full ledger continuing below on paper as before.
- v1.16.0
- New "Skiable" filter on The 82 (`/peaks?ski=yes`): 34 peaks are flagged as established ski-mountaineering descents (3 Monts, Margherita-hut circuit, Saas/Mischabel classics, Bernese ski-Haute-Route peaks, Gran Paradiso, Barre des Écrins, etc.).
- New "Club 4000 eligible" achievement at 30/82 — the official membership threshold of CAI Torino's Club 4000.
- v1.15.6
- Profile setup works again: picking a username no longer fails with "Could not check availability." Two row-level security policies had started cross-querying each other's tables, which Postgres aborts as infinite recursion; the lookups now go through helper functions that break the cycle.
- v1.15.5
- Passport open-spread regressions from 1.11: the cover's back face was still painting on top of the left page (the z-index fix didn't beat preserve-3d's depth sort), the right page could grow taller than the left and add a second scrollbar, and the watermark mountains stretched to the top of the page. Fixed by pushing the cover physically behind the spread on the Z axis (and hiding its back face once the flip lands), switching the spread to flex so both leaves stretch to a single shared height, anchoring the watermark ridges to the bottom of the page at a fixed aspect, and clamping the shell so nothing inside can grow it past the 10/7 viewport budget.
- v1.15.4
- Photo credit strips now have equal padding above and below the text. The previous version lifted the strip away from the photo edge but kept the old zero-bottom-padding, so the text sat closer to the bottom of the paper strip than to the top.
- v1.15.3
- Photo credit strips now float ~10px above the bottom of the photo instead of sitting flush. Several attempts to hide a stubborn dark line under the strip at the bottom edge never quite stuck; lifting the strip away from the edge sidesteps the issue entirely.
- v1.15.2
- Editor notes on route cards are now labelled "Editor's note" (matching the peak and hut pages) and read as proper sentences.
- v1.15.1
- Cleaner account menu: removed the Changelog link. The version number in the footer is already a link to the changelog, so the menu entry was redundant.
- v1.15.0
- Climbers directory at /climbers — find other people working the 82. Reachable from the top nav once you're signed in. Search by name or @username, filter by home country, filter by peak count (1–10, 11–40, 41–81, 82 finishers). Only climbers who've opted in to a public profile appear. Each result links to their public profile page.
- v1.14.0
- Public profile pages. If you've opted in (Profile → Make my profile public), your profile is now live at eightytwo.app/climbers/<username>. The page shows your photo, name, home country, peak count, ranges completed, your first and most recent ascents, and the full year-grouped list of climbs — peak, date, route, and notes. Partners, conditions, difficulty and the hut you stayed at are kept private. The member directory (so other climbers can find you) follows next.
- v1.13.0
- You can now pick a username on your profile (lowercase letters, numbers, underscores; 3–30 characters) and opt in to a public profile. Public profiles aren't yet visible to anyone else — the public profile page and member directory arrive in the next two updates. This is the groundwork.
- v1.12.0
- Every peak and almost every hut now has a photo on its detail page. Backfilled 18 peaks (mostly the Mont Blanc and Monte Rosa sub-summits that didn't have their own Wikipedia articles) and 65 huts (the SAC / CAI / CAF refuges and bivouacs whose lead photo lives on Wikimedia Commons rather than the language Wikipedia). A handful of the most obscure bivouacs (Eccles, Craveri, Resegotti, Längfluehhütte) still have no Wikimedia photo — they remain photo-less.
- v1.11.0
- Passport stamps actually show up now. There was a stacking bug where the cover's back face was painting over the left page after the flip, so the Holder page and any stamps pages on the left were hidden — they're properly visible again.
- Re-laid out the passport's footer slot. The “Click to open” hint now lives below the book in the same place as the page-flip controls when the book is open, instead of floating inside the cover. You can tap either the hint or the passport itself to open it.
- Engraved a subtle mountain ridgeline and a compass rosette into every passport page as a watermark, the way real passports use security art under the print.
- Redrew the passport crest. The old foil emblem was a bit thin — the new one has an engraved double ring with a circle of tiny stars, crossed ice axes behind a triple-summit massif, and a “4000 M · UIAA” banner along the bottom.
- v1.10.4
- Editor notes on peak and hut pages now read more cleanly: the "UNVERIFIED:" prefix is gone from the body text, and the callout is labelled "Editor's note" in blue.
- v1.10.3
- Top nav trimmed: the display name no longer sits next to the avatar, and your X/82 progress chip now lives at the end of the primary nav (right after Map) instead of in the right-hand cluster.
- v1.10.2
- Passport no longer hijacks the page scroll. The book still loads centred in the viewport, but scrolling up to reach the top nav (or down past the book) now stays put instead of snapping back to the cover.
- v1.10.1
- Tidied up the navigation. The avatar menu used to be a junk drawer — Huts and Plan and Stats all lived behind your face, alongside Profile and Sign out. Now there are two clearly separated menus next to the avatar: a Menu button holds climbing-related destinations grouped into Plan (Plan, Huts, Bundles, Resources) and Progress (Stats, Achievements, Passport), and the avatar holds only account things (Profile, Changelog, Sign out). The four daily-driver pages — Dashboard, The 82, Journal, Map — still sit inline in the top bar on desktop, and collapse into the Menu dropdown on mobile.
- v1.10.0
- Passport now fits on one page and sits locked in the viewport. The big "My Alps Passport." masthead is gone — the cover itself is the page's title now. The book is sized against the viewport (10/7 spread, scaled so it never exceeds the available height) and the route uses scroll-snap so the passport stays centred unless you scroll past it. Inside the book, the Holder and Tally pages were re-typeset tighter: smaller hero number, three-quarter spacing, the massifs list is now a two-column grid. Also fixes a stacking bug where the cover's back face was sitting on top of the Holder page after the flip — the Holder is properly visible now.
- v1.9.1
- The map on each peak page no longer hijacks page scroll. Scrolling past the map now just keeps scrolling; to pan the map use two fingers on touch, and to zoom on desktop hold ⌘/Ctrl while scrolling. The standalone Map page is unchanged.
- v1.9.0
- Removed the standalone Log page. It duplicated the picking affordance you already have on The 82 and the Journal — every peak page has had a prominent Log ascent button for a while now. The top-nav now reads Dashboard · The 82 · Journal · Map; to log a climb, open the peak from The 82 (or the map) and hit Log ascent there.
- v1.8.3
- Photo credit strips now sit flush with the bottom edge of the photo. The earlier tightening pass left a few pixels of paper visible below the caption text on every hero and carousel slide; that gap is gone.
- v1.8.2
- Passport: fixed the double-scrollbar on the open spread. The right page (The Tally) used to clip to a fixed 5/7 aspect and grew its own internal scrollbar to fit the content, which collided with the page scroll. Each leaf now sizes to its content, and the shell takes the height of whichever page in the spread is taller — only the page scrolls.
- v1.8.1
- Removed the duplicate Resources / Changelog / Sign in link row from the landing-page footer; those links already live in the top navigation.
- v1.8.0
- Passport now opens like a book. The /passport page used to stack the cover and each interior page vertically — you scrolled past them like a series of cards. It now presents as a single object: a closed cover sits centred on the page, you click it to open, and the cover flips left on a 3D hinge to reveal a two-page spread (Holder + Tally on the first spread, Summit Stamps on the following spreads). A spine runs down the centre, each side has its own page chrome and number, and Prev / Next controls (or ← / → keys, or Esc to close) let you page through the book.
- v1.7.0
- Photo carousels on peak pages. When a peak has more than one photo on file, the hero block becomes a swipeable carousel with prev/next chevrons, a slide counter, dot indicators and arrow-key navigation — each slide carries its own photographer credit and licence on the paper strip. Single-photo peaks render exactly as before. Galleries are populated by a new Wikipedia fetcher; trigger the **Fetch peak & hut photos** GitHub Action to pull up to eight extra photos per peak from each mountain's Wikipedia article.
- v1.6.0
- Add to plan now lives in the top-right corner of each peak page, directly above Log ascent, so you can shortlist a peak without scrolling past the routes and huts to find the button.
- v1.5.2
- Refreshed the /log page copy to match the current two-step flow: the eyebrow now reads "Step 1 of 2" (it had been stuck on "Step 1 of 3" from when the form lived inline on the peak page), and the helper paragraph explains that picking a peak takes you to the climb-details form and that photos can be added after the ascent is saved.
- v1.5.1
- Fixed the Poster Wall on the landing page, where every peak card was rendering as a dark blue placeholder instead of its photograph. The 480-px thumbnail URLs the cards were requesting now go through the same Special:FilePath redirect the hero already uses, which falls through to the original file when the requested size would otherwise 404.
- v1.5.0
- Profile photos can now be cropped before saving. After picking an image, a circular preview lets you drag to reposition and use a zoom slider to scale up, then hit Use photo to upload. The cropped 512 px square is what the top-nav avatar and the passport holder spread show — no more accidentally off-centre portraits when uploading a landscape photo.
- v1.4.0
- Full-bleed landing hero. The Mont Blanc photograph now extends behind the top nav as well as the headline, so the entire above-the-fold reads as a single editorial poster instead of a dark masthead pinned above a photo. Added a stronger top-down vignette so the logo and nav links stay legible against the sky, and a paper-strip photo credit pinned to the bottom-left edge.
- v1.3.4
- Fixed the masthead on the log-ascent and edit-ascent pages: the heading is now the peak's name (e.g. "Mont Blanc de Courmayeur") instead of the generic "Log your ascent." / "Edit ascent." with only the massif shown. Previously, peaks whose massif shared a name with another peak (Mont Blanc, Monte Rosa) looked like the form was for the wrong mountain.
- v1.3.3
- Moved the "Log ascent" button on each peak page to sit under the facts card on the right, so the masthead reads as a balanced two-column block instead of an off-centre stack on the left.
- v1.3.2
- Fixed the landing-page hero — the Mont Blanc backdrop was 404-ing because the requested 2400 px thumbnail exceeded the original file's pixel size, leaving the hero flat black. The hero now uses Wikimedia's Special:FilePath form at 1600 px wide, which silently degrades to the original size when the file is smaller instead of failing.
- v1.3.1
- Photo credit strip on peak and hut pages now sits flush against the bottom of the photo. Previously the small uppercase text had extra line-box space pushing it up off the edge.
- v1.3.0
- Profile photos. Upload a JPEG / PNG / WebP from the Profile page and your photo replaces the initials disc in the top-nav avatar and the holder portrait on the Alps Passport. Replace or remove it any time.
- v1.2.1
- The landing-page footer now shows the current app version next to the date, linking to /changelog — matching the version stamp the signed-in pages already carry. Easier to tell at a glance which build is live.
- v1.2.0
- Landing-page Poster Wall now uses real peak photography. Each of the 82 cards backs a Wikimedia Commons photo of its summit (served at 480 px wide via Wikimedia's thumb form so the page stays light), falling back to the existing slate gradient for peaks that don't have a photo on file.
- Hero backdrop on the landing is now a photograph of Mont Blanc — the highest peak in the catalogue — instead of the placeholder radial gradient.
- Peak names on the Poster Wall no longer overflow their cards. Title type now scales with the viewport and clamps to four lines, with the elevation row truncating instead of wrapping. Long names like "Signalkuppe / Punta Gnifetti" and "Mont Blanc de Courmayeur" read cleanly inside their tile.
- v1.1.0
- Each peak page now has a prominent "Log ascent" button near the title (or "Log another ascent" if you've already climbed it). The ascent form has moved to its own page, so the peak page itself is a calmer read about the mountain.
- v1.0.0
- Eightytwo 1.0. The full redesign — cream paper, Helvetica, deep blue accent, editorial ledger pages, dark Poster Wall landing, mobile reflow — is now the everyday face of the app. Tailwind is locked to the design tokens so the visual language can only drift on purpose.
- v0.25.3
- Landing-page eyebrow now reads "since 1989" instead of 2019.
- v0.25.2
- Tidied the Edit / Delete / Share action row on each ascent history entry — the three actions now sit on a single right-aligned line instead of breaking awkwardly across two rows.
- v0.25.1
- The season label in the nav now tracks the current year instead of being pinned to 2025.
- v0.25.0
- Photo hero on every peak and hut detail page. When a Wikimedia Commons photo is on file, it renders with an editorial top-and-bottom vignette and a paper-strip credit caption in the lower left. When no photo is on file yet, the page falls back to a deterministic warm-to-cool gradient seeded from the peak / hut slug — never a blank space, never a generic mountain SVG.
- Hut detail pages now support the same image_url + credit + licence + source URL fields as peaks, with matching attribution on display. Run scripts/fetch-peak-images.mjs and scripts/fetch-hut-images.mjs locally with web access (the build sandbox can't reach Wikipedia) to populate every record with a real photo.
- v0.24.0
- The keepsake Alps Passport (/passport) has been recoloured to match the rest of the app: ink cover, bone foil, blue accents in place of the navy / gold / amber / indigo / rose / teal mix. The passport-book shape, stamps and mountain silhouette stay.
- Internal: Tailwind theme is locked to the design tokens, so the cream-paper / ink / blue palette is now the only one in scope. Error and global-error pages match the rest of the app. Removed the unused MountainProgress and MiniMap components.
- v0.23.0
- Restyled the ascent forms (create + edit) and the photo uploader to match the rest of the app: hairline-bordered inputs, eyebrow labels, no rounded corners, and the blue primary CTA for Save. Form errors switch from the red banner to a blue callout.
- v0.22.0
- Mobile pass: the whole app now reflows for phone and tablet widths. Top nav collapses to the avatar menu so the 5 main destinations live one tap away; dashboards and detail pages stack vertically; dense ledgers (peaks, journal, huts, log picker) shed their secondary columns and keep just the essentials; hero numerals and oversized display titles scale down with the viewport.
- Page gutters tighten to 20px below tablet width so content has more room to breathe on a phone.
- v0.21.0
- New landing page at the root URL: a dark Poster Wall in oversized Helvetica with all 82 peaks tiled below the hero. Replaces the stop-gap catalogue stats view.
- Hero photography is a placeholder gradient until proper alpine imagery is sourced.
- v0.20.0
- Restyled the remaining utility pages — /profile, /resources, /changelog, /shared/[token], /map, /peaks/[slug]/edit-ascent — to match the rest of the redesigned app. No behaviour changes.
- The map page no longer uses green status text; the masthead summarises your progress in the standard eyebrow tone instead.
- v0.19.0
- Restyled the hut directory (/huts) and each hut detail page (/huts/[slug]): editorial mastheads, a facts card on the right, blue callouts for bivouac and emergency-shelter warnings (previously yellow / red), and dense ledger rows for routes / bundles / nearby peaks.
- Restyled the bundles list (/bundles) and each bundle detail page (/bundles/[slug]) with the same masthead + card + ledger-row pattern.
- Restyled the plan (/plan) so each target season is its own dense list of planned peaks.
- v0.18.0
- Restyled /stats: editorial masthead, a four-tile stat strip up top, and side-by-side By range / By country / By grade panels using the new card and progress-bar primitives. Year-by-year now links to the new /journal route.
- Restyled /achievements: each badge is a card with a hollow or filled blue dot (unlocked badges are blue-tinted, the rest sit on cream); the top eyebrow shows a live unlocked / total count.
- Passport page (/passport) keeps its keepsake-book visual but now opens with an editorial masthead so it reads as part of the rest of the app.
- v0.17.0
- /log is now the place to start a new ascent — pick the peak you climbed and you'll land on its page with the climb-details form ready to fill in.
- Your reverse-chronological history of ascents has moved to /journal (it's the new 'Journal' link in the nav). The /log and /journal pages share the same search, year filter, and inline delete that the old /log had.
- Existing bookmarks to /log?year=… or /log?q=… are 301-redirected to /journal so nothing breaks.
- v0.16.0
- Redesigned each peak page (/peaks/:slug) in the editorial language: oversized peak name, a 'Summited DD·MM·YYYY' blue badge when you've climbed it, a facts card on the top right (coordinates · UIAA rank · countries · grade · first ascent · season), and per-route panels with cleaner section / hut breakdowns.
- Each ascent now reads like a journal entry — date set as a big tabular number, route, partners, conditions, and notes flowing as prose underneath.
- v0.15.0
- Redesigned the peaks catalogue (/peaks) in the editorial language: oversized 'The ledger.' title, a status / country / range / grade filter row with chip selectors and your live counts, and dense rows with status dots in place of the green check / calendar icons. URL filters remain bookmarkable as before.
- v0.14.0
- New editorial dashboard at /dashboard: an oversized progress number, a one-sentence summary of the season, a progress bar, breakdowns by country and by massif, and a full ranked ledger of all 82 peaks on the right rail.
- Signing in now lands you on /dashboard. The home page is becoming the logged-out landing in a future release.
- v0.13.3
- Internal: CTA buttons and the marketing peak card. Design-system foundations are complete — next releases start porting actual pages.
- v0.13.2
- Internal: card, filter-chip, and callout primitives. Pages will start picking these up next.
- v0.13.1
- Internal: ledger row, stat-tile strip, and progress-bar primitives. No visible change yet — these get applied to pages over the next few releases.
- v0.13.0
- New top nav: five primary destinations (Dashboard · The 82 · Journal · Map · Log), with everything else (Stats, Plan, Passport, Achievements, Huts, Bundles, Resources, Profile, Sign out) tucked into a menu behind your initials. Active section is marked with a blue underline.
- v0.12.0
- New look: warm cream paper, Helvetica typography, a single deep-blue accent. This is the visual foundation — per-page polish is rolling in over the next few releases.
- v0.11.1
- If saving an ascent fails, you now see the actual reason inline on the form (e.g. an invalid date) instead of being kicked to a generic error screen — and your form input is preserved so you can fix it and retry.
- The date you climbed is validated up front, so a malformed value no longer turns into an opaque database error.
- v0.11.0
- Country filter added to the peaks catalogue — filter by Switzerland, France, or Italy. Composes with all existing filters and is URL-persistent.
- v0.10.0
- The “Hut used” dropdown when logging or editing an ascent now only lists huts that actually serve the peak, instead of the whole catalogue.
- Added the Refuge de Tête Rousse (Mont Blanc, Goûter route) to the hut catalogue.
- v0.9.1
- Saving an ascent now redirects back to the peak page on success, so a browser refresh no longer risks re-submitting the form.
- If the app does hit an unexpected error, you'll see a friendly retry screen with a reference code instead of a blank page.
- v0.9.0
- Peak detail pages now have ← / → navigation links to step through all 82 peaks in UIAA rank order (highest first) without returning to the catalogue list.
- v0.8.0
- Each peak now shows its UIAA elevation rank (#1 for Mont Blanc through #82 for the lowest peak). The rank appears on every row of the peaks list and in the facts panel on each peak detail page.
- v0.7.0
- Grade filter links from the Stats page now correctly open the peaks list filtered to that grade. Previously clicking 'AD: 3 / 24' showed all 82 peaks unfiltered.
- All four filter controls (range, status, grade, sort) now update the URL, so filtered peaks views are bookmarkable and shareable.
- Stats page now shows your hardest grade climbed beside the 'By grade' section, linking to the filtered peaks list for that difficulty.
- v0.6.0
- Home page now highlights ranges where you're 1–2 peaks away from completing them, showing the specific missing peaks as links so you can plan the final push.
- v0.5.0
- Stats page now shows a 'By grade' breakdown — see how many F, PD, AD, D, and TD peaks you've climbed vs. the total available. Each grade links to the filtered peaks list.
- Grade filter on the peaks catalogue: filter by F / PD / AD / D / TD difficulty.
- Grade data complete: all 82 UIAA peaks now have a technical grade.
- v0.4.0
- Map auto-zooms to fit the visible peaks when you change the range or status filter.
- Optional huts overlay on the map: a “Show huts” toggle plots the curated Alpine hut catalogue alongside the peaks.
- Fixed a case where the map auto-zoom silently did nothing on slow connections (animated camera moves before the map style had loaded were dropped).
- Version number in the footer, linking to these release notes.
- v0.3.0
- Baseline before the changelog was introduced. Already shipping at this point: peak catalogue with elevation/name sort and range/status/name filters; per-peak detail pages with normal route, typical season, and nearby huts; map of all 82 peaks (range + status filters, completion colouring); hut directory with detail pages; ascent log with photos, route, partners, duration, hut attachment, visibility selector, and inline edit/delete; planned-peak toggle with notes and a /plan page grouped by season; home dashboard with per-range progress and recent ascents; /stats with year-by-year breakdown and hut-stay totals; /log timeline with year filter and search; unlisted share links for individual ascents; email/password auth; metric/imperial units preference; installable PWA with PNG icons.