Documentation

Lifeline docs

Everything you need to keep your site online: from adding it, to moving the domain onto Cloudflare, to what visitors see during an outage.

01Getting started

  1. 1Create an account at lifeline.dev/signup and confirm your email.
  2. 2Click Add site and enter your homepage address, e.g. https://yourbusiness.com.
  3. 3Verify ownership (below). Monitoring starts straight away and the first crawl (snapshot + audit) is queued.
  4. 4Connect Cloudflare to switch on automatic failover. Monitoring, snapshots, the audit and alerts work without it.

A checklist on the site's Overview shows what's done and what's next until the site is fully protected.

02Verify ownership

Lifeline only copies a site after its owner proves control of it. Pick one method on the site's Overview, then click Verify now:

Option A: upload a file

Create the file shown in the dashboard at /.well-known/lifeline-….txt containing the token shown.

Option B: meta tag

Paste the <meta name="lifeline-verification" …> tag into your homepage's <head>. On WordPress, most SEO plugins have a field for verification tags, or use a “header scripts” plugin.

Option C: connect Cloudflare

A Cloudflare token scoped to your domain proves ownership on its own.

A domain can only be protected by one Lifeline account. If someone else already verified yours, adding it is refused; contact hello@lifeline.dev if it's really yours.

03Connect your DNS provider

The easiest way to turn on failover. Lifeline reads your nameservers, shows the company that runs your DNS and gives you one button. You approve Lifeline there once; nothing to paste, no records to edit.

  1. 1Open the site in your dashboard. The card at the top says who runs your DNS, for example Your DNS is at GoDaddy.
  2. 2Click Connect, sign in at your provider and approve Lifeline. Approving proves you own the domain, so the site is verified at the same time.
  3. 3That's it. Lifeline lowers the record's TTL to 60 seconds and issues a certificate for your domain on its own edge while your site is healthy.

What happens during an outage

After 2 failed checks confirmed from a second location, Lifeline points your domain at its edge, which serves the saved copy over HTTPS with your outage banner. Visitors switch over as DNS caches expire, usually within a minute. When your server answers again for 3 checks in a row, the original records go back exactly as they were.

Providers with one-click connection

Cloudflare, DigitalOcean, DNSimple (sign in and approve), GoDaddy and IONOS (Domain Connect), Spaceship (API key from its API manager). Other providers can't let apps connect yet; Lifeline still monitors, snapshots and alerts, and the alert email names the one record to change by hand. If your domain is on Cloudflare you can also connect with a token for the instant, edge-level switch.

Lifeline never edits anything while your site is healthy, apart from lowering the TTL once. Disconnect any time from the site's Settings; records are restored and the validation records removed.

04Put your domain on Cloudflare

Failover works by switching visitors to your snapshot at Cloudflare's edge, so your domain must use Cloudflare's nameservers. Your website stays where it is; only DNS moves. Cloudflare's free plan is enough.

  1. 1Sign up at dash.cloudflare.com and click Add a domain. Choose the Free plan.
  2. 2Cloudflare scans your existing DNS records. Compare them with your current DNS (website A/AAAA/CNAME records, MX for email, TXT for SPF/DKIM/verification). Add anything missing before you switch, or email can break.
  3. 3Cloudflare shows you two nameservers (like rachel.ns.cloudflare.com and tim.ns.cloudflare.com). Yours will differ.
  4. 4At your registrar (where you bought the domain), replace the current nameservers with exactly those two, and remove any others. See the steps by registrar.
  5. 5Back in Cloudflare click Check nameservers now. It usually activates within minutes to a few hours; Cloudflare emails you when it does.

Before you switch

  • Turn off DNSSEC at your registrar first if it's on. Old DNSSEC keys make the domain fail to resolve after the move. You can re-enable it later with Cloudflare's DS record.
  • Mail records stay “DNS only” (grey cloud): MX, and any autoconfig, autodiscover or DKIM CNAMEs.
  • Website records should be “Proxied” (orange cloud). Failover only reaches visitors whose traffic goes through Cloudflare.
  • Set SSL/TLS → Overview to Full (strict) if your host has a valid certificate (most do), or Full otherwise.
Right after the switch, you may see an SSL error for a few minutes while Cloudflare issues your certificate. It clears on its own.

