npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@geosuite/schema-templates

v0.3.2

Published

Curated, copy-paste-ready schema.org JSON-LD templates for Generative Engine Optimization (GEO).

Downloads

848

Readme

schema-templates

Curated, copy-paste-ready schema.org JSON-LD templates to help your site speak clearly to search engines and AI assistants.

Created and invented by Matteo Perino (LinkedIn). Maintained by GeoSuite(Matteo Perino).

CI npm version npm downloads License: MIT

Why JSON-LD matters for GEO

Generative Engine Optimization (GEO) is the practice of making your content legible to AI assistants — ChatGPT, Perplexity, Gemini, Claude, Google's AI Overviews, and the long tail of LLM-powered search surfaces. These systems do not run a full browser the way Googlebot does; they parse the markup they find. Structured data in JSON-LD is the most explicit, least ambiguous way to tell a machine what a page is about: who wrote it, what product is on offer, what steps a how-to takes, what a term means.

JSON-LD is necessary but not sufficient. It will not, on its own, cause an AI to cite you. Authority, freshness, factual accuracy, and how often your content is referenced elsewhere matter at least as much. But valid, accurate structured data removes a class of avoidable failures: it prevents the AI from guessing your prices, your author, your FAQ answers, or whether a number on the page is a benchmark or a typo. Treat these templates as the floor, not the ceiling.

How to use these templates

  1. Pick a template from the catalog below that matches the page you are marking up.
  2. Copy the file from templates/. Each placeholder is wrapped in double curly braces, e.g. {{COMPANY_NAME}}.
  3. Replace every placeholder with real values. Do not leave {{...}} in production output — most validators will flag them, and AI parsers will treat them as literal text.
  4. Drop the resulting JSON into a <script type="application/ld+json"> tag inside your <head>. One block per page is fine; multiple blocks per page are also valid.
  5. Validate (see Validators section).
  6. Look at examples/ for a fully populated version of each template using a fictional Italian SaaS company so you can see what realistic values look like.

Each template ships with only the properties that are truly recommended for that use case. We have intentionally avoided padding templates with every optional schema.org field — extra noise dilutes the signal. If you need a property that is not in a template, consult schema.org directly and add it yourself.

Catalog

| Schema type | Use case | Template | Example | |---|---|---|---| | SoftwareApplication | SaaS / app product page | templates/SoftwareApplication.json | examples/SoftwareApplication.example.json | | HowTo | Step-by-step tutorial page | templates/HowTo.json | examples/HowTo.example.json | | DefinedTerm | Single glossary entry | templates/DefinedTerm.json | examples/DefinedTerm.example.json | | DefinedTermSet | Glossary index page | templates/DefinedTermSet.json | examples/DefinedTermSet.example.json | | FAQPage | FAQ section / page | templates/FAQPage.json | examples/FAQPage.example.json | | Dataset | Benchmark, study, or report | templates/Dataset.json | examples/Dataset.example.json | | BreadcrumbList | Site navigation breadcrumbs | templates/BreadcrumbList.json | examples/BreadcrumbList.example.json | | Organization | Company / about page | templates/Organization.json | examples/Organization.example.json | | Article (BlogPosting) | Blog post or editorial article | templates/Article.json | examples/Article.example.json | | ItemList | Comparison / listicle / ranking | templates/ItemList.json | examples/ItemList.example.json | | ProfilePage | Author bio page | templates/ProfilePage.json | examples/ProfilePage.example.json | | Product | Physical or digital product | templates/Product.json | examples/Product.example.json | | Review | Standalone review of any item | templates/Review.json | examples/Review.example.json |

Validators

After replacing placeholders, run your JSON through at least one of these:

  • Schema.org Validator — checks that your JSON-LD conforms to the schema.org vocabulary. The most strict and the most useful for generic JSON-LD.
  • Google Rich Results Test — checks the subset of properties Google uses for rich results. Helpful but narrower than the schema.org validator.
  • The bundled validate.js script in this repo runs a fast structural sanity check (@context, @type, required fields) without any network calls. Run it with npm run validate or node validate.js.

The recommended order is: validate.js first to catch typos, then the schema.org validator, then the Google test if you specifically care about Google rich results.

Repo scripts

npm run validate   # local structural check on every templates/*.json and examples/*.json
npm test           # node --test test/

No runtime or dev dependencies. There is no build step.

Contributing

We welcome new templates and improvements to existing ones. Please read CONTRIBUTING.md before opening a PR. The short version: every new template must (a) follow the file-naming convention, (b) ship a matching examples/*.example.json with realistic values, (c) declare its required fields in validate.js, and (d) pass npm run validate and npm test.

CLI (0.2+)

A small geosuite-schema CLI ships alongside the templates:

npm install -g @geosuite/schema-templates
# or run without installing:
npx @geosuite/schema-templates list

geosuite-schema list                                 # list available types
geosuite-schema show Product                         # print the raw template
geosuite-schema fill FAQPage --url https://example.com/faq --ai

The first two commands are deterministic and don't touch the network. fill needs --ai and an LLM API key — there's no honest way to populate the placeholders from a URL without one.

AI mode

export OPENAI_API_KEY=sk-…       # or ANTHROPIC_API_KEY=sk-ant-…
geosuite-schema fill Organization --url https://example.com --ai

What the CLI sends to the provider:

  • The chosen template (which is public anyway — same as templates/<Type>.json).
  • The page's <title> and ~8 KB of stripped visible text.

What it doesn't send:

  • The full HTML, scripts, or anything off-page.

Costs land under a cent for a single page on small models (gpt-5-mini, claude-haiku-4-5). Don't enable --ai against URLs you wouldn't paste into the provider's UI.

Related: GeoSuite open-source tools

schema-templates is part of a small family of zero-dependency CLIs we maintain to make Generative Engine Optimization (GEO) measurable from the terminal:

The same checks are also surfaced as a hosted product at trygeosuite.it for teams who want history, alerts, and CTAs wired into their content pipeline.

Creator

Created and invented by Matteo PerinoLinkedIn · [email protected].

Ideated, designed and validated by Matteo Perino. Implementation written with AI assistance, maintained under GeoSuite.

License

MIT — © 2026 Matteo Perino and GeoSuite.