Open Source Tool

seo-sidecar

A FastAPI + nginx Server Side Include sidecar that injects fresh Schema.org JSON-LD into your live sites without redeploys or cron jobs. Push structured data via HTTP. nginx serves it on the next request. MIT licensed.

PyPI 0.2.0 GitHub source Zenodo DOI
Install from PyPI →

What problem this solves

Schema.org JSON-LD is the highest-leverage SEO signal for Google rich results and AI citation. But on a typical static site, updating schema means a code change, a rebuild, a deploy, and a cache invalidation. For sites that need fresh structured data (event-driven content, real-time pricing, dynamic reviews), the redeploy loop is too slow.

seo-sidecar separates schema from code. Your nginx still serves static HTML at full speed. A FastAPI sidecar process holds the latest JSON-LD for each page. nginx Server Side Include (<!--#include virtual="/__schema?path=$uri" -->) pulls the schema in on every request. Push new schema → next request shows it. No redeploy.

Quick install

pip install seo-sidecar
seo-sidecar --port 9090 &

Then add to your nginx config:

location ~ /__schema {
    internal;
    proxy_pass http://127.0.0.1:9090/schema?path=$uri;
    proxy_intercept_errors on;
    error_page 404 500 502 503 504 = @schema_empty;
}
location @schema_empty { return 200 ""; }

location / {
    ssi on;
    # Then in your HTML: <!--#include virtual="/__schema?path=$uri" -->
}

Production usage

seo-sidecar is currently deployed across the entire ThatWebHostingGuy hosting substrate, serving 130+ live client sites. Every page on the network gets fresh Schema.org JSON-LD without a single redeploy.

Companion software: aio-surfaces generates the AI-citation surface files (llms.txt, aeo.json, entity.json, brand.json). The two tools together give you the complete engine optimization stack.

Citation

@software{anady2026seosidecar,
  author    = {Anady, Joseph W.},
  title     = {seo-sidecar},
  year      = {2026},
  url       = {https://pypi.org/project/seo-sidecar/},
  doi       = {10.5281/zenodo.20405297},
  license   = {MIT}
}
Star on GitHub →