05Nameserver steps by registrar

Menu names change from time to time, but the setting is always called “nameservers”. Enter both Cloudflare nameservers and remove every other one.

GoDaddyDomain Portfolio → select the domain → DNS → Nameservers → Change Nameservers → “I'll use my own nameservers”.
NamecheapDomain List → Manage → Nameservers → choose “Custom DNS” → enter both → click the green tick.
SpaceshipDomain → Nameservers & DNS → Change → custom nameservers. If a “Connection” to your host is shown, disconnect it first, or it may put the host's nameserver back.
PorkbunDomain Management → the domain → Details → Authoritative Nameservers → Edit.
Squarespace Domains (ex-Google Domains)Domains → the domain → DNS → Domain Nameservers → Use custom nameservers.
HostingerhPanel → Domains → the domain → DNS / Nameservers → Change nameservers → enter both.
IONOSDomains & SSL → the domain → Nameservers → Use custom nameservers.
Name.comMy Domains → the domain → Manage Nameservers → replace the defaults.
Cloudflare RegistrarNothing to do: domains registered at Cloudflare already use Cloudflare's nameservers.

Not listed? Search your registrar's help for “change nameservers”. Lifeline reads your nameservers straight from the registry, so the dashboard updates as soon as you save; use Check again on the site's Overview if you're waiting.

06Connect Cloudflare to Lifeline

  1. 1On the site's Overview, click Open Cloudflare. The token form opens pre-filled with the three permissions Lifeline needs.
  2. 2Under Zone Resources choose Include → Specific zone → your domain (recommended), then Continue to summary → Create Token.
  3. 3Copy the token, paste it into Lifeline and click Connect.
PermissionWhy
Workers Scripts · EditUpload the fallback Worker to your account (switched off)
Workers Routes · EditSwitch it on during an outage, off afterwards
Zone · ReadFind your domain in your account

Nothing else: no DNS, billing or other settings. The token is stored encrypted and you can revoke it in Cloudflare at any time. Lifeline keeps the Worker in your account up to date automatically.

07How failover works

  • Lifeline checks your site every 60 seconds. A failure is re-checked after 15 seconds.
  • After 2 failures in a row, a second location on a different network checks too, so a network blip near our checker never fails your visitors over.
  • If it's really down, the fallback route is attached: visitors get your latest snapshot, served from Cloudflare's edge, with your outage banner. Worst case is about 80 seconds from failure to fallback.
  • Forms and checkout are paused with a clear message instead of failing silently. Pages that aren't in the snapshot return a friendly “temporarily unavailable” page with status 503, which tells search engines to come back later.
  • After 3 clean checks, the route is removed and live traffic resumes. You get an email at every step.
  • While your site is healthy, Lifeline isn't in the request path at all: 0 ms overhead.

08Run a failover drill

On the site's Overview, Run a failover drill serves the snapshot to real visitors so you can see exactly what they'd get. Click End drill when you're done; drills end automatically after 60 minutes.

In the site's Settings → Outage banner: write your own message, pick Dark, Light, Amber or your brand colour, place it at the top or bottom, and choose whether to show when the copy was saved. The preview updates as you type; changes reach the live fallback within about 10 seconds.

10Snapshots

  • Each crawl starts at your homepage and sitemap and saves pages, images, stylesheets, scripts and fonts.
  • Skipped automatically: /cart, /checkout, /account, /login, /admin, /wp-admin and similar private areas, plus anything your robots.txt disallows. Add more under Settings → Exclude paths.
  • A crawl is rejected if the homepage fails, if more than 30% of pages error, or if it finds under half the pages of the current snapshot. The last good copy stays live.
  • Snapshots are stored on Cloudflare R2, independent of Lifeline's own servers: if Lifeline itself has an outage, your fallback still works.
  • Browse any page of the current snapshot from the Snapshot tab.

11Site audit

Every crawl runs 47 checks. You're alerted only when something newly breaks; everything else waits for the weekly report.

Links · 4

Broken internal link · Broken external link · Link goes nowhere · Internal link uses http://

Content · 6

Missing image · Missing stylesheet or script · Mixed content · Possible spelling or grammar mistake · Placeholder text left in page · Very little text on page

SEO · 11

