Drop a beautiful, interactive Wheel of Life assessment into any page with two lines of code. Built for life coaches, therapists, wellness blogs, and Notion templates.
Try it. The exact same widget will appear on your site when you paste the snippet below.
Two lines. Anywhere on the page. Loads asynchronously, won't block your render.
<!-- LifeWheel Wheel of Life — free embed --> <div id="lifewheel-assessment" data-locale="en" data-theme="dark"></div> <script src="https://lifewheel.us/embed/wheel.js" async></script>
All configuration happens through HTML attributes on the container <div>.
| Attribute | Values | Default | Description |
|---|---|---|---|
data-locale |
en, ru |
en |
Language for sphere names, prompts, and CTAs. |
data-theme |
dark, light |
dark |
Color scheme. Match it to your site's mode. |
id / class |
lifewheel-assessment |
— | Selector the loader uses to find mount points. Multiple instances per page are fine — use the class form. |
Anyone who helps people look at their life and make changes.
Give prospective clients a free taste of your intake before the discovery call. Embed on your services page or in your newsletter sign-up flow.
Turn an article on burnout or balance into a pause-and-reflect moment readers actually finish. Better dwell time, better newsletter conversion.
Pair your annual review template with a live widget on your sales page. Buyers see the artifact before they buy.
Add a self-assessment to your services page so clients arrive at their first session with a vocabulary already in mind.
Plain English on the trade.
The Wheel of Life is the most-used assessment tool in coaching — Paul J. Meyer designed it in the 1960s and the International Coaching Federation has effectively standardized it. Most coaches recreate it as a static PDF, a Google Form, or a Typeform that costs them money each month. This widget exists so they don't have to.
It's the same assessment we run at lifewheel.us/wheel-of-life-assessment — eight life areas (Health, Career, Money, Love, Joy, Growth, People, Contribution), each rated 1 to 10, then visualized as the classic radar wheel. We've spent two years tuning the visual rhythm, the slider feel, and the result reveal. You get all of that for free.
What you give up: a small Powered by LifeWheel link in the widget footer. That's it. No watermarks across the wheel, no signup wall, no "upgrade to remove branding" tier. The link is what makes the model work — every embed gives us a backlink, and backlinks are how a small wellness app gets discovered. Fair trade.
What's deliberately not in the widget: third-party analytics. No Google Analytics, no Amplitude, no Microsoft Clarity, no Hotjar. The widget runs in an isolated iframe and sets zero cookies, so embedding it doesn't change your privacy policy or your cookie banner. That decision was harder than it looks — we'd love the behavioural data — but the moment a widget starts tracking on a third-party site, it becomes a liability for the embedder and the embedder rips it out within weeks. Self-contained wins.
If you do want to measure conversions on your end, the widget posts events to its parent page via postMessage and dispatches them as DOM events on your container. Listen for lifewheel:completed and pipe to whichever tool you already use:
<script> document.getElementById('lifewheel-assessment') .addEventListener('lifewheel:completed', function (e) { // e.detail.scores → array of 8 numbers (1-10) // e.detail.average → overall balance score gtag('event', 'wheel_completed', { score: e.detail.average }); }); </script>
Performance: the loader script is under 4 KB gzipped and loads with async, so it never blocks your render. The iframe itself only fetches when it scrolls near the viewport. Lighthouse won't penalize you.
Languages right now: English and Russian. Italian, Brazilian Portuguese, and Ukrainian are next — they already exist in the iOS app, we just haven't moved the strings into the widget yet. Drop us a line if you need a specific locale and we'll prioritize it.
Yes. No tiers, no trials, no credit card. The attribution link in the footer is the entire ask. We use it to grow the LifeWheel app — your embedding the widget helps both of us.
No. The loader is under 4 KB and loads with the async attribute. The iframe is lazy-loaded, so it only fetches when a visitor scrolls near it. We've tested it on sites pushing Core Web Vitals scores in the 95+ range and it doesn't move the needle.
Neither. No cookies, no localStorage, no Google Analytics, no Amplitude, no Clarity. We deliberately stripped all third-party scripts so the widget never adds compliance burden to your site. You shouldn't need to update your cookie banner.
You can switch between dark and light mode with data-theme. Beyond that, the widget keeps its own visual identity to stay consistent across embeds — that consistency is part of what makes the attribution recognizable. Brand-specific theming is on the roadmap behind a future paid tier.
Yes. The widget dispatches lifewheel:loaded, lifewheel:completed, and lifewheel:restarted events on your container element. Listen with addEventListener and route to your own analytics. Scores and the overall average ship with the completion event.
No. That link is what keeps the widget free. Removing it via CSS or JavaScript is a violation of the embed terms and we'll politely ask you to put it back.
English and Russian today. Italian, Portuguese (BR), and Ukrainian are next.
Yes — use the class="lifewheel-assessment" form instead of id. Each instance can have its own data-locale and data-theme.
Yes — anywhere you can drop an HTML embed block. For Notion specifically, paste the loader URL into a Embed block. For WordPress, use a Custom HTML block. For Webflow, use an Embed element. For Ghost, paste into an HTML card.
Questions? hello@lifewheel.us