Skip to content
EditorStackPlayground

Open dataset: visual editor and page builder libraries

The complete EditorStack dataset — every product record with licences, pricing, capabilities and measured bundle sizes — as JSON and CSV under CC BY 4.0, with an open CORS policy and no API key.

Updated

TL;DR

  • The full dataset is available at /api/libraries.json and /api/libraries.csv with no key, no rate limit and CORS open to any origin.
  • It is licensed CC BY 4.0: use it commercially, build products on it, republish it — attribute EditorStack and link back.
  • The dataset includes our own measurement runs, so the bundle-size and time-to-editor numbers come with the versions, method and dates that produced them.

Downloads

| File | Format | Contents | |---|---|---| | /api/libraries.json | JSON | Every product record in full, plus both measurement runs | | /api/libraries.csv | CSV | One row per product, flattened for spreadsheets | | /api/schema.json | JSON Schema | Field definitions and allowed values | | /llms-full.txt | Markdown | Every page on the site as one document |

Every page also has a markdown twin: append .md to any URL. There is no key, no quota and no sign-up, and the CORS policy allows any origin.

curl -s https://www.editorstack.cc/api/libraries.json | jq '.libraries[] | select(.pricing.model == "open-source") | {name, bundle: .tech.bundle_size_min_gzip_kb}'

Licence

The dataset is published under Creative Commons Attribution 4.0. You may copy, redistribute, transform and build upon it, including commercially, provided you give credit. A link to editorstack.cc alongside the data satisfies that.

What is in a record

Each product record carries identity fields (slug, name, type, categories), licensing and pricing, technical facts (language, framework support, SSR, measured bundle size), a capability matrix, an extensibility block, repository and registry metrics, an argued best-for and worst-for list, optional scores with their written rationale, and a source list with access dates.

Two conventions matter when you consume it:

null means unverified, never zero. We leave a field empty rather than estimate it. If you aggregate this data, treat null as missing rather than as a false or a 0.

metrics.status tells you the freshness of the count fields. pending means the automated sync has not run against that record yet; not-applicable means the product has no npm package or public repository for those numbers to exist.

Measurements included

The JSON download embeds both measurement runs in full, not just the summary numbers:

  • measurements.bundles — per package: resolved version, raw and gzipped size, which modules were treated as external, and the bundler and Node versions used.
  • measurements.time_to_editor — per application: lines of code, direct dependency count, median time to a rendered editor, the number of runs, and any bundler workaround required.

The scripts that produced them are scripts/measure-bundles.mjs and scripts/measure-time-to-editor.mjs in the repository, and the benchmark applications are in benchmarks/. Running node scripts/measure-bundles.mjs --verify re-measures everything and exits non-zero if any published number has drifted.

Citing it

See how to cite for BibTeX and plain-text formats. If you publish something built on this data we would like to see it — open an issue on the repository.

Frequently asked questions

Do I need an API key?
No. Both endpoints are static files served with Access-Control-Allow-Origin set to *, so you can fetch them from a browser, a notebook or a server without registering.
How should I attribute the dataset?
Any clear credit works. 'Data from EditorStack (editorstack.cc), CC BY 4.0' with a link to the page you used satisfies the licence.
How often does the data change?
Facts change when products change; each record carries its own last_verified date. Repository and download metrics are refreshed by a daily automated job, and every substantive change is listed in the changelog.
What does null mean in the data?
Unverified. It never means zero. If we could not confirm a fact from a source we trust, the field is null and the site displays 'Unverified' rather than an estimate.

Written by the EditorStack Research Team. How we test and what we refuse to publish is on the methodology page.