Embeddable Widget
Use the widget to play a single album, a specific track, all songs, or a custom playlist. Control styling and behavior via URL flags.
Examples
Full (default)
<iframe src="https://fm.loftwah.com/widget?album=all&variant=default" width="100%" height="420" frameborder="0"></iframe> Compact
<iframe src="https://fm.loftwah.com/widget?album=all&variant=compact" width="100%" height="240" frameborder="0"></iframe>
Compact — preselected track (shuffle + repeat all)
<iframe src="https://fm.loftwah.com/widget?album=run-it&file=Run%20it.mp3&variant=compact&shuffle=1&repeat=all&width=560" width="100%" height="240" frameborder="0"></iframe> Mini
<iframe src="https://fm.loftwah.com/widget?album=all&variant=mini" width="100%" height="120" frameborder="0"></iframe> How to embed
Place the iframe in a full-width row. The widget centers its content
and constrains width via the width parameter (default 560
for compact). Keep the iframe width at 100% and use the recommended height
for the chosen variant. Autoplay is off by default for embeds and is not
recommended.
HTML
<section class="embed-row">
<iframe
src="https://fm.loftwah.com/widget?album=run-it&file=Run%20it.mp3&variant=compact&shuffle=1&repeat=all&width=560"
width="100%"
height="240"
frameborder="0"
loading="lazy"
allow="clipboard-write">
</iframe>
</section> React / Next.js (JSX)
<section style={{ width: "100%" }}>
<iframe
src="https://fm.loftwah.com/widget?album=run-it&file=Run%20it.mp3&variant=compact&shuffle=1&repeat=all&width=560"
style={{ width: "100%", height: 240, border: 0, display: "block" }}
loading="lazy"
allow="clipboard-write"
title="LoftwahFM - Run It"
/>
</section> URL Flags
-
album: album slug, orallorplaylist -
file: track filename within the album (URL encoded) -
tracks: comma-separated list ofslug/File.mp3for custom playlist -
autoplay: Off by default for embeds (not recommended). Set to 1 to request autoplay, but browsers may block it. -
shuffle: 1|true to enable shuffle on load -
repeat:none|one|all(defaults to previous preference) -
variant:compact(recommended). Other variants are experimental and may change. -
unstyled: 1|true to avoid site global styles (Tailwind utilities only) -
brand: 0|false to hide the brand header (pill logo + LoftwahFM) -
width/w: max content width in pixels (content is centered inside the iframe); defaults: 720 (default), 560 (compact), 320 (mini)
Note: Browser autoplay policies may require a user gesture.