Registration Modes — Configuration & QA Guide¶
App: Event Site (via CMS)
Repos: [[event-site]], [[summit-registration-lite]]
Audience: Event Operators, QA, Developers
Feature Status: In QA (feature branch: feature/registration-standalone-page)
Overview¶
The event site supports three configurable modes for how attendees access the registration flow. Operators select the mode from the CMS under Site Settings → Registration, and the "Register" button in the site hero adapts accordingly.
| Mode | Behavior | Use Case |
|---|---|---|
| STANDALONE (default) | Navigates to /register showing the registration form full-page |
Dedicated registration landing — SEO-friendly, shareable URL |
| MODAL | Opens the registration flow as a popup overlay on the current page | Keep users engaged with marketing content; auto-open via URL hash |
| LINK | Redirects to a configured URL (internal content page or external site) | Flexible routing to custom registration pages or third-party systems |
CMS Configuration¶
Setting the Registration Mode¶
- Navigate to Site Settings → Registration
- Set Registration Mode to one of:
STANDALONE,MODAL, orLINK - If using
LINKmode, populate the Registration Link field - Trigger a site rebuild — configuration changes require a rebuild to take effect
Rebuilds required
Any change made through the CMS requires a site rebuild before verifying. This applies to registration mode changes, link updates, and shortcode placements in content pages.
Registration Link field¶
Used only when mode is LINK. Accepts:
- Internal path — e.g.,
/custom-registration(must match an existing content page slug). Use with the<RegistrationForm />shortcode on that page to embed the registration widget inline. - External URL — e.g.,
https://example.com/signup. The Register button becomes a full redirect.
Content Page Shortcodes¶
When embedding the registration form on a custom content page, add the following shortcode to the Body field of the content page:
The CMS editor shows a hint listing all available shortcodes under the content page Body field.
CMS Editor Hints¶
The following inline hints have been added to help operators configure registration correctly:
| Field | Hint |
|---|---|
| Marketing Page → Hero → Register Button → Display | Points operators to Site Settings for registration configuration |
| Site Settings → Registration → Registration Mode | Explains all three modes (STANDALONE / MODAL / LINK) |
| Site Settings → Registration → Registration Link | Explains internal path vs. external URL |
| Content Pages → Body | Lists available shortcodes including <RegistrationForm /> |
Mode Behaviors in Detail¶
STANDALONE (default)¶
- Hero "Register" button navigates to
/register - Registration form renders full-page at that route
getUserProfileis called after purchase completes- Use this mode for a dedicated, shareable registration page (e.g., for email campaigns or paid ads)
MODAL¶
- Hero "Register" button opens the registration popup overlay on the current page
- User stays on the marketing content; modal can be closed and dismissed cleanly
- Supports auto-open via URL hash:
?#registration=1will launch the modal on page load - Use this mode to minimize friction for users arriving on specific landing pages
LINK¶
- Hero "Register" button redirects to the URL in the Registration Link field
- For internal paths: route to a content page that includes the
<RegistrationForm />shortcode for inline embedding - For external URLs: full page redirect off-site
- Use this mode to integrate with third-party registration systems or custom-built pages
Login Button¶
The Login button in the site hero operates independently of the registration mode. It should function identically in all three modes — verify login flow works in STANDALONE, MODAL, and LINK configurations.
QA Test Scenarios¶
Preview environment: feature-registration-standalone-page--qa-fnvirtual.netlify.app
CMS backend branch for this deploy: feature/registration-standalone-page
1. STANDALONE mode¶
- [ ] Set Registration Mode to
STANDALONE - [ ] Hero Register button navigates to
/register - [ ]
/registerpage shows the registration form full-page - [ ] Complete registration end-to-end: login → select ticket → payment → confirmation
- [ ] Verify
getUserProfileis called after purchase completes
2. MODAL mode¶
- [ ] Set Registration Mode to
MODAL - [ ] Hero Register button opens the registration popup overlay
- [ ] Complete registration end-to-end inside the modal
- [ ] Close the modal and verify it dismisses cleanly
- [ ] Verify auto-open via URL hash (
#registration=1)
3. LINK mode — internal path¶
- [ ] Create a content page with
<RegistrationForm />shortcode in the Body - [ ] Set Registration Mode to
LINK, Registration Link to the content page path - [ ] Hero Register button navigates to the content page
- [ ] Registration form renders and is fully functional
4. LINK mode — external URL¶
- [ ] Set Registration Mode to
LINK, Registration Link to an external URL (e.g.https://example.com) - [ ] Hero Register button redirects to the external URL
5. Login button¶
- [ ] Login button works independently in all three modes
6. CMS editor experience¶
- [ ] Marketing Page → Hero → Register Button → Display shows hint pointing to Site Settings
- [ ] Site Settings → Registration → Registration Mode shows hint explaining all three modes
- [ ] Site Settings → Registration → Registration Link shows hint explaining internal vs external URLs
- [ ] Content Pages → Body shows hint listing available shortcodes
Pre-Merge Checklist¶
Before merging the feature PR:
- [ ] Site settings have
registrationModeset toSTANDALONE(the production default) - [ ] No content pages left behind from QA testing (clean up any pages created during verification)
Related Platform Components¶
- [[event-site]] — the Gatsby-based event website shell that hosts the registration entry points
- [[summit-registration-lite]] — the React widget that renders the actual registration flow (full-page and modal)
- [[summit-api]] — backend API providing ticket types, orders, and user profile data
- [[openstackid]] — OIDC identity provider for the login step