We just went live on DevHunt — launch week runs through Monday: https://devhunt.org/tool/widget-storm
TL;DR: Widget Storm is a library of embeddable web widgets (countdowns, dice, flip cards, guestbooks, todo lists and more) that render natively into your page's DOM — one script tag, no iframe, free to use.
Why "no iframe" is the whole point
Most embeddable widgets arrive in an iframe: a sealed box with its own document, its own styles, and a fixed frame you end up fighting with.
Widget Storm renders the widget directly into your DOM instead:
<script src="https://widget-storm.de/wgembed.php?w=wg_countdown&a=WidgetStormSystem&lang=en"></script>
That single tag injects real markup into your page. Which means:
- Your CSS reaches the widget. Restyle it like your own HTML — colors, fonts, spacing. Our demo video shows a host page recoloring a countdown widget live, purely with host CSS. An iframe structurally cannot do that.
- It inherits your layout. No fixed-size box, no surprise scrollbars, no postMessage resize dance.
- Self-contained delivery. Each widget ships with its own JS and CSS, scoped under its own class names.
What about safety?
Rendering user-authored widgets without an iframe raises an obvious question. Two answers:
- Open widgets are only rendered at origin if their stored code is provably inert — no active server code — verified before embedding.
- User-created dynamic widgets execute in a WASM sandbox on the server (wasmtime + PHP compiled to wasm32-wasi, deny-by-default: no filesystem, no network, no exec — pure compute over widget parameters).
Background
Widget Storm has been quietly building embeddable components since 2008; this launch is the modernized platform — bilingual (DE/EN), Composer distribution for PHP integrators, and a browser-based widget editor ("Station").
If that sounds useful, an upvote or honest feedback on the DevHunt listing during launch week helps a lot: https://devhunt.org/tool/widget-storm
Questions welcome in the comments — the maker is answering on DevHunt all week.
Top comments (0)