[{"data":1,"prerenderedAt":652},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-lucide:search":8,"i-lucide:sun":10,"i-lucide:moon":12,"i-lucide:arrow-right":14,"i-lucide:menu":16,"i-lucide:mail":18,"i-simple-icons:x":20,"i-simple-icons:linkedin":22,"i-simple-icons:dribbble":25,"i-simple-icons:github":27,"work-\u002Fwork\u002Fledgerly-onboarding":29,"work-order":568,"i-lucide:clock":600,"i-lucide:flask-conical":602,"i-lucide:target":604,"i-lucide:triangle-alert":606,"i-lucide:minus":608,"i-lucide:pen-tool":610,"i-lucide:lightbulb":612,"i-lucide:palette":614,"i-lucide:type":616,"i-lucide:variable":618,"i-lucide:blocks":620,"i-lucide:component":622,"i-lucide:circle-alert":624,"i-lucide:plus":626,"i-lucide:check":628,"i-lucide:gauge":630,"i-lucide:rocket":632,"i-lucide:users":634,"i-lucide:sliders-horizontal":636,"i-lucide:chevron-right":638,"i-lucide:list":640,"i-lucide:git-compare":642,"i-lucide:clipboard-list":644,"i-lucide:shield-check":646,"i-lucide:play":648,"i-lucide:timer":650},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23,"hidden":24},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":26},"\u003Cpath fill=\"currentColor\" d=\"M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12s-5.385 12-12 12m10.12-10.358c-.35-.11-3.17-.953-6.384-.438c1.34 3.684 1.887 6.684 1.992 7.308a10.28 10.28 0 0 0 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4a10.16 10.16 0 0 0 6.29 2.166c1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765q.202-.067.405-.12q-.392-.879-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248a66 66 0 0 0-3.8-5.928a10.28 10.28 0 0 0-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6c3.645-1.365 5.19-3.44 5.373-3.702A10.2 10.2 0 0 0 12 1.764c-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04c.24.49.47.985.68 1.486c.08.18.15.36.22.53c3.41-.43 6.8.26 7.14.33c-.02-2.42-.88-4.64-2.31-6.38z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":28},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"id":30,"title":31,"accent":32,"accentLight":32,"body":33,"challenge":115,"client":133,"cover":134,"coverAlt":135,"decisions":136,"description":167,"excerpt":168,"extension":169,"featured":6,"features":170,"flows":195,"gallery":233,"ia":272,"industry":325,"kind":326,"meta":327,"navigation":24,"order":108,"outcomes":328,"path":353,"platform":354,"principles":357,"projectType":376,"research":377,"seo":452,"services":453,"stack":457,"stem":462,"system":463,"timeline":565,"year":566,"__hash__":567},"work\u002Fwork\u002F3.ledgerly-onboarding.md","Rebuilding onboarding around the first useful moment","#7C3AED",{"type":34,"value":35,"toc":106},"minimark",[36,41,45,48,51,55,58,61,64,67,71,74,77,80,83,87,94,100],[37,38,40],"h2",{"id":39},"checking-the-brief-before-accepting-it","Checking the brief before accepting it",[42,43,44],"p",{},"Ledgerly's brief is to redesign the onboarding checklist. The most useful thing\nthis project does is spend a week deciding not to.",[42,46,47],{},"The funnel in the scenario tells a specific story. Checklist completion is\naround two thirds, which is respectable. But users who complete the checklist\nconvert at almost the same rate as users who abandon it. That single comparison\nis the whole diagnosis: if finishing a sequence does not predict the outcome,\nthen improving how many people finish it cannot help. The checklist is doing its\njob faithfully. Its job is the problem.",[42,49,50],{},"This is worth dwelling on because the alternative project — better copy, a\nprogress ring, a celebratory animation on completion — is a real project that\nteams ship every quarter, and it produces a measurable improvement in a metric\nthat does not connect to anything.",[37,52,54],{"id":53},"finding-the-moment","Finding the moment",[42,56,57],{},"The redesign needs a target, and the target is the first moment the product\nbecomes comprehensible.",[42,59,60],{},"For Ledgerly that is a completed reconciliation: a real match, on data the user\nrecognises, that they did not have to make by hand. Not the signup, which is\njust admission. Not the bank connection, which is cost. Not the checklist, which\nis a description of cost.",[42,62,63],{},"Reaching that moment takes nine steps and around 47 minutes, and eight of the\nnine steps are administration. Once the target is named, the design work is\nmostly subtraction with one question asked repeatedly: does this have to happen\nbefore the first reconciliation? Teammate invites do not. The chart of accounts\ndoes not. The accounting integration does not. Six of the nine move.",[42,65,66],{},"They do not disappear — that is the part worth being precise about. They are\nasked later, in the product, at the point each one is first needed. An invite\nprompt when a match needs a second opinion is a different request from the same\nprompt on screen two, even though the form is identical.",[37,68,70],{"id":69},"sample-data-is-a-real-risk","Sample data is a real risk",[42,72,73],{},"The decision most likely to backfire is demonstrating on sample data.",[42,75,76],{},"The logic is sound: the highest-anxiety action in the product is handing over\nbank credentials, and the current flow asks for it before showing anything. Move\nthe demonstration first and the user decides with evidence.",[42,78,79],{},"But users in this scenario explicitly say they do not want a tour, and a sample\nledger is one bad execution away from being a tour. If the sample data is too\nclean, it demonstrates a product that does not exist — every transaction\nmatching neatly, no ambiguity, no partial matches. The user's real ledger will\nnot look like that, and the gap between the demo and the first real batch is\nwhere trust is lost rather than built.",[42,81,82],{},"So the sample is deliberately messy. It includes a partial match, one\ntransaction the product cannot classify, and a duplicate. It demonstrates the\nproduct handling difficulty, which is the only demonstration worth making.",[37,84,86],{"id":85},"what-we-gave-up","What we gave up",[42,88,89,93],{},[90,91,92],"strong",{},"A clean activation metric."," Deleting the checklist removes the number the\nteam reports weekly, and nothing replaces it as a single figure. Time to first\nreconciliation is the honest measure and it is harder to instrument, noisier,\nand much less satisfying on a slide.",[42,95,96,99],{},[90,97,98],{},"A sense of completion."," Some users like a checklist, and progressive setup\nmeans there is no moment where a badge says setup is done. The account is\npermanently, honestly, partially configured. We think that is more truthful than\na completed list that hides the same gaps, but it does feel worse.",[42,101,102,105],{},[90,103,104],{},"Determinism."," An inferred account map that is subtly wrong is more dangerous\nthan an empty form, because it can be accepted without being read. Marking every\ninferred row helps the careful user and the second person picking the account\nup. It does nothing for the person who clicks straight through, and that person\nexists.",{"title":107,"searchDepth":108,"depth":108,"links":109},"",3,[110,112,113,114],{"id":39,"depth":111,"text":40},2,{"id":53,"depth":111,"text":54},{"id":69,"depth":111,"text":70},{"id":85,"depth":111,"text":86},{"summary":116,"points":117},"Ledgerly is a scenario built around the most common misdiagnosis in activation work. A team sees low completion on an onboarding checklist and concludes the checklist needs better copy and progress indicators. Looking at the funnel first tells a different story, and it is a story about sequence rather than presentation.",[118,121,124,127,130],{"label":119,"detail":120},"The brief was to fix the wrong artifact","Improving the checklist would have improved a number that does not matter. In the scenario, users who complete setup convert at almost the same rate as users who abandon it — which is the signal that completion is not predictive of anything.",{"label":122,"detail":123},"Nine administrative steps before anything useful","Creating an organisation, inviting a teammate, connecting a bank feed, waiting for a sync, configuring a chart of accounts, connecting the accounting integration, mapping accounts, setting a rule, running a batch. Only the last one is the product.",{"label":125,"detail":126},"The wait is invisible and unexplained","A bank feed sync takes minutes and shows a spinner. Several users in the scenario assume the product is still installing itself and close the tab — a failure that looks like churn and is actually a missing status message.",{"label":128,"detail":129},"Trust has to be earned before data is handed over","Connecting a bank feed is the highest-anxiety moment in the flow, and the current design asks for it before the user has seen the product do anything at all.",{"label":131,"detail":132},"Setup is not one job","The person signing up and the person who will configure the chart of accounts are frequently different people. A single linear wizard assumes one person with all the answers, and stalls the moment that is false.","Ledgerly","\u002Fcase-studies\u002Fledgerly\u002Fscreens\u002Ffirst-run.webp","Ledgerly first run — a sample ledger reconciling on load",[137,143,149,155,161],{"title":138,"problem":139,"decision":140,"rationale":141,"tradeoff":142},"Demonstrate on labelled sample data before asking for credentials","Bank credentials are the highest-anxiety request in the product, and the current flow makes it before the user has seen anything work. That is asking for maximum trust at the moment of minimum evidence.","A sample ledger reconciles on first load, unmistakably marked as sample data, with a single action to replace it with a real connection.","It moves the demonstration before the ask. The user learns what a reconciliation is, what the product does to it, and what they would be getting — and only then decides whether to connect an account.","Sample data risks reading as a canned demo, which is exactly the \"tour\" users say they do not want. The mitigation is that it is fully interactive and one click from being replaced — but if the sample looks too tidy, it undermines the credibility it exists to build.",{"title":144,"problem":145,"decision":146,"rationale":147,"tradeoff":148},"Delete the onboarding checklist","The checklist is well-completed and predicts nothing. Keeping it means continuing to optimise a metric that does not connect to the outcome, and it occupies the persistent panel that could show something useful.","Removed entirely. What remains to be configured surfaces in place, at the point in the product where it is relevant.","A checklist is an admission that the sequence is not self-evident. Fixing the sequence removes the need for the meta-layer describing it.","Real losses. Some users genuinely like a visible sense of progress, and the team loses a clean funnel metric that was easy to report on. Nothing replaces it as a single number, and stakeholders who track it weekly will feel that keenly.",{"title":150,"problem":151,"decision":152,"rationale":153,"tradeoff":154},"Infer the account map, then ask for review","Configuring a chart of accounts is a decision most trial users have no basis for making, and frequently not their job at all. It is where the linear wizard stalls.","Infer a starting map from the first batch of transactions, then present it for correction after the batch runs.","Reviewing a wrong guess is a much smaller cognitive task than producing a right answer from an empty form, and the transactions themselves are the best available evidence for what the map should be.","An inferred map that is subtly wrong is more dangerous than an empty one, because it may be accepted without scrutiny. Every inferred row is marked as inferred and the decision log records it as a default rather than a choice — which helps the second person, and does nothing for the first person who clicks through.",{"title":156,"problem":157,"decision":158,"rationale":159,"tradeoff":160},"Make the sync wait explicit","A multi-minute spinner with no status is indistinguishable from a broken installation, and in the scenario it is a meaningful share of the abandonment.","Named stages, an estimated duration, and a clear statement that the user can leave and come back. The sample ledger stays interactive throughout.","Almost all of the pain here is uncertainty rather than duration. Naming the stages converts an unexplained delay into a process, and processes are tolerable.","Stated estimates are sometimes wrong, and an estimate that overruns is worse than none. The range is deliberately wide and pessimistic, which makes the common case feel slow on paper and fast in practice.",{"title":162,"problem":163,"decision":164,"rationale":165,"tradeoff":166},"Make setup resumable by a different person","A linear wizard assumes one person with all the answers in one sitting. In the scenario the person who signs up and the person who configures are frequently different, and often days apart.","No step blocks another. A decision log records what was chosen versus what was defaulted, and open items surface where they are relevant rather than in a queue.","It matches how the work actually gets divided, and it gives the second person the one thing they need most — knowing what the first person actually agreed to, as distinct from what the product assumed.","Without a forced sequence, an account can sit half-configured indefinitely, and there is no single moment where setup is \"done\". We judged a permanently open, honest state better than a completed checklist that hides the same gaps.","A concept study in fintech activation design — replacing a nine-step administrative setup with a path that reaches a real reconciliation in three, and deleting the checklist that was measuring the wrong thing.",null,"md",[171,175,179,183,187,191],{"title":172,"detail":173,"icon":174},"Sample-first activation","A labelled, fully interactive sample ledger that reconciles immediately, replaced by real data in one action.","lucide:play",{"title":176,"detail":177,"icon":178},"Progressive configuration","Six setup tasks moved out of the wizard and surfaced at the point each one is first needed.","lucide:list",{"title":180,"detail":181,"icon":182},"Explicit waits","Named sync stages with a duration estimate, replacing every indeterminate spinner in the activation path.","lucide:timer",{"title":184,"detail":185,"icon":186},"Inferred account mapping","A starting map derived from the first batch, presented for review with every guessed row marked as inferred.","lucide:git-compare",{"title":188,"detail":189,"icon":190},"Resumable setup with a decision log","No step blocks another, and a second person can see what was chosen versus what the product assumed.","lucide:clipboard-list",{"title":192,"detail":193,"icon":194},"Inline data-access scope","What each connection can read, stated beside the field requesting it rather than behind a policy link.","lucide:shield-check",[196,212,222],{"title":197,"note":198,"before":199,"after":209},"Reaching the first reconciliation","The core flow. Six of the nine original steps still exist — they happen after this path completes, at the point each one is first needed.",[200,201,202,203,204,205,206,207,208],"Sign up","Create organisation","Invite a teammate","Connect bank feed","Wait for sync","Configure chart of accounts","Connect accounting integration","Map accounts","Run first batch",[200,210,211],"Run the sample batch","Connect and re-run on real data",{"title":213,"note":214,"before":215,"after":219},"Connecting a bank feed","The same underlying steps, with the wait made legible. The change is entirely in what the interface says while nothing is happening.",[216,217,218],"Choose institution","Enter credentials","Spinner",[216,220,217,221],"Read the data-access scope","Watch named sync stages with an estimate",{"title":223,"note":224,"before":225,"after":230},"Setting up the chart of accounts","Changed from an authoring task to a review task. Reviewing a wrong guess is far easier than producing a right answer from nothing.",[226,227,228,229],"Open settings","Read documentation","Create each account","Map each account",[231,232],"Review the inferred map after the first batch","Correct what is wrong",[234,241,248,253,259,266],{"title":235,"caption":236,"src":134,"width":237,"alt":238,"frame":239,"span":240},"First run","The sample ledger reconciles on load. It is deliberately messy — a partial match, an unclassified transfer and a duplicate — because a demo where everything matches neatly shows a product that does not exist.",1440,"Reconciliation screen showing four matched and three exception rows","browser","full",{"title":242,"caption":243,"src":244,"width":245,"alt":246,"frame":247},"Labelled, not disguised","Sample data is marked unmistakably, with the replace action attached to the label rather than buried in settings.","\u002Fcase-studies\u002Fledgerly\u002Fcomponents\u002Ffirst-run--sample.webp",1184,"Sample data banner with a connect-your-bank action","plain",{"title":249,"caption":250,"src":251,"width":237,"alt":252,"frame":239},"Sync status","Named stages and a deliberately pessimistic range. Almost all of the pain in a multi-minute wait is uncertainty rather than duration.","\u002Fcase-studies\u002Fledgerly\u002Fscreens\u002Fsync-status.webp","Bank sync with five named stages and an estimated duration",{"title":254,"caption":255,"src":256,"width":257,"alt":258,"frame":247},"The wait does not block","The sample ledger stays interactive throughout, and leaving is explicitly safe — the failure being designed against is the user who assumes setup has stalled and closes the tab.","\u002Fcase-studies\u002Fledgerly\u002Fcomponents\u002Fsync-status--meanwhile.webp",475,"Panel offering things to do while the sync runs",{"title":260,"caption":261,"src":262,"width":263,"alt":264,"frame":265},"Three fields","The entire admission process. Organisation, teammates and chart of accounts are asked later, in the product, at the point each is first needed.","\u002Fcase-studies\u002Fledgerly\u002Fmobile\u002Fsignup.webp",390,"Mobile signup with email, password and country","mobile",{"title":267,"caption":268,"src":269,"width":270,"alt":271,"frame":247},"Scope, stated inline","What is accessed, beside the field that asks for it, at the moment of highest anxiety in the product.","\u002Fcase-studies\u002Fledgerly\u002Fcomponents\u002Fsignup--form.webp",346,"Signup form fields with validation and help text",[273,283,293,302,315],{"label":274,"detail":275,"children":276},"Entry","Three fields, then straight into the product. No wizard, no tour.",[277,280],{"label":278,"detail":279},"Signup","Email, password, country — nothing that can be inferred or deferred",{"label":281,"detail":282},"Workspace","Created automatically and renameable later",{"label":284,"detail":285,"children":286},"Demonstration","A labelled sample ledger that reconciles immediately, so the product explains itself by working.",[287,290],{"label":288,"detail":289},"Sample batch","Runs on load, unmistakably marked as sample data",{"label":291,"detail":292},"Replace with real data","One action, available from the first screen onward",{"label":294,"detail":295,"children":296},"Connection","Requested after the demonstration, with the wait made explicit.",[297,300],{"label":298,"detail":299},"Provider search","Institution picker with a stated data-access scope",{"label":249,"detail":301},"Named stages and an estimated duration, never a bare spinner",{"label":303,"detail":304,"children":305},"Configuration","Progressive. Each item surfaces at the point the product first needs it.",[306,309,312],{"label":307,"detail":308},"Account map","Inferred from the first batch, presented for review rather than authored",{"label":310,"detail":311},"Rules","Offered after a repeated manual match, not before",{"label":313,"detail":314},"Teammates","Offered when a match needs a second opinion",{"label":316,"detail":317,"children":318},"Setup state","For the second person. What was decided, what was defaulted, what is open.",[319,322],{"label":320,"detail":321},"Decision log","Distinguishes chosen values from defaults",{"label":323,"detail":324},"Open items","Surfaced in place, not as a separate checklist","Fintech","concept",{},[329,333,337,341,345,349],{"value":330,"label":331,"description":332},"9 → 3","Steps before the first reconciliation","Six administrative steps deferred until after the user has seen the product do its job once.",{"value":334,"label":335,"description":336},"6","Setup tasks moved after first value","Teammate invites, chart of accounts, reconciliation rules and three settings, each requested at the point it is first needed.",{"value":338,"label":339,"description":340},"1","Screens in the activation path","A single progressive surface replacing a five-screen wizard and a persistent checklist panel.",{"value":342,"label":343,"description":344},"0","Checklists","Removed entirely. It measured completion of a sequence that did not predict anything.",{"value":346,"label":347,"description":348},"47 → 6 min","Modelled time to first reconciliation","A walkthrough estimate of the redesigned path against the current one, counting only unavoidable waits.",{"value":350,"label":351,"description":352},"3","Fields required before signup completes","Email, password and country. Everything else is asked when the product needs it.","\u002Fwork\u002Fledgerly-onboarding",[355,356],"Web application","Responsive, mobile-first setup",[358,361,364,367,370,373],{"title":359,"detail":360},"The first useful moment is the deadline","Every step in the activation path is measured against one question — does this have to happen before the user sees a reconciliation complete? Almost nothing does.",{"title":362,"detail":363},"Ask for a thing at the moment it is needed","Teammate invites when there is something to collaborate on. Account mapping when the first batch needs it. A question asked in context is a different question from the same one asked in a wizard.",{"title":365,"detail":366},"Earn the credentials","The highest-anxiety action in the flow happens after the product has demonstrated what it does, not before.",{"title":368,"detail":369},"Never make waiting invisible","Every wait states what is happening, roughly how long it will take, and what the user can do meanwhile. A spinner with no duration is indistinguishable from a failure.",{"title":371,"detail":372},"Setup is resumable and inspectable","A second person arriving days later can see what was decided, what was defaulted, and what is still open — without resetting anything.",{"title":374,"detail":375},"Progress is a state of the product, not a checklist","What remains to be configured is shown where it is relevant, in the product. A separate panel tracking a sequence is an admission the sequence is not self-evident.","Activation & onboarding redesign",{"summary":378,"premises":379,"personas":398,"journey":425},"The premises below define the scenario. The central one — that there is a single identifiable moment where the product becomes comprehensible, and that everything before it is overhead — is the assumption the whole redesign rests on, so it is stated plainly rather than buried.",[380,383,386,389,392,395],{"label":381,"detail":382},"The first useful moment is the first completed reconciliation","Not the signup, not the bank connection, not the checklist. The moment a user sees a real match against their own data that they did not have to make by hand.",{"label":384,"detail":385},"Checklist completion does not predict conversion","We set completion deliberately high — around two thirds — so that the checklist cannot be blamed. A well-completed checklist that predicts nothing is a measurement problem, not a motivation problem.",{"label":387,"detail":388},"Reaching first value takes about 47 minutes","Most of it administrative, and a meaningful part of it waiting on a sync with no explanation of what is happening.",{"label":390,"detail":391},"Abandonment is often a misunderstanding","We assume a share of users who leave during the sync believe setup is still running. They have not rejected the product; they think it has not started.",{"label":393,"detail":394},"The signup and the configuration are different jobs","Often different people, sometimes days apart. Any flow that requires all answers in one sitting fails on this.",{"label":396,"detail":397},"Sample data is acceptable if it is labelled","We assume users will accept a demonstration on sample data before connecting a real account, provided it is unmistakably labelled and takes one action to replace.",[399,412],{"name":400,"role":401,"context":402,"goals":403,"frustrations":407,"quote":411},"Aisling Byrne","Owner, eleven-person design studio","Does the books herself on a Friday afternoon because nobody else will. She is evaluating Ledgerly in a browser tab beside four others, and will give it about ten minutes before deciding it is another thing to set up.",[404,405,406],"Find out quickly whether this will actually save her Friday afternoons","Avoid connecting bank credentials to something she has not evaluated","Not have to understand accounting vocabulary to get started",[408,409,410],"Asked to invite a teammate before she knows if the product works","A chart-of-accounts step she does not have an opinion about yet","A spinner with no indication of how long it will run","I do not want a tour. I want to see it do the thing once, with my numbers, and then I will decide.",{"name":413,"role":414,"context":415,"goals":416,"frustrations":420,"quote":424},"Tomás Ferreira","Finance operations, 60-person scale-up","Inherits the account after someone else signed up. He is the person who actually configures the chart of accounts and the reconciliation rules, and he arrives days after the trial started.",[417,418,419],"Pick up a half-configured account without starting over","Map accounts properly rather than accept a guessed default","Understand what the previous person already decided",[421,422,423],"A linear wizard that assumes one person answers everything at once","No record of which decisions were defaults and which were chosen","Setup state that cannot be revisited without resetting it","Someone else clicked through this. I need to know what they agreed to before I trust any of it.",[426,429,435,439,443,448],{"stage":278,"doing":427,"feeling":428},"Enters email and password, names the organisation.","positive",{"stage":430,"doing":431,"feeling":432,"friction":433,"opportunity":434},"Invite teammates","Asked to invite colleagues before seeing the product.","negative","She has nothing to invite them to yet, and skipping feels like doing it wrong.","Move invites to the moment collaboration is first needed.",{"stage":203,"doing":436,"feeling":432,"friction":437,"opportunity":438},"Asked for bank credentials on the third screen.","Highest-anxiety action in the flow, requested before any value is shown.","Demonstrate on labelled sample data first, connect afterwards.",{"stage":204,"doing":440,"feeling":432,"friction":441,"opportunity":442},"Watches a spinner for several minutes with no status.","No indication of duration or progress. Reads as a stalled installation.","Make the wait explicit and fill it with something useful.",{"stage":444,"doing":445,"feeling":432,"friction":446,"opportunity":447},"Configure accounts","Asked to set up a chart of accounts and map them.","A decision she has no basis for making yet, and often not her job.","Infer a starting map, defer the review until the first batch runs.",{"stage":449,"doing":450,"feeling":428,"opportunity":451},"First reconciliation","Finally sees a real match complete.","This is the moment. Everything before it is cost — move it here.",{"title":31,"description":167},[454,455,456],"SaaS Design","Product Design","Frontend Engineering",[458,459,460,461],"Figma","Nuxt 3","TypeScript","Tailwind CSS","work\u002F3.ledgerly-onboarding",{"summary":464,"radius":465,"density":466,"palette":467,"type":487,"tokens":512,"components":537,"specimens":560},"A calm, low-anxiety system for a product handling other people's money. The decisions worth pointing at are a deliberately narrow palette that reserves saturation for money movement, form fields that state their data-access scope inline, and a wait component that is a first-class part of the system rather than a spinner someone dropped in.",12,"default",[468,472,475,479,483],{"name":469,"value":470,"role":471},"Ink","#111014","Primary surface, dark theme",{"name":473,"value":32,"role":474},"Ledger","Primary action. Passes contrast in both themes, so it is not restepped.",{"name":476,"value":477,"role":478},"Reconciled","#15943F","A completed match. The only place green appears.",{"name":480,"value":481,"role":482},"Neutral","#71717A","Secondary text, and the reference series in charts",{"name":484,"value":485,"role":486},"Unmatched","#B45309","Needs attention — never used for anything that is merely incomplete",[488,494,498,503,508],{"name":489,"size":490,"weight":491,"tracking":492,"usage":493},"Figure","2rem",600,"-0.02em","Balances and totals, always tabular",{"name":495,"size":496,"weight":491,"usage":497},"Heading","1.375rem","Section and step headings",{"name":499,"size":500,"weight":501,"usage":502},"Body","1rem",400,"Running text and field labels",{"name":504,"size":505,"weight":506,"usage":507},"Amount","0.9375rem",500,"Transaction amounts in dense ledger rows",{"name":509,"size":510,"weight":501,"usage":511},"Caption","0.8125rem","Scope notices, inferred-value markers and timestamps",[513,517,521,525,529,533],{"name":514,"value":515,"usage":516},"--tabular-figures","always","Every numeral in the product. A misaligned column of money reads as an error.",{"name":518,"value":519,"usage":520},"--wait-estimate","required","No indeterminate spinner may ship without a stated duration range.",{"name":522,"value":523,"usage":524},"--scope-notice","inline","Data-access scope sits beside the field requesting it, never in a link.",{"name":526,"value":527,"usage":528},"--inferred-marker","dotted underline","Distinguishes a value the product guessed from one a person chose.",{"name":530,"value":531,"usage":532},"--radius-control","12px","Softer than the operations tools. Deliberate — anxiety reduction.",{"name":534,"value":535,"usage":536},"--destructive-confirm","typed","Anything touching a real account requires typing, not a click.",[538,542,546,550,553,556],{"name":539,"variants":540,"detail":541},"SetupCard",5,"A progressive configuration unit. Resumable, and never blocking another.",{"name":543,"variants":544,"detail":545},"SyncStatus",6,"Named stages with an estimate. Replaces every indeterminate spinner.",{"name":547,"variants":548,"detail":549},"LedgerRow",8,"Matched, unmatched, partial and inferred states at three densities.",{"name":551,"variants":108,"detail":552},"ScopeNotice","States what data is accessed, inline with the field that requests it.",{"name":554,"variants":111,"detail":555},"SampleBanner","Marks sample data unmistakably, with the replace action attached.",{"name":557,"variants":558,"detail":559},"DecisionLog",4,"Chosen versus defaulted, for whoever picks the account up next.",[561,562,563,564],"fields","buttons","cards","nav","9-week scope","2025","7JXXMs7nVqqUvAmXmqGV0oiqO-jVJDV5jAkouWrd1-M",[569,575,581,582,588,594],{"path":570,"client":571,"title":572,"excerpt":168,"accent":573,"industry":574},"\u002Fwork\u002Fnorthwind-design-system","Northwind Cloud","One design system across four acquired products","#00D4FF","SaaS",{"path":576,"client":577,"title":578,"excerpt":168,"accent":579,"industry":580},"\u002Fwork\u002Fmeridian-clinical-ai","Meridian Health","Designing an AI that clinicians are allowed to disagree with","#22C55E","Healthcare",{"path":353,"client":133,"title":31,"excerpt":168,"accent":32,"industry":325},{"path":583,"client":584,"title":585,"excerpt":168,"accent":586,"industry":587},"\u002Fwork\u002Ffleetwise-dashboard","Fleetwise","A fleet dashboard people stop exporting to spreadsheets","#F59E0B","Logistics",{"path":589,"client":590,"title":591,"excerpt":168,"accent":592,"industry":593},"\u002Fwork\u002Fverdigris-marketplace","Verdigris","An e-commerce system where every product is one of one","#E07A5F","E-commerce",{"path":595,"client":596,"title":597,"excerpt":168,"accent":598,"industry":599},"\u002Fwork\u002Fhalyard-progressive-delivery","Halyard","A progressive delivery console that can answer \"who is seeing this?\"","#818CF8","Developer Tools",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":601},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 6v6l4 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":603},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2M6.453 15h11.094M8.5 2h7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":605},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"6\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":607},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":609},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":611},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z\"\u002F>\u003Cpath d=\"m18 13l-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18M2.3 2.3l7.286 7.286\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":613},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":615},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 22a1 1 0 0 1 0-20a10 9 0 0 1 10 9a5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\"\u002F>\u003Ccircle cx=\"13.5\" cy=\"6.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003Ccircle cx=\"17.5\" cy=\"10.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003Ccircle cx=\"6.5\" cy=\"12.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003Ccircle cx=\"8.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":617},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 4v16M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2M9 20h6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":619},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 21s-4-3-4-9s4-9 4-9m8 0s4 3 4 9s-4 9-4 9M15 9l-6 6m0-6l6 6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":621},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"14\" y=\"2\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":623},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0zm-13.239 0a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0zm6.619 6.619a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0zm0-13.238a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":625},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 8v4m0 4h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":627},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7v14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":629},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20 6L9 17l-5-5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":631},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 14l4-4M3.34 19a10 10 0 1 1 17.32 0\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":633},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09\"\u002F>\u003Cpath d=\"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z\"\u002F>\u003Cpath d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":635},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M16 3.128a4 4 0 0 1 0 7.744M22 21v-2a4 4 0 0 0-3-3.87\"\u002F>\u003Ccircle cx=\"9\" cy=\"7\" r=\"4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":637},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":639},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":641},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":643},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"18\" cy=\"18\" r=\"3\"\u002F>\u003Ccircle cx=\"6\" cy=\"6\" r=\"3\"\u002F>\u003Cpath d=\"M13 6h3a2 2 0 0 1 2 2v7m-7 3H8a2 2 0 0 1-2-2V9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":645},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2m4 7h4m-4 5h4m-8-5h.01M8 16h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":647},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":649},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":651},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 2h4m-2 12l3-3\"\u002F>\u003Ccircle cx=\"12\" cy=\"14\" r=\"8\"\u002F>\u003C\u002Fg>",1787597897316]