{"slug": "open-sourcing-monsterwriter-piece-by-piece", "title": "Open sourcing MonsterWriter, piece by piece", "summary": "Oliver Wolf, the solo developer of MonsterWriter, announced he is open sourcing the academic writing tool's components, with two already released under the MIT license: LinkedRecords, a backend-as-a-service with built-in real-time collaboration, and Declarative Forms, a form library that treats forms as function calls. Future releases include HTML Razer, Presspack, the editor, and a file tree component, while MonsterWriter itself remains a paid product.", "body_md": "# We are open sourcing MonsterWriter, piece by piece\n\nTwo components are public already. The rest follow, one at a time.\n\nI 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.\n\nThere 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.\n\nWhich 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.\n\n## Available now\n\nBoth are MIT licensed and usable outside MonsterWriter today.\n\n### LinkedRecords\n\nOpen sourceThe backend MonsterWriter runs on\n\nA 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.\n\n### Declarative Forms\n\nOpen sourceForms as a function call, not a component tree\n\nAsk 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.\n\n[wolfoo2931/declarative-forms](https://github.com/wolfoo2931/declarative-forms)MIT licensed\n\n## Coming next\n\nThese 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.\n\n### HTML Razer\n\nPlannedA grammar for your HTML, enforced\n\nYou 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.\n\n### Presspack\n\nPlannedTemplates that declare what they need\n\nA 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.\n\n### The editor\n\nPlannedBlock based, collaborative, academic\n\nThe 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.\n\n### File tree\n\nPlannedTree structures backed by LinkedRecords\n\nThe 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.\n\n### And others\n\nPlannedNot identified yet\n\nMore 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.\n\n## What this does not mean\n\nMonsterWriter 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.\n\nIf you want to follow along, watch the repositories. New components will be announced there and listed on this page as they land.\n\nLinks\n\n[github.com/wolfoo2931/linkedrecords](https://github.com/wolfoo2931/linkedrecords)· LinkedRecords\n\n[github.com/wolfoo2931/declarative-forms](https://github.com/wolfoo2931/declarative-forms)· Declarative Forms\n\n[The story behind the stack](/building-linkedrecords.html)· how this got built\n\n[info@monsterwriter.app](mailto:info@monsterwriter.app)· Get in touch", "url": "https://wpnews.pro/news/open-sourcing-monsterwriter-piece-by-piece", "canonical_source": "https://www.monsterwriter.com/open-source.html", "published_at": "2026-08-22 11:21:16+00:00", "updated_at": "2026-08-22 11:43:50.520959+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["Oliver Wolf", "MonsterWriter", "LinkedRecords", "Declarative Forms", "HTML Razer", "Presspack"], "alternates": {"html": "https://wpnews.pro/news/open-sourcing-monsterwriter-piece-by-piece", "markdown": "https://wpnews.pro/news/open-sourcing-monsterwriter-piece-by-piece.md", "text": "https://wpnews.pro/news/open-sourcing-monsterwriter-piece-by-piece.txt", "jsonld": "https://wpnews.pro/news/open-sourcing-monsterwriter-piece-by-piece.jsonld"}}