Skip to content

Code

The Code section is where you wire your Beacon page to anything that lives in the page’s <head>: an analytics provider, a verification meta tag, a chat widget, a font loader. It’s also where you toggle the small “Build your own Beacon” link at the bottom of your site.

Most people will paste an analytics snippet here once and never come back. That’s the right amount of attention to give this section.

Beacon does not include built-in analytics or third-party tracking. Your visitors’ data is not collected, shared, or processed by Beacon in any way. If you want to track visits, clicks, or other activity on your Beacon page, add your own analytics provider in the Analytics snippet field.

Your snippet is injected directly into the <head> of your Beacon page. It runs exactly as written, with no modifications, no wrapping, and no validation.

Plausible

<script defer data-domain="yourdomain.com" src="https://plausible.io/js/script.js"></script>

Umami

<script defer src="https://your-umami-instance.com/script.js" data-website-id="your-site-id"></script>

Google Analytics

<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
</script>

Fathom

<script src="https://cdn.usefathom.com/script.js" data-site="XXXXXXX" defer></script>

Any provider that uses a <script> or <meta> tag will work. This includes Meta Pixel, TikTok Pixel, Hotjar, Microsoft Clarity, PostHog, Mixpanel, Simple Analytics, and others.

When the field has content, the section’s status chip reads Tracking enabled. When it’s empty, the chip reads No tracking.

The Custom head scripts field lives just below Analytics. Use it for anything in <head> that isn’t analytics. Examples:

  • Site verification meta tags (Google Search Console, Pinterest, Bing Webmaster, etc.)
  • Custom font loaders
  • Chat widget scripts
  • Open Graph or social meta overrides

Content is injected into <head> after the analytics snippet, in the order you typed it. Beacon does not wrap, validate, or modify what you paste here. Bad markup can break your site, so paste carefully.

A few Beacon widgets — RSS/YouTube/Substack feeds and the Letterboxd tile — pull from sources that browsers aren’t allowed to fetch directly for security reasons. Beacon routes those requests through a small caching helper service. By default that’s https://rss.ignyte.me/fetch?url=, hosted free for all Beacon users.

For most personal sites, leave the Custom feed loader field blank. The default is fine.

Set this field if you’d rather run your own copy — for higher-traffic sites, privacy reasons, or because you want to fully own every dependency your site has. Paste your worker’s URL ending in /fetch?url= (the ?url= suffix matters — Beacon URL-encodes the upstream URL after it).

For the full walkthrough — deploying the Cloudflare Worker, KV cache setup, custom domain — see the Self-hosted feed loader guide. The same guide also ships with Beacon at worker/README.md in your project folder.

A small “Build your own Beacon” link at the bottom of every page. On by default. It helps other creators discover Beacon. Uncheck the toggle to hide it on your site.

When the toggle is off, the section’s status chip reads Beacon footer link off. Otherwise it stays at the section’s overall summary (e.g., “Tracking enabled” or “All defaults”).

  • Beacon does not add any tracking, cookies, or analytics of its own.
  • Beacon does not modify, wrap, or proxy your analytics snippet.
  • Beacon does not validate your snippet. If you paste broken HTML, it will be injected as-is.