Repository navigation
feat(web): simpler, hand-drawn onboarding focused on Loom, recording and uploads - #2427
Draft
richiemcilroy wants to merge 13 commits into
Draft
richiemcilroy wants to merge 13 commits into
richiemcilroy wants to merge 13 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>
…ice setting Co-authored-by: Richie McIlroy <richiemcilroy@users.noreply.github.com>
… doodle 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>
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, 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. Everything works in light and dark, following the device setting, with a toggle in the header.
New account
The name step opens with "Hey, welcome to Cap" and a waving hand that waves twice on arrival and again on hover, with two small hand-drawn motion marks. It has a single field. Your organization is named after you automatically (you can rename it in settings), so the separate organization step is gone.
The preview on the right is a faithful miniature of a real Cap share page: a
cap.linkaddress bar, the title, a Copy link pill, and the owner row with your avatar and name filling in as you type. Below that, the player shows a sketched roadmap being walked through, a webcam bubble, and a playhead that moves. The only motion is what a real video would do: the presenter's cursor drifts to a card, circles it in ink, and the circle fades as the video plays on.The start step offers three cards, Loom first, plus "I'll look around first". The Loom card says up front that you can paste one link or bring a whole library over with a CSV. 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.The explainer records the same sketched roadmap shown in the share preview, with the presenter circling a card while it records, so the pages tell one story.
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.
Dark mode
data-theme="system"and aprefers-color-schemerule, so there's no flash.themecookie the dashboard uses, so your choice carries over. The icon and label are switched in CSS, so the server and client render the same markup.bodygets the resolved theme, so the upgrade dialog and toasts match.Phones and tablets
All steps were checked at 360, 390, 820, 1280, 1440 and 1920 px wide, in light and dark. On touch screens, hover effects are off and the dropzone says "Choose a video".
Reduced motion
With reduced motion turned on, every explainer and the share preview show one finished, readable frame instead of looping, and the waving hand stays still.
Design notes
stroke-dasharray: 1 2, so no round-cap dot shows before they start drawing.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