Missing <title> · Title longer than 65 characters · Duplicate title · Missing meta description · Meta description longer than 170 characters · Duplicate meta description · Missing <h1> · More than one <h1> · No canonical URL · Page is set to noindex · Missing Open Graph tags

Accessibility · 9

Images without alt text · Missing lang attribute · Form fields without a label · Links with no accessible name · Buttons with no accessible name · Heading levels skip · Viewport missing or blocks zoom · Duplicate id attributes · Iframe without a title

Forms · 5

Form submits over http:// · Form action URL is missing (404) · Form without a submit button · Form field without a name · Email field isn't type="email"

Sitemap & robots · 5

No sitemap.xml found · Sitemap lists a broken URL · Sitemap lists a redirecting URL · Pages missing from the sitemap · No robots.txt

Performance · 4

Slow server response · HTML document over 300 KB · Image over 500 KB · Response isn't compressed

JavaScript · 3

Uncaught JavaScript error · Error logged to the console · Request failed while loading the page

12Alerts, webhooks and reports

  • Email alerts go to your account address. Add up to 5 more in Settings → Alert recipients; each has to confirm before receiving anything.
  • Webhook: Lifeline POSTs JSON to your URL with a Slack-compatible text field, plus site, type, message, at and dashboard. Paste a Slack or Discord incoming-webhook URL and it just works.
  • A weekly report summarises uptime, incidents, snapshot and open issues.

13Public status page

Tick Settings → Public status page to publish lifeline.dev/status/yourdomain.com: current status, 30 days of uptime and recent incidents. Issues and settings are never shown.

14LifelineBot and firewalls

Checks and crawls identify themselves as LifelineBot/1.0 (+https://lifeline.dev/bot). If Cloudflare challenges them, the dashboard shows Bot blocked and outages can't be detected until it's fixed. Your site itself is unaffected.

  1. 1In Cloudflare open your domain → Security → Bots and turn off Bot Fight Mode. On the free plan this is the usual cause, and firewall rules can't override it.
  2. 2If it's already off, go to Security → WAF → Custom rules, create a rule where User Agent contains LifelineBot, and set the action to Skip (all remaining custom rules, rate limiting and managed rules).
  3. 3Also check Security → Settings for “Block AI bots” and security plugins on your server (Wordfence and similar) that block unknown bots.

The notice clears on the next check once Lifeline gets through. More about LifelineBot.

15Plans and billing

PlanPriceSitesPages per siteSnapshots
BetaFree5300every 24 h
Site$19/mo1500every 24 h
Studio$79/mo101,000every 12 h
Agency$199/mo502,000every 6 h
  • Choose, upgrade or downgrade in Account → Plan. Changes are prorated by Stripe.
  • Cancel any time: you keep your plan until the end of the paid period, then drop to the free plan.
  • If you downgrade below the number of sites you have, the newest extra sites are paused, never deleted, and resume automatically when you upgrade.
  • Manage billing opens Stripe's portal for your card, invoices and billing details.

16Troubleshooting

Verification fails

Make sure the file or meta tag is live on the exact address you added (including www or not), and that a caching plugin isn't serving an old homepage. Clear the cache and try again.

The dashboard still says “Needs Cloudflare”

Check the registrar lists only the two Cloudflare nameservers (a leftover old one is the most common cause), then click Check again.

SSL error after moving to Cloudflare

Wait a few minutes for Cloudflare to issue the certificate. If it persists, set SSL/TLS to Full and make sure your host has HTTPS enabled.

Error 522 or 525 from Cloudflare while the site is up

Cloudflare can't reach your server: check the A/AAAA records point to your host, and that the host doesn't block Cloudflare's IP addresses. Some hosting setups with their own CDN or firewall reject proxied traffic; ask your host to allow Cloudflare.

“Bot blocked”

See LifelineBot and firewalls.

Email stopped after the move

An MX or TXT record didn't come across. Copy them from your old DNS provider into Cloudflare and keep them DNS only.

17Security and your data

  • Cloudflare tokens are encrypted at rest (AES-256-GCM) and limited to the permissions above.
  • Lifeline only snapshots public pages of sites you've verified, and never submits your forms.
  • Deleting a site removes its Worker from your Cloudflare account and deletes every snapshot, incident and report. Deleting your account does this for all sites.

Still stuck? Email hello@lifeline.dev. A human reads every message.