Repository navigation
feat(web): simpler, hand-drawn onboarding focused on Loom, recording and uploads - #2427
Draft
richiemcilroy wants to merge 8 commits into
Draft
richiemcilroy wants to merge 8 commits into
richiemcilroy wants to merge 8 commits into
Conversation
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
… state Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
This branch was successfully deployed
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.
Replaces the five-step web onboarding (name, organization name and logo, custom domain upsell, seat pricing, desktop download) with a short flow built around what people came to do: move their videos from Loom, record a video, upload a video, or join a team they were invited to.
The new flow is: say your name, pick where to start, then do it. Each path page has a looping hand-drawn explainer in the same doodle style as #2312 (boiling ink outlines, strokes that draw themselves, sparks, and a demo cursor). The cursor acts out the task in three phases, and the three numbered steps beside it light up in sync, so it's clear what to do and what happens next.
New account
The name step is a single field. The card on the right shows how you'll appear when you share and updates as you type. Your organization is named after you automatically (you can rename it in settings), so the separate organization step is gone.
The start step offers three cards, Loom first, plus "I'll look around first". People who sign up with Google already have a name, so they skip straight here. Until now they skipped onboarding entirely.
Bring videos from Loom
/signup?next=/dashboard/import/loom?url=…) land on this step after the name step, with their link already filled in.Record
"Record in your browser" is the fastest option and opens the browser recorder straight away (
/dashboard/caps/record?recorder=browser). There's also the desktop app, with your platform detected and short install steps after you download, and the Chrome extension, shown only in Chrome. On phones the app card offers to copy the download link instead.Upload
The dropzone has a hand-drawn border and works with drag and drop, click or tap. Progress uses the squiggle line from #2312, and the finished state links straight to the new video. Uploads stay Pro-only, with the same upgrade-and-return behavior as Loom.
Joining a team
The invite page now matches the rest of onboarding and has its own explainer. When you're signed out, Join goes to sign-up and brings you back to the invite. When you're signed in as the invited address, it's one click and you land in onboarding with your team's name. When you're signed in as someone else, the page says so up front and offers to switch accounts, instead of failing with a toast after you press Accept. The invited address is partly masked.
Phones and tablets
All steps were checked at 360, 390, 820, 1280, 1440 and 1920 px wide. On touch screens, hover effects are off and the dropzone says "Choose a video".
Reduced motion
With reduced motion turned on, every explainer shows one finished, readable frame instead of looping.
Before
How it works
onboardingSteps.getStarted = false. The dashboard sends them to onboarding until they pick a start or choose to look around. Existing accounts never have this flag, so nobody already using Cap is pulled back into onboarding. Accounts without a name still get the name step, as before. SSO-provisioned accounts are unchanged.getStartedRPC step. It marks the old step flags andonboarding_completed_at, creates an organization if the user has none (for example an invitee who declined), and renames a default "My Organization" after the person. Opening any path step marks onboarding done, so leaving to the dashboard never bounces you back.skipToDashboardsets the new flag too./onboarding/organization-setup,/custom-domainand/invite-teamredirect to the start step, and/downloadredirects to the record step.cap_onboarding_next) routes Loom, upload and record links to the matching step. Any other dashboard destination is where "I'll look around first" goes. Invite links are ignored, and the cookie is cleared when an invite is accepted.UpgradeModaland/api/settings/billing/subscribeaccept an optionalreturnPath, validated as a same-origin path. Success and cancel both come back to it.WebRecorderDialoggets adefaultOpenprop. This touches the component signature that feat: bring desktop Studio UI and local playback to web #2312 also changes, so expect a one-line conflict.importMediaFilegetsshowSuccessToastso onboarding can show its own success state.Testing
getStartedbackend tests for renaming, team members, and missing or deleted organizations. The full web unit suite passes (242 files, 3,429 tests).tsc -b apps/web, andtscforweb-backend,web-domainanddatabase.Behavior checks