# Open sourcing MonsterWriter, piece by piece

> Source: <https://www.monsterwriter.com/open-source.html>
> Published: 2026-08-22 11:21:16+00:00

# We are open sourcing MonsterWriter, piece by piece

Two components are public already. The rest follow, one at a time.

I believe in open source, and AI has made me believe in it more, not less. Any decent model can already reproduce the rough shape of this code from a description. I would much rather someone used the original than had an AI copy it, because then there is at least a chance that a bug fix finds its way back to me.

There is also a habit behind this that I call **Minimize Code, Maximize Use Cases**: you keep scanning your own code for the generic pattern hiding inside the specific one, and pull it out as a component that stands on its own. I wrote the idea up in a [short blog post](https://medium.com/@wolfoliver/challenging-the-single-responsibility-principle-9800f39c186f) if you want the longer version.

Which is why MonsterWriter, an academic writing tool I have built solo since 2017, contains so little that is actually about academic writing. The rest is general purpose infrastructure: the backend, the form layer, the editor internals. Worth more to you as a dependency than to me as a moat, so it goes out one component at a time.

## Available now

Both are MIT licensed and usable outside MonsterWriter today.

### LinkedRecords

Open sourceThe backend MonsterWriter runs on

A backend-as-a-service your single-page app talks to directly, with no backend code. Authorization is not written in server code, it is asserted as data: subject–predicate–object facts stored in the same triple store you query your data with. Real-time collaboration is built in. Self-hostable, so you can run your own.

### Declarative Forms

Open sourceForms as a function call, not a component tree

Ask the user for an object the way prompt() asks for a string. You await a function and get data back: no mounting, no form state, no framework dependency. Ten field kinds, stacked dialogs, live descriptors where options and visibility depend on the current values, and async selects that load from the server.

[wolfoo2931/declarative-forms](https://github.com/wolfoo2931/declarative-forms)MIT licensed

## Coming next

These are the pieces I can already name. No dates, and no fixed order: each one is announced here when it can stand on its own, not before.

### HTML Razer

PlannedA grammar for your HTML, enforced

You describe the grammar your HTML is supposed to follow, and the library normalizes whatever HTML you throw at it until it conforms. It repairs misalignments, applies the rules you declared, and inserts missing markup where the grammar calls for it. All of it declarative: you describe the shape you want, not the traversal that gets you there.

### Presspack

PlannedTemplates that declare what they need

A specification for LaTeX and HTML template formats. A template declares the inputs it needs, and Presspack fills it in once those inputs are supplied. It pairs directly with Declarative Forms, because the inputs a template declares can be handed straight to the form layer and asked for.

### The editor

PlannedBlock based, collaborative, academic

The editor MonsterWriter is built on: block based, collaborative, and made for academic writing, with footnotes, references and cross references. The whole thing is pluggable and extendable. It is being refactored now to work outside the app, which makes it the largest piece on this list.

### File tree

PlannedTree structures backed by LinkedRecords

The file tree used in the LaTeX workspace. It renders any tree structure and stores it directly in LinkedRecords, so persistence, sharing and permissions come from the backend instead of from code you write around it.

### And others

PlannedNot identified yet

More will surface as the code keeps getting scanned for the next generic pattern. If a piece of the stack would be useful to you, saying so is the fastest way to move it up the list.

## What this does not mean

MonsterWriter the product stays a paid app. Nothing changes for people already using it, and nothing is being deprecated. Opening the components is additive, and it is also the groundwork for where MonsterWriter is heading: **Bring Your Own Backend**, where you run the backend yourself and your documents never leave your infrastructure. That promise means nothing unless you can read and build that backend without me.

If you want to follow along, watch the repositories. New components will be announced there and listed on this page as they land.

Links

[github.com/wolfoo2931/linkedrecords](https://github.com/wolfoo2931/linkedrecords)· LinkedRecords

[github.com/wolfoo2931/declarative-forms](https://github.com/wolfoo2931/declarative-forms)· Declarative Forms

[The story behind the stack](/building-linkedrecords.html)· how this got built

[info@monsterwriter.app](mailto:info@monsterwriter.app)· Get in touch
