How it works
Widgets, step by step
Two lines, anywhere
A script tag and the div it draws into. The same pair works on WordPress, Shopify, Webflow, Squarespace, Framer, Wix, a Next.js app, or a hand-written HTML file.
It takes your page's own type
The widget does not fight the site it is in. Your brand kit — color, corner radius, logo — is applied from your project rather than pasted into the page.
Unlimited, on every plan
All twenty-three layouts, on as many pages as you like, on the free plan. The layout is not what is being sold.
<script src="https://hazelsong.com/widget/YOUR-SLUG.js?template=wall" async></script>
<div id="hazelsong-wall"></div>Safe by design
The rule that makes it safe to have
Clear boundaries
What it will not do
Every capability page ends with this list. It is the part that says what you are actually buying.
- It does not track your visitors for us.
- It does not slow your page down waiting for a font or a framework.
- It will not show a testimonial you have not published.
Where it lives in the code: app/widget/[slug]/route.ts · lib/layouts.ts
Questions
Asked about this
From Help, where every answer is written from the product as it runs.
How much code is it?
Two lines: a script tag and a div. The layout is a query string on the script tag, or a data attribute on the div — both of which live in your page, so turning a wall into a marquee later means editing those two lines where you pasted them. There is nothing to rebuild at this end.
It shows nothing on my page.
Three usual causes, in order of likelihood: nothing is published yet (Pending is not published); the builder you are using strips script tags from block content, in which case the tag goes in the theme footer; or you are looking at the editor preview rather than the live page, which is normal on Webflow, Framer, Elementor and Squarespace.
Can I embed it in Notion or a newsletter?
No, and not because of us: neither runs a third-party script. Link the hosted wall in Notion, and use a testimonial image in the newsletter. Email has not run JavaScript for twenty years.
Does the widget slow my page down?
It is one small script with no framework behind it and no font to fetch. It draws after your page has drawn.
This is running now
Open a project and use it. Nothing on this page is a roadmap.