embed.

Add a QR code, hash generator, random string picker, base converter, or lorem ipsum widget to any website in under 60 seconds.

Free forever No signup No API key No rate limit Works offline WordPress · Wix · Squarespace · Google Sites · Webflow · HTML

Live preview

This QR code is running right now, in your browser, from the same 2-line snippet you'll paste on your site. Scan it — it works.

The snippet

<script src="https://tools.napdesigns.com/embed.js" defer></script>
<nap-qr text="https://your-site.com/"></nap-qr>

That's it. Change text to whatever you want the QR to encode — a URL, a WiFi login, a vCard, a phone number, anything.

Install on your platform

  1. Open the page or post in the block editor.
  2. Add a Custom HTML block where you want the widget.
  3. Paste the snippet from above.
  4. Preview or publish — the QR code renders inline.

Classic editor: switch to the Text tab and paste. Elementor / Divi / Bricks: use their HTML / Code widget.

  1. In the editor, click Add Elements → Embed & Social → Embed HTML.
  2. Choose Embed a widget and click Enter Code.
  3. Paste the snippet, click Update.
  4. Drag the box to size and place it. Publish.
  1. Edit the page and click the + to add a block.
  2. Choose Code and set language to HTML.
  3. Paste the snippet. Click Apply. Save the page.
  1. Click Insert → Embed → Embed code.
  2. Paste the snippet in the code field. Click Next → Insert.
  3. Publish the site.

Note: Google Sites sandboxes embeds in an iframe with fixed height — increase the iframe height so the widget isn't clipped.

  1. In the Webflow Designer, drag an Embed component onto the page.
  2. Paste the snippet in the code editor. Save & close.
  3. Publish.
  1. Open the HTML file in any editor.
  2. Paste the snippet where you want the widget to appear.
  3. Upload / reload. Done.

Widgets you can embed

<nap-qr>QR code — text, URL, WiFi, vCard <nap-hash>SHA-1/256/384/512 hash <nap-random>CSPRNG random string / password <nap-base>Number base converter <nap-lorem>Lorem ipsum placeholder text

How this compares

Feature@nap.codesElfsight / Fouita / typical widget SaaS
Free forever✓Free tier + paid upgrade
Signup requiredNoYes (email + account)
Rate limit / view capNoneUsually 1k–10k / month
Watermark / branding on free tierSmall line, removableYes, removable on paid
Runs client-side✓ (in visitor's browser)Server-side round-trip
Data leaves your siteNoYes (widget backend)
Works if widget host is downCached by browser SWBlank / broken
Custom styling / themingCSS attributesVendor dashboard only

FAQ

Do I need a developer account or API key?

No. Paste the two-line snippet on any page. The widget runs in your visitor's browser using nothing but standard HTML — no auth, no key, no callback URL.

How is this free? What's the catch?

No catch. The library is served from a static CDN (Cloudflare Pages), the widgets run entirely on the visitor's device, and I don't run any per-widget backend — so the marginal cost of one more embed is zero. A small "powered by @nap.codes" line appears under each widget; add hide-attrib to any tag to remove it.

Will it slow my site down?

The core library is ~4KB gzipped and loads with defer, so it never blocks first paint. The QR library (only loaded if you use <nap-qr>) is ~9KB gzipped, fetched on-demand from jsDelivr with an SRI hash. If your site has service worker caching, both files are then cached forever.

Does it work on mobile?

Yes. The widgets are responsive and touch-friendly, and every component uses Shadow DOM so your site's mobile CSS won't accidentally break the widget's layout.

Can I style the widgets to match my site?

Yes. Every component takes attributes for colors, sizes, and fonts. For example: <nap-qr text="..." fg="#1a1a1a" bg="#fff9f0" size="300"></nap-qr>. See the full attribute reference for every option.

Where's the data processed?

Entirely in the visitor's browser. QR encoding, hashing (via native crypto.subtle), random-string generation (via crypto.getRandomValues) — nothing is sent to a server. That's the whole point of using Web Components for this.

Can I use this commercially?

Yes, freely — for a client site, a SaaS marketing page, an internal tool, whatever. See terms.

What if I need something more advanced?

The API reference covers every attribute, event, and JS access pattern. If a widget is missing that you'd genuinely use, DM @nap.codes.

Advanced: for developers

Full attribute tables, JavaScript event listeners, theming options, framework integration (React, Vue, Svelte), and self-hosted setup: → Embed API reference.

Full API reference Source on GitHub