Free widget

Put the wheel on your site

One iframe adds a working random name picker to any page. The embed is ad-free, respects the visitor's reduced-motion setting, and can be controlled from your own JavaScript.

Live preview

Copy the iframe

Replace the names in the src with your own comma-separated list. Keep the list short so the labels stay readable.

HTML
<iframe
  src="https://wheelbloom.devpenh.com/embed?names=Maya,Liam,Sofia,Noah"
  title="Random name picker"
  width="100%"
  height="720"
  style="border:0;border-radius:20px;max-width:560px"
  loading="lazy"
  allow="fullscreen"
></iframe>

<p style="font-size:13px;text-align:center">
  <a href="https://wheelbloom.devpenh.com/?utm_source=embed&utm_medium=widget">
    Random name picker by WheelBloom
  </a>
</p>

Control it with JavaScript

The embed listens for a wheelbloom:set message and posts results back with wheelbloom:result. The height message lets the iframe resize without a scrollbar.

JavaScript
const frame = document.querySelector('iframe[title="Random name picker"]');

// Replace the list from your own UI.
frame.contentWindow.postMessage(
  { type: "wheelbloom:set", names: ["Maya", "Liam", "Sofia", "Noah"] },
  "https://wheelbloom.devpenh.com"
);

// Listen for the winning name.
window.addEventListener("message", (event) => {
  if (event.origin !== "https://wheelbloom.devpenh.com") return;
  if (event.data?.type === "wheelbloom:result") {
    console.log("Winner:", event.data.winner);
  }
  if (event.data?.type === "wheelbloom:height") {
    frame.height = event.data.height;
  }
});
The embed never shows ads. It loads the same static app as the main site, and entries stay inside the visitor's browser.

Embed questions

Is the embedded wheel free?

Yes. The embed is free and ad-free. There is no account or API key.

Does the embed work on any site?

It is a standard iframe, so it works on WordPress, Squarespace, Webflow, Notion, plain HTML, and most other site builders that allow custom embed blocks.

Can I control the entries from my own page?

Yes. Send a wheelbloom:set postMessage with an array of names. The embedded wheel replaces its list without a reload.

Will the iframe resize automatically?

The embed posts its height to the parent page. Add the small height listener shown above and the iframe will grow or shrink with the content.