Let the organization word the three ribbons, and own the tab icon
The route map in PaneRibbon stays exactly as it was and becomes the fallback layer: each of "/", "/member" and "/team" now pairs the wording this site ships wit...
Carry the job advert to the sign-in link
Plenty of people who press Apply on the careers board already have an account and come here only to discover that. The "Sign in" link now carries the advert the...
Frost the whole pane, and let the surface on it turn back to glass
The pane was an opaque white card. It is a sheet of glass now, in two places that do different jobs. .kamo-pane itself goes slightly translucent, so the stage'...
One surface, a level-gauge step rail, and chrome the tenant colours
The /team and /member screens were two near-identical slabs of glass stacked with a gap, a MUI Stepper in its default grey, and a progress pill floating inside ...
Carry the applied-for job onto the account being created
The careers board sends candidates to /team?jobId=<uid>. That uid is parked in an apex cookie as before, but it is now READ BACK at submit and sent in the regis...
Seat every screen in the same pane, under a per-step ribbon
Ports kamo-login's shell: every route now renders inside .kamo-pane, a card inset 15px from the browser edge with a 14px radius, a soft shadow and overflow:hidd...
Drain on SIGTERM, answer a readiness probe, and run two pods
Next handles SIGTERM with a bare process.exit(143), so every deploy severed whatever this pod had in flight β a form post, a server action, a streamed RSC paylo...
Paint every logo on the sign-up site in the org's overlay colour
The org chooses "Register Site Logo Overlay" in kamo-internal beside the home page and loading screen overlays. One setting for the whole site: every step of th...
Carry the application claim token across the register handoff
A candidate can now apply from the public careers site without an account. The application is stored against the email address they typed, and the receipt carri...
Remember which job advert brought a candidate here
The public careers site links to /team?jobId=<uid>. Registration is several steps, crosses hosts and bounces through email verification, so the uid is parked in...
Brand and scope signup with ?org=
register.kamocrm.com is the signup page for every organization that has no register host of its own, so the hostname cannot say which one a visitor is signing u...
Read the discount cookies and send the discount* fields
Follows the marketing site: kdsc_vid / kdsc_src, with ?discount= as the query-param fallback for a visitor who lands on the register form with the link still in...
Carry the marketing referral into the signup
The marketing site tags a referred visitor with kmrt_vid and kmrt_src on the shared apex, so register.<apex> can read them; handleFinish sends both in the reque...
Honour the org's sequential/shuffle slideshow order
Same config.json contract as kamo-login: backgroundOrder drives all three registration backgrounds, absent key stays sequential.
Auto-login after email verification via one-time key
When /verify-email responds with the additive otk + autoLoginHost fields (minted by SecurityService on first verification), deep-link straight to https://<host>...
Show TRIAL USE ONLY pill above Powered-by for trial orgs
Refactors PoweredByKamo into a fixed column stack and self-fetches /api/trial-status/{host} (proxy to SecurityService public trial-status endpoint), rendering a...
Kamo-register honors software auth logo + name
- DynamicMetaLoader: read software identity + auth selectors from config.json, resolve tab title, persist auth logo/name state to sessionStorage - brand.ts + ...
Send membership type from the /member and /team paths
/team signups create a TEAM_MEMBER (created PROSPECT, pending admin activation); /member signups create a MEMBER. RegisterFlow takes a memberType prop supplied ...
Handle account-linked response for existing users
When the entered email already belongs to an ACTIVE account, the backend links this org to it and returns ACCOUNT_LINKED. Route those users straight to sign-in ...
Carry paid ?plan from signup into checkout
When a member signup originates from a paid pricing CTA (?plan=pro|business), drop an apex-domain sp_checkout_plan cookie on completion. kamo-login consumes it ...
Add language step, country timezone picker, scroll + *** fixes
- New 'My Language' step prepended to the wizard, mirroring the country step's layout. Lists the 22 marketing-supported locales as flag tiles with native na...
Use org short name and description in HTML head
Replace org-API-based title logic with config.json siteNameShort so the title follows the same pattern as other sites: "Register - {siteNameShort}". Adds descri...
Merge alias/email/name/phone into a single "My Profile" step
Combine the previously separate "My E-Mail & Alias", "My Name", and "Phone Number" steps into one "My Profile" step for 13+ registrants, with alias + e-mail + l...
Add phone verification + security questions steps
Insert two new steps between Password and Account Recovery for 13+ registrants: a phone-number step (optional, skippable, with SMS code verification) and a secu...
Read logoFullExt from config.json; fix site.webmanifest path to favicon subdirectory
SSE-driven live verification status on /verification page
- Add streaming SSE proxy at **************** - PostCompletionScreen subscribes to SSE; auto-sets verified when email link is clicked in another tab - Verifie...
Pass email_verified and email params on redirect to login
Both the code-verify and token-verify paths now redirect to **************** so the login page can show a success banner and pre-fill the username field.
Add /recover password reset page and API proxy
Three-stage flow: email β 8-char code entry β new password. Auto-verifies token from URL query param, background carousel, glass-morphism card, Capcha ***, matc...
Require *** on verification page before each verify/resend attempt
*** is reset after every action (success or failure) so a fresh solve is required for each subsequent attempt.
Add /resend-verification page for login redirects
Creates a standalone /resend-verification route that accepts ?email and ?userId query params, reusing PostCompletionScreen for a consistent email verification U...
Redesign email verification screen + fix resend email bug
- PostCompletionScreen: full-page layout with animated org background, glassmorphism card, logo, visual 6-digit code boxes, success/verified states - resendVe...
Match kamo-internal avatar storage β 3 sizes, MinIO, separate upload step
Crop dialog now produces three PNG blobs (50/150/350px) via canvas, identical to kamo-internal's AvatarManager. After registration returns userId, the blobs are...
Extend photo upload to support AVIF and SVG formats
Adds image/avif and image/svg+xml to the file input accept list and validation regex. Updates the hint label to list all six formats. kamo-internal already acce...
Add react-easy-crop photo editor to registration upload step
Mirrors the PhotoCropDialog from kamo-internal's AvatarManager: - crop dialog opens immediately after file selection - pan by dragging, zoom via scroll or slide...
Add /api/geoip route and wire country auto-detection
Proxies client IP to SecurityService GeoLite2 lookup, then sets the detected country in FormMyCountry automatically on page load.
SP6 register wizard refactor β split PersonalInfo, add real registration API
- Replace FormPersonalInfo with FormName (name fields) and FormAvatar (Avatar Creator generator with generate/upload/skip modes for 13+) - Delete FormRecoveryEn...
Add subtle KamoCRM backlink to registration pages
Mirrors the PoweredByKamo badge shipped in kamo-login. Since kamo-register is served on each white-label client's domain, this creates a stable dofollow backlin...
Show confirmation view with large flag after country selection
Replaces search/browse area with centered flag, country name, and "Switch country" link when a country is selected.
Use dynamic title prefix for member and team registration pages
Member shows "Join {org}", team shows "Apply to {org}".
Add background darkening overlay for member and team pages
Member page darkened by 20%, team page by 70%.
Optimize Dockerfile for production with multi-stage builds and update next.config for standalone mode
Auto-enable nickname field when clicking on disabled textbox
Redesign name details with prefix/suffix dropdowns and nickname checkbox
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.