Meteor.js Integration via Atmosphere

May 13, 2026 ยท View on GitHub

ostrio:spiderable-middleware is the Atmosphere package that routes bot traffic from Meteor's WebApp layer to the ostr.io pre-rendering engine.

What it does

The package plugs into WebApp.connectHandlers and inspects every incoming request. When the User-Agent matches a known crawler, social previewer, or AI fetcher, the request is transparently proxied to the ostr.io rendering endpoint with your Basic auth credentials. Regular browser traffic is passed through to Meteor, untouched.

When to use

  • You run a Meteor.js app and want pre-rendering wired up through the Meteor build system.
  • You want reactive server-side detection paired with client-side detect-prerendering-meteor ReactiveVar integration.
  • Deploying behind Meteor Galaxy, Cloud Run, or a plain Node server where you can add the Atmosphere package.

For infrastructure-level alternatives that do not require editing application code, see Related below.

Legacy <meta name="fragment"> markup (optional)

The legacy _escaped_fragment_ crawling scheme was deprecated by Google in 2015 but is still honored by some non-Google crawlers. If you care about those edge cases, add the meta tag to your HTML shell:

<html>
  <head>
    <meta name="fragment" content="!">
  </head>
</html>

Modern crawlers rely on the User-Agent check that ostrio:spiderable-middleware performs automatically, so this markup is not required for Googlebot, Bingbot, facebookexternalhit, meta-externalagent, AI fetchers, or any crawler that advertises itself via User-Agent.

For Meteor apps deployed behind a reverse proxy or CDN, you can also enable pre-rendering without adding the Atmosphere package: