KeystoneJS vs Substack

KeystoneJS is a free, open-source Node.js/TypeScript framework that generates a GraphQL API and admin UI from a schema — a developer tool for building custom…

Best for KeystoneJS: Developers building a custom application or content-driven product who want an auto-generated GraphQL API and admin UI from a TypeScript schema, with full self-hosting control, fit KeystoneJS best.
Best for Substack: Independent writers or creators who want to launch a paid newsletter, podcast, or video publication instantly, without writing code or managing infrastructure, fit Substack best.

At a Glance

 KeystoneJSSubstack
Primary categoryCMSCMS
RatingNot documentedNot documented
Pricing modelOpen Sourcefreemium
Starting priceFreeFree
Free planNot documentedYes
Free trialNot documentedNot documented
PlatformsWebWeb
Team collaborationNot documentedNot documented
AI featuresNot documentedNot documented
Public APIYesNot documented

Key Differences

Target User

KeystoneJS: KeystoneJS is a developer framework requiring Node.js and TypeScript skills — it is a coding tool, not a no-code platform.

Substack: Substack requires no coding at all; writers sign up and start publishing directly through a hosted interface.

The required skill set determines whether a solo non-technical creator can use the tool without help.

Content Model Flexibility

KeystoneJS: KeystoneJS lets developers define a custom schema, which automatically generates a GraphQL API with CRUD, pagination, sorting, and filtering plus a customizable admin UI.

Substack: Substack has a fixed content model built around posts, podcasts, and video — there is no custom schema or data modeling.

Custom schema support matters for building bespoke applications; a fixed model matters less when the goal is simply publishing.

Built-In Monetization

KeystoneJS: KeystoneJS has no documented monetization or payment features — it is a CMS/API backend, not a publishing business platform.

Substack: Substack has built-in paid subscriptions, with writers keeping 90% of subscription revenue.

For anyone wanting to charge readers directly, built-in payments remove significant engineering work.

Hosting Responsibility

KeystoneJS: KeystoneJS requires self-hosting or third-party PaaS deployment (DigitalOcean, Heroku, Render, Vercel, AWS, Azure, Google Cloud) — there is no official managed hosting product.

Substack: Substack is fully managed and hosted by Substack itself, with no deployment step required by the writer.

Hosting responsibility affects both technical overhead and ongoing operational cost.

Cost Structure

KeystoneJS: KeystoneJS is fully free and open source under the MIT license; paid enterprise support is available separately through Thinkmill, not as a packaged pricing tier.

Substack: Substack is free to publish on but takes a 10% cut of paid subscription revenue, on top of separate payment-processing fees.

One model has no ongoing platform cost at all; the other's cost scales directly with monetization success.

Feature-by-Feature

Platform Type & Audience

FeatureKeystoneJSSubstack
No-code / non-technical useUnavailableAvailable
Custom schema/data modelingAvailableUnavailable
Auto-generated GraphQL APIAvailableNot documented
Auto-generated admin UIAvailableNot documented

Publishing & Monetization

FeatureKeystoneJSSubstack
Built-in paid subscriptionsUnavailableAvailable
Multi-format publishing (podcast/video)Not documentedAvailable
Built-in reader/discovery networkUnavailableAvailable

Hosting & Cost

FeatureKeystoneJSSubstack
Self-hosted deploymentAvailableUnavailable
Managed/hosted optionUnavailableAvailable
Free to use core productAvailableAvailable
Paid enterprise supportAvailableNot documented

Pricing Compared

Starting price reflects the lowest paid tier, not the full cost for every team size or usage level.

KeystoneJS

Open Source — Free N/A

Substack

Free publication — Free N/A
Paid subscriptions — 10% of subscription revenue plus Stripe fees Per transaction

Pros & Cons

KeystoneJS

Pros

  • Completely free, open-source, self-hosted with no licensing fees
  • GraphQL API and admin UI generated automatically from schema
  • Strong TypeScript support and Prisma-based migrations
  • Fine-grained, code-defined access control
  • Backed by an experienced consultancy (Thinkmill) with enterprise delivery history

Cons

  • No official managed hosting offering from the Keystone project
  • Requires Node.js and database operational expertise to self-host
  • Smaller ecosystem and plugin marketplace than Strapi or WordPress
  • GraphQL-first design has a learning curve for teams used to REST
  • Migration from older Keystone (v5/Express/MongoDB) versions requires significant rework

Substack

Pros

  • Free to start with no upfront cost to launch a publication
  • Writers retain ownership of their content and subscriber list, including email addresses
  • Built-in payments and discovery network remove the need for separate tools
  • Supports multiple formats (newsletter, podcast, video) under one publication
  • Large and active reader ecosystem via Notes and cross-publication recommendations

Cons

  • 10 percent platform fee plus Stripe fees can be significant for high-earning publications
  • Limited design customization compared to standalone website builders
  • Content moderation controversies have drawn criticism for allowing extremist newsletters
  • No self-serve control over payment processor -- tied to Substack's Stripe integration
  • Revenue depends heavily on subscriber willingness to pay, which varies widely by niche

Use Cases

Choose KeystoneJS: Developers building a custom application or content-driven product who want an auto-generated GraphQL API and admin UI from a TypeScript schema, with full self-hosting control, fit KeystoneJS best.
Choose Substack: Independent writers or creators who want to launch a paid newsletter, podcast, or video publication instantly, without writing code or managing infrastructure, fit Substack best.
Need both: A company could build its core product or documentation site on KeystoneJS as a headless content backend while separately running a content-marketing newsletter on Substack to reach and monetize an audience.

KeystoneJS

  • Custom application backends — Development teams use KeystoneJS to build backends for web and mobile applications with a generated GraphQL API.
  • Content-driven websites — Teams build static and dynamic marketing sites and blogs powered by Keystone's content model and admin UI.
  • Multi-channel content distribution — Organizations use Keystone's GraphQL API to distribute content across web, mobile and other channels from one source.

Substack

  • Independent journalism — Journalists leaving traditional media use Substack to launch paid newsletters and build a direct reader relationship.
  • Niche expert newsletters — Subject-matter experts in fields like finance, tech, and law publish analysis newsletters monetized through paid subscriptions.
  • Podcast and video creators — Creators combine written posts with podcast episodes or video under one subscription, diversifying format without leaving the platform.

Frequently Asked Questions

Is KeystoneJS a good fit for building a newsletter site?

Not directly — KeystoneJS is a general headless CMS/GraphQL framework for developers, not a purpose-built newsletter platform like Substack.

Does Substack require developers to set up?

No. Substack is a hosted, no-code platform; writers can start publishing with no contract or upfront fee.

Is KeystoneJS free?

Yes, it's free and open source under the MIT license. Paid enterprise support is available separately through Thinkmill, the consultancy that maintains it.

Can KeystoneJS handle payments or subscriptions?

This is not documented as a KeystoneJS feature — it's a schema-driven API/admin-UI framework, not a monetization platform.

Who maintains KeystoneJS?

Thinkmill, an Australian design and development consultancy, has maintained it since the project's first commit in 2013, with contributions from 250+ people.

Which tool requires ongoing infrastructure management?

KeystoneJS requires self-hosting or third-party PaaS deployment. Substack is fully managed by Substack, with no hosting responsibility for the writer.

Read the full KeystoneJS review · Read the full Substack review