Install one Elixir package — SEO articles land as native Beacon pages.
Beacon is a self-hosted Elixir/Phoenix CMS with no external HTTP API — its content functions run in-process. So DraftSEO ships a small open-source companion package you add to your Phoenix app (like a WordPress plugin, but in Elixir): it mounts a token-authed route that creates and publishes real Beacon pages. Article images are copied into your site’s own Media Library, so every picture serves from your domain. No third-party service in the render path.
| Connection | DraftSEO companion package — an Elixir dep you add + a token in your config |
|---|---|
| Setup time | ~10 minutes, once |
| Content target | Native Beacon pages — real indexable pages under a path you choose |
| Image hosting | Your Beacon Media Library — copied onto your site, never hot-linked |
| Hosting | Self-hosted — DraftSEO calls your own Phoenix domain |
Who does what
Nothing — after the one-time install (add the companion dep, mount its route, set a token), the blog runs itself. Prefer control? Publish as drafts and hit publish in Beacon when you’re ready.
You build the product. The content brings the next readers.
Setup
Download the DraftSEO Beacon package, add it to your app’s mix.exs, and mount draftseo_routes() in your router — BEFORE beacon_site (Beacon’s catch-all route). Set your token + site in config.
~5 minutes
Connect a site → Beacon → paste your Site URL and the token, then pick which Beacon site and layout to publish to.
~3 minutes
Keywords in, articles out — created as native Beacon pages on your schedule.
Ongoing · zero clicks
What you win
Articles are native Beacon pages on your domain — crawlable and creditable to your site, not an embed.
Pages and images live on your own Beacon install — no third-party host to break or bill later.
Sites that publish weekly compound; autopilot makes weekly automatic.
FAQ
Not a built-in one — but Beacon pages are real, indexable pages, and that’s exactly where DraftSEO publishes. The companion creates each article as a native page under a path you choose (e.g. /blog).
Beacon has no external HTTP API — its content functions run inside your Phoenix app. The open-source DraftSEO companion is the bridge: it exposes one token-authed route that calls Beacon’s own publish functions. It’s the same idea as a WordPress plugin, just in Elixir.
On your own site. The companion copies each image into your Beacon Media Library, so they serve from your domain — never hot-linked from our servers.
The token lives in your app config and is stored encrypted by DraftSEO. Every request is checked in constant time, and the companion never logs it. Because Beacon is self-hosted, DraftSEO also sends a WAF-bypass header for sites behind Cloudflare.
No card required. Watch it land as a native page.