Monsterwriter

Show HN: Almost all of MonsterWriter's back end is open source

Last verified:

Visit Monsterwriter

What is Monsterwriter?

LinkedRecords is an open-source (MIT), generic backend-as-a-service for single-page applications, positioned as a Firebase or Convex alternative with a unique authorization model. The key innovation is that authorization is expressed as data rather than code: instead of writing permission rules in backend code, you assert them as facts using the same triple-store mechanism you use to query data. Your schema, relationships, and access control are all stored as data that the backend already knows how to enforce.

The tool was born from building MonsterWriter, a writing app for students and researchers. The developer wanted a backend that never needs migrations or auth code — no code changes when adding features, no database migrations when the data model evolves, and no authorization rules deployed to the server. LinkedRecords started in 2017 as a key-value store with streaming changes, allowing users to create attributes (long text, JSON, or files), get IDs, and subscribe to changes from any browser for real-time collaboration.

LinkedRecords uses RDF-inspired

Monsterwriter pricing

Pricing model: Freemium

LinkedRecords is open-source under MIT license and self-hostable, meaning users can run their own instance at no cost. MonsterWriter (the writing app that uses LinkedRecords as its backend) is a real product with paying users, but specific pricing details for MonsterWriter are not mentioned on this page. The backend itself has no licensing fees since it's MIT open-source.

Monsterwriter pros

  • Open-source under MIT license
  • No database migrations needed when data model evolves
  • No code changes required when adding features
  • No authorization rules deployed to server
  • Authorization expressed as data, not code
  • Self-hostable backend-as-a-service
  • Real-time collaboration with streaming changes
  • Triple-store mechanism for querying and authorization
  • Built-in permission predicates like $canRead and $isMemberOf
  • Schema-free data model
  • Models organizations, teams, and roles through facts
  • No custom backend code needed for access control
  • Constrained SQL client approach limits data damage
  • Decouples app layer from data layer completely
  • Automatic app updates while controlling data location
  • Generic backend usable across any single-page application
  • Supports long text, JSON, and file attributes
  • Subscribe to changes from any browser
  • Transitive queries with pattern matching like isA*
  • Compound queries in one request supported

Monsterwriter cons

  • Federation layer for cross-organization collaboration doesn't exist yet
  • Bring Your Own Backend feature not live in MonsterWriter yet
  • Only recently published GitHub repository
  • Documentation went up day before first public talk
  • Not a Notion replacement currently
  • MonsterWriter today is just a writing tool
  • Data lives on server, not on user's device like true local-first
  • No full SPARQL stack implementation
  • Solo side project with ambitious target
  • 8 years of evenings and weekends development so far

Frequently asked questions about Monsterwriter

What is LinkedRecords?

LinkedRecords is an open-source (MIT), generic backend-as-a-service for single-page applications, in the same space as Firebase or Convex, but self-hostable. Its core difference is the authorization model: instead of writing permission rules in backend code, you assert them as facts using the same triple-store mechanism you use to query data.

How does LinkedRecords authorization work?

Authorization works through facts (subject-predicate-object triples). LinkedRecords defines built-in permission predicates like $isAccountableFor, $isHostOf, $isMemberOf, and $canRead, and enforces them at the database level. You model organizations, teams, roles, and sharing patterns purely through facts with no custom backend code.

What makes LinkedRecords different from Firebase?

The main differentiator isn't real-time sync (CRDTs are now the go-to for collaboration). What makes LinkedRecords different is the authorization system expressed as data, not code. Your schema, relationships, and access control are all stored as data the backend already knows how to enforce, requiring no migrations or auth code changes.

Is LinkedRecords open source?

Yes, LinkedRecords is open-source under the MIT license. The source code is available at github.com/wolfoo2931/linkedrecords. The GitHub repository was published recently, and documentation went up the day before the first public talk about it.

What is the Bring Your Own Backend vision?

Bring Your Own Backend means letting users point MonsterWriter (a single-page application served from monsterwriter.com with always-latest version) at their own LinkedRecords instance. Users pick who runs their backend, their data never leaves their own infrastructure, and they still get automatic app updates. The backend only needs securitypatches and otherwise stays stable.

What types of data can LinkedRecords store?

LinkedRecords stores attributes which can be long text, JSON, or files. You create an attribute, get back an ID, and can subscribe to changes from any browser. The API supports creating long text with initial content, setting new content, and receiving deltas like insertions at specific positions.

How do you query data in LinkedRecords?

You query using facts with pattern matching. Examples include: find all todos with ['$it', 'isA', 'Todo'], transitive queries with ['$it', 'isA*', 'Book'] to find Biographies and Autobiographies, and compound queries in one request using findAll with multiple fact arrays. It's essentially a Postgres table with three columns and pattern matching.

What is the relationship between MonsterWriter and LinkedRecords?

MonsterWriter is the writing app for students and researchers (with citations, LaTeX export, cross-references, distraction-free writing) that was built first. LinkedRecords is the backend running behind MonsterWriter. The developer built MonsterWriter for 5 years (2018-2023) while keeping LinkedRecords development quiet, then resumed active LinkedRecords development in 2022.

Can organizations collaborate across different LinkedRecords instances?

Not yet. The vision includes two LinkedRecords instances exchanging facts with each while each organization retains full control of its own data, like email between Gmail and Outlook. However, the federation layer for this cross-organization collaboration doesn't exist yet. MonsterWriter today is just a writing tool, not a Notion replacement.

How long has LinkedRecords been developed?

It's been 8 years of evenings and weekends. The commit history starts in January 2017, went quiet for 5 years while the MonsterWriter editor was built (2017-2022), and has been steadily active again since 2022. The core idea — a generic, zero-migration, schema-free backend where authorization is data — has stayed the same throughout.

Categories

Use cases

Browse all AI tools on NeedAnAI