Event and conference website
A three-day conference site: filterable program by day, track and format; session and speaker pages; a personal schedule saved on the device with overlap detection; offline .ics downloads; venue or local time; venue, tickets and an honest registration boundary.
Creator ($9 a month) includes up to 20 new premium families a billing month (5 in any 24 hours). Already a member? Open your library.
- Version
- 1.0.0
- Platforms
- Website
- Framework
- vite-react
- Archive
- 2.7 MB 111 files
Screens from the build
(open full size)
(open full size)
(open full size)
(open full size)
(open full size)
(open full size)What it does
- browse the program by day, track and format (URL-synced)
- search sessions and speakers
- read session and speaker details
- save sessions to a personal schedule with conflict detection
- switch between venue time and your own time zone
- add one session or the whole schedule to a calendar (.ics)
- compare ticket tiers and hand off at a registration boundary
Routes and screens
homeEvent facts, program map drawn from data, tracks, featured speakers, days at a glanceprogramTimetable with parallel sessions, filters, search, saved-only view and time-zone togglesessionSession detail with venue/local time, room access, speakers, save and .icsspeakersA–Z speaker index with track filterspeakerSpeaker bio and sessionsmy-scheduleSaved sessions by day, conflicts, export all, clear with confirmationvenueAddress, floor plan, rooms and access, travel, accessibilityticketsTiers with all-in prices and policiesregisterRegistration boundary: no ticketing provider connected, nothing issued or chargednot-found404 and unknown session/speaker
States covered
- Loading
- Empty
- Error
- No results
- Conflict
- Destructive confirm
- Not found
- Offline download
- Time zone switch
- Reduced motion
Stack and versions
| vite | 8.3.1 |
|---|---|
| react | 19.3.0 |
| react-dom | 19.3.0 |
| react-router | 8.4.0 |
| typescript | 7.0.2 |
| vitest | 5.0.2 |
| @playwright/test | 1.56.0 |
| @axe-core/playwright | 4.13.0 |
Commands:
| install | npm ci |
|---|---|
| dev | npm run dev |
| test | npm test |
| typecheck | npx tsc -b |
| build | npm run build |
| e2e | npx playwright install chromium && npm run build && npm run e2e |
| screenshots | npm run build && npm run screenshots |
| budget | npm run build && npm run budget |
Tested
| Check | Platform | Tool | Result | Date |
|---|---|---|---|---|
| unit + component tests (30): time zones, .ics, conflicts, filters, storage, pages | Node | vitest 5.0.2 + jsdom 30 + Testing Library 16 | Pass | 2026-09-26 |
| e2e routes, flows, .ics downloads (incl. offline), time-zone emulation, keyboard paths and axe at 1280 and 360 px | Website | Playwright 1.56.0 Chromium 141 + @axe-core/playwright 4.13.0 | Pass | 2026-09-26 |
| axe violations per page and state (0 everywhere) | Website | @axe-core/playwright 4.13.0 | Pass | 2026-09-26 |
| critical-path budget ≤ 250 KB gzip | Website | scripts/budget.mjs | Pass | 2026-09-26 |
| lab LCP ≤ 2.0 s (median of 3; 4x CPU, 150 ms RTT, 1.6 Mbps) | Website | Playwright + Chrome DevTools Protocol throttling | Pass | 2026-09-26 |
| fresh-copy reproduction from the packaged archive (npm ci, build, test) | Node | npm 10.9 / Node 22.22 | Pass | 2026-09-26 |
| screenshots at 360/768/1280/1600 | Website | Playwright 1.56.0 Chromium | Pass | 2026-09-26 |
| .ics import into Apple Calendar, Google Calendar and Outlook | Website | not run (format verified by unit tests against RFC 5545 rules) | PendingNot run yet | — |
| Safari and Firefox | Website | not run | PendingNot run yet | — |
2 checks still pending. Pending means it hasn't been run yet, not that it passed.
Not included
- No ticketing or payment: /register explains the boundary and never shows a confirmed ticket; replace startRegistration() in src/lib/registration.ts (Tito, Eventbrite and Stripe recipes in docs/INTEGRATION-BOUNDARIES.md)
- No live ticket inventory; availability must come from the ticketing provider
- My schedule is stored in localStorage on one device; no accounts or sync
- Calendar export is a downloaded .ics file, not a subscription feed
- Program data is a static JSON file; replace loadEvent() with your CMS or call-for-papers export
- No email, reminders, analytics or cookies
- Client-rendered SPA: prerender or server-render for crawlers; host must rewrite unknown paths to index.html
Each boundary comes with instructions for adding it in docs/INTEGRATION-BOUNDARIES.md.
Known limitations
- Northlight 2026, its venue, speakers and sessions are fictional sample content
- Speakers are shown as typographic monograms, not photographs
- Verified in Chromium only; .ics files not yet imported into real calendar apps
- Venue travel and accessibility text is sample content and must be verified for a real venue
Licence
Use in unlimited end products incl. client/commercial; no resale/redistribution as a template, kit or dataset; no ML training. Survives cancellation for delivered versions.
Full terms: Motif template licence. Open-source parts keep their own licences (licenses.json, id lic-premium-event-program-1-0-0).
Ask your agent
Use Motif to activate the premium-event-program template and download it. Then adapt it for a neighbourhood bakery: replace the content and imagery, keep the design tokens and every state in docs/STATE-MATRIX.md, and run check_design_contract before you finish.Motif guides applied
web-archetype-social-events-and-weddings · web-numbered-spine · web-category-color-coding-system · web-archive-browsing-modes-and-filters · web-code-drawn-zero-asset-graphics · saas-empty-states-that-teach · saas-accessible-modal-dialogs-and-focus · saas-anti-pattern-sneaking-hidden-costs-and-drip-pricing · web-anti-fake-urgency-and-dark-patterns · web-pricing-honesty-and-anchoring · web-focus-indicators-and-keyboard · web-not-found-page · web-seo-semantic-structure-and-metadata · web-type-scale-and-measure · web-semantic-color-tokens · web-breadcrumbs-and-page-contents · motion-reduced-motion-strategy · motion-design-tokens · motion-loading-skeleton-states · sys-toast-alert-and-live-region-rules · sys-per-component-accessibility-contracts
Archive
SHA-256 643d282225671fd82ffcf0bd3ba39e5353bb9244ebcfb582a623e846c6c409e7