Changelog

WHAT WE SHIP.

What we shipped, in reverse chronological order.

Changelog

What we shipped, in reverse chronological order.

If you have a question about a specific change, email us.


July 18, 2026: Coach booking, the social feed, and a smarter track record

Everything that shipped on the web between May and July, in one entry. (Something bigger is coming; watch this space.)

Added The social feed. Posts from drivers, coaches and organizers with reactions, comments and follows, plus a discovery tab to find people from your paddock. Same reactions everywhere: ❤️ 👍 🔥 😂 🏁 🏆.

Added Coach booking on event pages. When a coach opens slots at a trackday, you can book instruction right from the event detail.

Added Coach profiles got shareable permalinks and vanity URLs, and every public page now renders a proper share card in WhatsApp, iMessage and social apps.

Improved Your track record now splits upcoming vs driven. Events you are registered for live under Upcoming; after the day we ask "Were you there?" so your driven history stays honest.

Added Garage v2. Cars with full specs and photos, plus usage stats showing which events and laps each car has driven.

Added Lap timer import on the web. Upload the file from your lap timer (RaceChrono, RaceBox, Harry's LapTimer, VBO, GPX), get your sessions, personal bests and racing lines on your profile.

Improved The circuits map now runs on a real map engine with the full European circuit database, and driver profiles moved to their permanent home at lapvio.com/drivers/[username].

Improved Global search across events, circuits, coaches and drivers from the dashboard.

Added Account deletion self-service in account settings, and a Direct Line to send us feedback from your profile page.


April 28, 2026: Catalog redesign, claim flow polish, platform admin overhaul

A polish pass across the public catalog and a structural rebuild of the platform-admin organisations tool.

Improved Trackday catalog cards now lead with the track name and use one shared three-line layout (org row · track name · country/format/vehicles with icons). Whole cards and list rows are now clickable, with hover lift and a unified ghost CTA.

Added Event cards can now display a cover photo when one is set on the event — full-bleed image with a dark gradient at the bottom so the date badge stays legible. Falls back to the existing track outline when no photo is available.

Improved Filter bar redesigned as two rows: country flags + view toggle on top, then a darker band with track lookup, format and vehicles. Filter state now lives entirely in the URL (track, format, vehicles).

Improved Org profile event rows match the catalog layout, but keep the org-color date column and a ghost "Detail →" CTA tinted in the org's brand color. The PRO pill moves off individual rows and onto the sidebar Lapvio Pro card.

Improved The Lookup circuit placeholder, format icons, and section labels are now legible in the dashboard's light mode.

Improved Org claim flow CTAs now render in the org's brand color (with an automatic contrast-safe text color) instead of generic Lapvio orange. The email-step copy was rewritten to honestly describe what the OTP does — no more "verify ownership" wording.

Added Platform admin → Organisations rebuilt around tier-awareness. The list view shows tier (Free/Pro), claim state, country, listed/hidden, and event count at a glance, with search + filter pills. The edit dialog is split into four tabs: Identity & lifecycle (name, slug, country, the is_active / is_publicly_listed / is_verified / is_pro toggles) · Claim & access (status, owner email, copy claim link, force-unclaim) · Pro integrations (DocuSeal/WooCommerce, gated behind is_pro) · Profile snapshot (read-only branding for moderation).

Added verified_at timestamp on organisations, set automatically when verified status flips. Surfaces in the platform admin profile snapshot so we always know when an org was last verified.

Fixed Platform admin owner-email lookup now resolves correctly for org owners who have never used the driver side (previously some claimed orgs showed no owner email).

Improved Free-org event create/edit form rebuilt around structured fields. Track selection now uses the same combobox the public catalog uses (search, flag, outline). Required Format select with the cleaned-up set: Open pitlane, Sessions / groups, Race test, Competition, Driving course, Mixed — six values that describe how the day runs. Audience filtering (who can attend) is now its own field, Driver groups (Beginner / Intermediate / Advanced / Race-Pro / All levels), so format and audience don't get mixed up. Optional fields added: vehicles allowed, brand restriction (now behind a "Restricted to specific brands?" checkbox — when checked, type "Porsche" or "BMW M" and press Enter to add), start and end time, base price + currency. The "Show on Lapvio catalog" checkbox was removed — events publish on create by default.

Added Catalog filter bar gains the new format pills (Race test, Competition, Driving course) — drivers can filter to just these event types from /trackdays.

Added Public event detail page surfaces brand restriction in the eligibility section when set ("Brand restriction: Porsche").

Improved Each format option now shows a short description next to the dropdown to make the choice unambiguous (e.g. "Continuous driving all day, no sessions or groups" for Open pitlane). Same description card appears for Pro admin too. Driver-group field renamed from "Driver groups" to "Required driver levels" to make the audience-vs-format distinction obvious. The legacy novice_only and race_only enum values are no longer offered when creating new events (kept in DB for backward compat with existing data); Mixed was relabelled to "Mixed / Other" so it can absorb anything that doesn't fit the other categories.

Added Free-org admins can now upload a cover photo per event, with the same surface and constraints (16:6 hero, JPEG/PNG/WebP up to 5 MB) as Pro admin — feeds the new photo-mode catalog cards.

Improved Org Lapvio Pro claim flow primary CTA tinted in the org's brand color via a new --brand-fg CSS variable that picks white or near-black based on WCAG contrast — so a white-logoed org gets a dark CTA and a dark-logoed org gets a white one, automatically.

Fixed Bulk org/event seeding (/admin/platform/seed-orgs) had been silently swallowing every event INSERT because the row was missing three NOT NULL fields (slug, event_type) and writing to a non-existent description column instead of public_description. The endpoint now generates slugs, defaults event_type to unlimited, writes to the correct column, and surfaces failed inserts in the result table instead of phantom-counting them as created. trackSlug was added as an exact-lookup option alongside the existing fuzzy trackName matcher; brand colour is no longer overwritten on re-seed when not explicitly provided.


April 2026

Driver achievements, public profiles, circuit map

The biggest driver-facing release so far.

Public profiles at lapvio.com/[username]. Pick your username during onboarding. Profile shows your verified history, manual entries, garage, and circuit map, with privacy controls per section.

Six achievement badges added: First Lap, 10 Events, 10 Circuits, Nordschleife, Season Veteran, Speed Seeker. Auto-awarded.

Circuit map shows visited circuits across Europe. Click a dot for visit count, last date, and best lap time if logged.

Share-your-map PNG generator. Standard OG image dimensions, brand mark in the corner.

Follow other drivers. Activity feed shows events attended, circuits unlocked, achievements earned.

Manual trackday entry rewritten as a five-step flow.

Verified entries now have a small green checkmark in history view. Manual entries are clearly distinguished.

Fixed: HEIC avatar uploads from iPhone were silently failing. Now converted server-side.


April 8, 2026

Maintenance window. Migrated the driver auth layer to support cross-organizer sessions. Most users sign in once across all organizer portals they use.

If you were halfway through a registration on April 8 between 02:00 and 02:40 CET, that's why you got asked to sign in again.


March 2026

Multi-tenancy foundation

The platform stops being single-tenant. Organizations table added. Every event, driver, registration, photo, and admin account belongs to an organization. Existing data migrated cleanly.

Subdomain routing live: [org].lapvio.com for organizer portals, lapvio.com for the driver app.

Per-tenant branding. Organizers configure primary color, logo, email sender name. Brand colors propagate through the registration flow.

Admin sessions scoped to organization.

This was six weeks of internal work for a change most users wouldn't notice. It makes everything that comes next possible.


March 14, 2026

Photo sets module rebuilt. Multiple galleries per event, photographer attribution per set. Drivers see a notification badge on their event card when new photos appear.

Fixed the bug where the photo notification email said "Set 1" instead of the actual set name.


February 2026

Day-of operations

Built around what we needed for the actual event day after running a full season.

Event slots: named time groups (Morning A, Afternoon B) with optional capacity hints. Drivers assigned by admin from the roster.

Pit and box assignments per driver, shown on the driver portal under the QR check-in code.

Transponder number field, internal-only.

Flag system with six types: payment due, incident, damage, no-show, behavioral, other. Append-only with timestamps and resolution dates.

Internal admin notes per driver per event, separate from persistent CRM notes.

Check-in QR code rendered server-side. Scannable from a phone at the gate.

Roster filters by slot type, group, and completion status.

Magic-link tokens now expire at end of event day plus one day.


February 7, 2026

Driver CRM rebuild. Profiles now have tags, ban status with reason, and append-only admin notes. Cars in the profile garage are reference data only, by design.


January 2026

E-commerce integrations

For organizers selling registrations through their own shop.

Webhook receiver supporting WooCommerce out of the box. Orders sync within sixty seconds of completion.

Generic webhook adapter for non-WooCommerce shops. Each organizer gets a unique inbound URL and shared secret. Payloads validated and mapped into the same internal order schema.

Product mapping interface: link an external product (and optional variation) to a Lapvio event with explicit slot type override.

Auto-registration: when a synced order maps to an event, drivers are created automatically and magic links sent.

Manual sync from the admin UI for backfilling.

Driver profile is now the canonical source of truth for name spelling, while preserving the original event-time name as historical record.


January 28, 2026

Stripe Checkout support added. Organizers using Stripe directly (no shop middle layer) can route purchases through Lapvio without a separate shop setup.

Shopify webhook adapter shipped to private beta with two organizers.


January 12, 2026

Briefing flow editor: drag-and-drop module reordering, inline preview, draft state separate from published. Briefings can be saved as drafts without going live.


December 2025

v1.0 — first public release

After several seasons running on internal tooling, we're now operating as a publicly named platform. Lapvio is live.

What's included at v1.0:

Full event lifecycle for organizers. Driver registration via magic link. Briefing module system. Track database with circuit outlines. Booking flow for multi-slot purchases. Admin role system with super_admin, admin, operator. Czech and English throughout.

The platform launches having processed several thousand registrations in private use.


November 2025

Branding

We picked a name. Lapvio. The orange accent and typography stack are finalized this month. Some visual identity has been visible to drivers since October; this is when it became official.

Adobe Sign integration removed. We migrated waiver signing months ago; the legacy field is now officially deprecated.


October 2025

Driver portal visual rebuild

Dark-first design. Mobile-optimized. Briefing modules redesigned.

New module types: split (two-column), closing (final acknowledgment), flags (visual flag explainer with the standard nine flag colors).

Per-event services: organizer-configured links for catering, photography, hospitality.

Briefing completion now records timestamp instead of a boolean.


September 2025

Track database

Imported metadata for European circuits from public sources. Country, length, FIA grade where applicable, and basic SVG outlines.

The outlines aren't perfect. A few are placeholder shapes for circuits we haven't fully digitized yet. We'll improve them progressively. If you spot one that looks wrong, tell us.


August 2025

Two languages, one platform

Czech and English support throughout. Every email template, every page, every form.

We did the Czech ourselves. Native speaker review caught a couple dozen issues before launch.


July 2025

Booking slots

Multi-driver purchases (one buyer, several drivers) work cleanly with three statuses per slot: draft, ready, converted. The booking owner gets a single email with a link to assign their other drivers.


June 2025

Driver CRM v0.1

A profiles table mapping emails to canonical driver identity. Notes, tags, and per-driver cars came in later releases.

Without this, every event treated drivers as if they were new. With it, a driver who's done five events shows up consistently.


May 2025

Waiver signing

Drivers receive a waiver link as part of registration, sign electronically, and the signed PDF is stored against their event record. Webhook updates the status in real time.

We tried two other vendors before this one. The deciding factors: EU-hosted servers, sane pricing, working webhooks.


April 2025

Briefing flow editor

Briefings stop being PDF attachments and become structured content. Modules are reusable blocks scoped global, track, or event level. Drag-reorder into a flow per event.

Eight initial module types. Per-locale content with Czech and English variants.


March 2025

Admin roles

Three roles: super_admin (full access plus user management), admin (full operational, no user management), operator (check-in view only).


February 2025

v0.1

Internal launch. A Next.js app with Tailwind v3 and Postgres. One organizer using it. Hand-rolled magic links, hand-rolled email templates, single events table, no role separation, no internationalization.

The first event run on this version had nineteen drivers.