Ship code to any site, instantly.
Logic Bomb gives you a single <script> tag that hot-loads HTML, CSS, and JavaScript onto any page you add it to. This guide walks you through everything in under five minutes.
Getting started
- 1
Create a client
Open the dashboard and click New Client. Each client represents one injection target — typically one website. We generate a uniqueslug for it.
- 2
Write your code
Click your new client to open the editor. You get three Monaco editors: HTML, CSS, and JavaScript. Edit. Hit save.
- 3
Drop in the tag
Copy the script tag from the client's row and paste it into the <head> of any page. That's it — your code is now live.
The script tag
Every client gets a single tag. Drop it on any site and your HTML, CSS, and JavaScript will be injected at runtime.
<script src="https://your-domain.com/api/script/your-slug.js" async></script>The async attribute means the tag never blocks page rendering. The script bundle is small (< 5KB gzipped) and is cached at the edge.
The three editors
Each client has three independent editors. They're saved together, but injected differently:
Inserted into the element matching your target selector (default: body).
Appended as a <style> tag in the document <head>. Scoped to the page, not isolated.
Runs in page context after HTML & CSS injection. Has full access to the host site's DOM and globals.
Target selectors
Your HTML can land anywhere on the page. Use any valid CSS selector to target the parent element your HTML will be inserted into.
body → appended to <body> (default)
#root → into the React mount point
.product-grid > * → into the first matched grid
[data-slot="cta"] → into a custom data-slotIf the selector doesn't match anything, the script logs a warning and falls back to body.
Caching & propagation
Saved scripts are cached at the edge with stale-while-revalidate. Visitors get the cached version instantly while a fresh build downloads in the background.
- P50 propagation: ~10 seconds globally
- P99 propagation: under 30 seconds
- Force refresh: add ?v=<timestamp> to bust the cache immediately