Add public /features page showcasing the app - #288
Merged
Conversation
A landing page at openplanner.fr/features presenting what OpenPlanner does: schedule builder, sessions/speakers management, sponsors and job board, building blocks, FAQ, day-of tooling and the JSON/webhook publishing pipeline. Public route (outside the login wall), lazy loaded, light/dark aware, content driven by a small data file. Screenshots are real app captures (dark theme, 1600px) taken against the Firebase emulator suite with a seeded demo event, so no real event data is exposed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Visit the preview URL for this PR (updated for commit 70abdc3):
(expires Tue, 25 Aug 2026 12:57:00 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 0c15c45ea5a4c54095387eacf30c3755c9260f22 |
…ightbox Feedback round on the /features page: - "Run the live show" gets real screenshots: two intermission moments (next-session lower third and sponsor slideshow) captured from Sunny Tech 2026's public intermission screen — no login involved. Shown as a small hand-rolled slideshow (arrows + dots, no new dependency). - New Team and Tickets sections with admin screenshots. - Every screenshot opens fullscreen in a lightbox dialog (zoom cursor, click anywhere or the close button to dismiss). - Publish-anywhere section links the REST API (api.openplanner.fr) and Sunny Tech 2026's real exported JSON as a live example. - ConferenceHall, ShortVid and Gladia are linked inline where the text mentions them; content file becomes .tsx so bullets can carry links. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The theme's default LinkComponent routes every Button/Link through wouter's LinkBehavior, which intercepts left-clicks and tries a SPA navigation even for cross-origin hrefs — the GitHub CTAs and inline external links silently did nothing. component="a" bypasses the router for all external links (verified with a headless click: new tab opens, page stays put). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Reuses the slideshow on more sections, each gaining a second (or third) real capture: session edit page, job posts moderation, speaker self-edit form (opened through an actual magic link against the emulator), an image-gallery block with the multi-image drop zone, and the live transcription screen with the talk info bar (captured by proxying the prod storage URL to the local emulator). The publish section shows Sunny Tech 2026's public website and links it as a live example next to the API and JSON links. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The live transcription capture displayed an empty caption area; it now carries example subtitle lines (a settled line and a dim partial one) so the screenshot demonstrates what the audience actually sees. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit b7e2967. Configure here.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 70abdc3. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New public landing page at openplanner.fr/features presenting what OpenPlanner does, with real app screenshots. Lives outside the login wall as a lazy-loaded route, follows the system light/dark theme, no horizontal overflow from mobile to wide screens.
Structure
src/public/features/featuresContent.ts— the content as data: 8 sections (title, tagline, bullets, optional screenshot)src/public/features/FeaturesPage.tsx— hero (logo, CTAs, highlight chips), alternating text/screenshot sections, closing CTAsrc/App.tsx— public/featuresroute, lazy loaded (own chunk, no impact on app bundle)public/features/*.png— six screenshotsSections
Schedule builder · Sessions (ConferenceHall → stage) · Speakers (self-edit magic links) · Sponsors + job board · Building blocks · FAQ · Run the live show (Gladia transcription, intermission, WhatsApp track management) · Publish anywhere (JSON deploy, webhooks, API, OpenFeedback/Voxxrin)
Screenshots
Captured from the actual app (dark theme, downscaled to 1600px, ~1.2 MB total) running against the Firebase emulator suite with a seeded fictional event ("DevFest Nova 2026") — no real event data is exposed. Regeneration: seed the emulator, then Puppeteer over
bun run dev:emulator(scripts kept out of the repo; ping me to regenerate).Test plan
tsc --noEmitandvite buildclean; page ships as its own lazy chunk🤖 Generated with Claude Code
Note
Low Risk
Marketing-only UI and routing; no changes to authentication, APIs, or event data handling.
Overview
Adds a public marketing page at
/features(lazy-loaded, outside the login wall) that explains OpenPlanner with hero CTAs, highlight chips, and alternating copy/screenshot sections driven byFEATURE_SECTIONSinfeaturesContent.tsx.Routing & discovery:
App.tsxregisters the new route beside other public paths; the login screen links to it with “New here? Discover what OpenPlanner can do →”.Page behavior: Sections can show one or more screenshots with prev/next dots and a fullscreen zoom dialog; theme-aware logo and responsive layout (including reversed column order on alternating rows).
Reviewed by Cursor Bugbot for commit 70abdc3. Configure here.