{"slug": "codemirror", "name": "CodeMirror", "category": "editors", "category_name": "Editors and IDEs", "description": "", "recommenders": 5, "commenters": 15, "warners": 1, "score": 5.977, "rising": 1.02, "first": "2025-12-27", "latest": "2026-09-02", "why": "It takes a bit of time to get used to the abstractions, but I think it is worthwhile.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 8, "compare": 1, "warn": 1}, "spark": [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "It takes a bit of time to get used to the abstractions, but I think it is worthwhile.", "kind": "", "icon": true, "domain": "codemirror.net", "github_repo": null, "official_url": "https://codemirror.net", "pricing": "", "aliases": ["CodeMirror"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 792593696, "item_id": 49537106, "url": "https://news.ycombinator.com/item?id=49537106", "by": "qbane", "date": "2026-09-02", "version": null, "stance": "recommend", "quote": "It takes a bit of time to get used to the abstractions, but I think it is worthwhile.", "excerpt": "It takes a bit of time to get used to the abstractions, but I think it is worthwhile. To make a minimal working text editor you will only need a little surface of API (covered in the system guide [0]), but to do this by yourself you need to know a lot about browsers' internal working and their undocumented quirks, which is much more overwhelming. (you can glance over `@codemirror/view`'s commit history to see what I ", "context": "", "use_case": "Code editor component", "switched_from": "", "story": "Fine, I'll build my own text editor"}, {"id": 792566113, "item_id": 49535382, "url": "https://news.ycombinator.com/item?id=49535382", "by": "eleventen", "date": "2026-09-02", "version": null, "stance": "recommend", "quote": "which is like Monaco but more lightweight", "excerpt": "https://overtype.dev/ exists to let you do exactly this (for markdown). There\u2019s also https://codemirror.net/ which is like Monaco but more lightweight.", "context": "", "use_case": "", "switched_from": "", "story": "Fine, I'll build my own text editor"}, {"id": 792277265, "item_id": 49517329, "url": "https://news.ycombinator.com/item?id=49517329", "by": "eleventen", "date": "2026-09-01", "version": null, "stance": "recommend", "quote": "just using Monaco or https://codemirror.net/.", "excerpt": "No syntax highlighting in the editor? I vibecoded a pretty robust browser Filesystem API based markdown editor myself too last week. Recommend either rolling your own with a transparent textbox layered approach or just using Monaco or https://codemirror.net/. I did a markdown kanban thing. Filesystem API is very cool and underused. https://github.com/subdavis/mdello/", "context": "vibecoded a markdown editor", "use_case": "markdown editor syntax highlighting", "switched_from": "", "story": "Show HN: Markdown Viewer and Editor"}, {"id": 773279744, "item_id": 48329984, "url": "https://news.ycombinator.com/item?id=48329984", "by": "akdor1154", "date": "2026-05-29", "version": null, "stance": "recommend", "quote": "the codemirror Huge File demo works fine", "excerpt": "Even the linked ghostty PR on your home shows this - this is Firefox Android on a Nokia XR21 / TA-1486. It's not unuseable, but it definitely feels like 'js hacking my scrolling' and not a native surface flinging around. The experience is actually worse with smaller movements, i guess because my brain is more conscious when breaking the 'finger physically moving the text' illusion. I don't mean to be dismissive - you", "context": "", "use_case": "large file editing", "switched_from": "", "story": "On Rendering Diffs"}, {"id": 763416803, "item_id": 47713550, "url": "https://news.ycombinator.com/item?id=47713550", "by": "steelbrain", "date": "2026-04-09", "version": null, "stance": "recommend", "quote": "CodeMirror has a demo where they render a million lines", "excerpt": "The source code is hosted on Github: https://github.com/gitbutlerapp/gitbutler I was really hoping we'd see some competition to Github, but no, this is competition for the likes of the Conductor App. Disappointed, I must say. I am tired of using and waiting for alternatives of, Github. The diff view in particular makes me rage. CodeMirror has a demo where they render a million lines. Github starts dying when renderin", "context": "", "use_case": "", "switched_from": "", "story": "We've raised $17M to build what comes after Git"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 744843696, "item_id": 46552731, "url": "https://news.ycombinator.com/item?id=46552731", "by": "eitau_1", "date": "2026-01-09", "version": null, "stance": "warn", "quote": "Some (including the most popular: codemirror) go as far as putting themselves inside", "excerpt": "Sad reality of replacing plain old text boxes with \"smarter\" re-implementations: https://utcc.utoronto.ca/~cks/space/blog/web/WebEditingVsCutAndPaste Some (including the most popular: codemirror) go as far as putting themselves inside \"natural\" selection flow: they're interpreting mouse inputs, cancelling default behavior and selecting text themselves (programmatically via setSelectionRange). And Firefox deliberately", "context": "", "use_case": "", "switched_from": "", "story": "Gnome and Mozilla Discuss Proposal to Disable Middle Mouse Paste on Linux"}]}], "who": [{"by": "eleventen", "context": "vibecoded a markdown editor", "url": "https://news.ycombinator.com/item?id=49517329", "date": "2026-09-01"}, {"by": "elxr", "context": "building their own notes app", "url": "https://news.ycombinator.com/item?id=47381430", "date": "2026-03-14"}], "tags": [], "use_cases": ["code editor component", "markdown editor syntax highlighting", "large file editing", "editor component for notes app", "editor component", "building own editor"], "compared": [{"slug": "monaco-editor", "name": "Monaco Editor", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "obsidian", "name": "Obsidian", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "overtype", "name": "OverType", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49524863", "title": "Fine, I'll build my own text editor", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=47999391", "title": "Collaborative Editing in CodeMirror", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46403073", "title": "VSCode rebrands as \"The open source AI code editor\"", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49514729", "title": "Show HN: Markdown Viewer and Editor", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48841133", "title": "Compendium \u2013 Shared workspace for teams and AI agents", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48327809", "title": "On Rendering Diffs", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1}, "2026-01": {"warn": 1}, "2026-02": {"neutral": 1}, "2026-03": {"neutral": 1, "recommend": 1}, "2026-04": {"recommend": 1}, "2026-05": {"neutral": 3, "compare": 1, "recommend": 1}, "2026-06": {}, "2026-07": {"neutral": 1}, "2026-08": {}, "2026-09": {"recommend": 2, "neutral": 1}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 792593696, "item_id": 49537106, "url": "https://news.ycombinator.com/item?id=49537106", "by": "qbane", "date": "2026-09-02", "version": null, "stance": "recommend", "quote": "It takes a bit of time to get used to the abstractions, but I think it is worthwhile.", "excerpt": "It takes a bit of time to get used to the abstractions, but I think it is worthwhile. To make a minimal working text editor you will only need a little surface of API (covered in the system guide [0]), but to do this by yourself you need to know a lot about browsers' internal working and their undocumented quirks, which is much more overwhelming. (you can glance over `@codemirror/view`'s commit history to see what I ", "context": "", "use_case": "Code editor component", "switched_from": "", "story": "Fine, I'll build my own text editor"}, {"id": 792566113, "item_id": 49535382, "url": "https://news.ycombinator.com/item?id=49535382", "by": "eleventen", "date": "2026-09-02", "version": null, "stance": "recommend", "quote": "which is like Monaco but more lightweight", "excerpt": "https://overtype.dev/ exists to let you do exactly this (for markdown). There\u2019s also https://codemirror.net/ which is like Monaco but more lightweight.", "context": "", "use_case": "", "switched_from": "", "story": "Fine, I'll build my own text editor"}, {"id": 792555040, "item_id": 49534690, "url": "https://news.ycombinator.com/item?id=49534690", "by": "Isofarro", "date": "2026-09-02", "version": null, "stance": "neutral", "quote": "Haverbeke went on to create CodeMirror and ProseMirror.", "excerpt": "The author travels the same path that ended up eventually with VS Code. Reminds me strongly of Marjin Haverbeke's talk at Full Frontal conf in 2011: https://ffconf.org/talks/respectable-code-editing-in-the-browser/ - Using Canvas, then contenteditable, and then DOM. Haverbeke went on to create CodeMirror and ProseMirror.", "context": "", "use_case": "", "switched_from": "", "story": "Fine, I'll build my own text editor"}, {"id": 792277265, "item_id": 49517329, "url": "https://news.ycombinator.com/item?id=49517329", "by": "eleventen", "date": "2026-09-01", "version": null, "stance": "recommend", "quote": "just using Monaco or https://codemirror.net/.", "excerpt": "No syntax highlighting in the editor? I vibecoded a pretty robust browser Filesystem API based markdown editor myself too last week. Recommend either rolling your own with a transparent textbox layered approach or just using Monaco or https://codemirror.net/. I did a markdown kanban thing. Filesystem API is very cool and underused. https://github.com/subdavis/mdello/", "context": "vibecoded a markdown editor", "use_case": "markdown editor syntax highlighting", "switched_from": "", "story": "Show HN: Markdown Viewer and Editor"}, {"id": 781458850, "item_id": 48841178, "url": "https://news.ycombinator.com/item?id=48841178", "by": "Azimuth05", "date": "2026-07-08", "version": null, "stance": "neutral", "quote": "Real-time collaboration on documents runs on Yjs CRDTs over CodeMirror 6", "excerpt": "Hey HN, we're Jonathan, Ollie, and Lucas, and we're building Compendium ([https://cerenovus.ai/compendium](https://cerenovus.ai/compendium)). Compendium is a shared workspace that keeps your whole team, humans and coding agents alike, working from the same source of truth. Quick launch vid here: [https://www.youtube.com/shorts/Vw\\_aFL7YOUI](https://www.youtube.com/shorts/Vw_aFL7YOUI) We started building this after ru", "context": "", "use_case": "", "switched_from": "", "story": "Compendium \u2013 Shared workspace for teams and AI agents"}, {"id": 773279744, "item_id": 48329984, "url": "https://news.ycombinator.com/item?id=48329984", "by": "akdor1154", "date": "2026-05-29", "version": null, "stance": "recommend", "quote": "the codemirror Huge File demo works fine", "excerpt": "Even the linked ghostty PR on your home shows this - this is Firefox Android on a Nokia XR21 / TA-1486. It's not unuseable, but it definitely feels like 'js hacking my scrolling' and not a native surface flinging around. The experience is actually worse with smaller movements, i guess because my brain is more conscious when breaking the 'finger physically moving the text' illusion. I don't mean to be dismissive - you", "context": "", "use_case": "large file editing", "switched_from": "", "story": "On Rendering Diffs"}, {"id": 771819986, "item_id": 48238749, "url": "https://news.ycombinator.com/item?id=48238749", "by": "bwat49", "date": "2026-05-22", "version": null, "stance": "neutral", "quote": "using a nested codemirror instance for the cell editor", "excerpt": "I've vibe coded a codemirror table editor (as a plugin for joplin) using a nested codemirror instance for the cell editor, in my case using joplin's built in command to render markup for the inactive cells: https://github.com/bwat47/joplin-rich-tables it works well but I'm not much of a programmer and probably ended up with a crazy over engineered architecture lol I was surprised that there weren't any existing libra", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Files.md \u2013 open-source alternative to Obsidian"}, {"id": 768989219, "item_id": 48061826, "url": "https://news.ycombinator.com/item?id=48061826", "by": "crynta", "date": "2026-05-08", "version": null, "stance": "neutral", "quote": "Code editor: Codemirror 6 + vim mode + AI autocompletions", "excerpt": "Terax is an opensource, fast and lightweight (7MB) AI terminal emulator with code editor, AI agents, file explorer, web preview and much more. App: Rust + Tauri + React Terminal: xterm.js (WebGL) + portable-pty Code editor: Codemirror 6 + vim mode + AI autocompletions AI: Vercel AI SDK (BYOK or local models) I just really enjoy systems programming, AI and modern app development, so I decided to make this project, aft", "context": "", "use_case": "", "switched_from": "", "story": "Building an Open Source 7MB AI Terminal with Agents and Code Editor (Rust/Tauri)"}, {"id": 768456944, "item_id": 48028559, "url": "https://news.ycombinator.com/item?id=48028559", "by": "eliasdejong", "date": "2026-05-05", "version": null, "stance": "compare", "quote": "CodeMirror is great, but still requires a lot of clientside JavaScript.", "excerpt": "CodeMirror is great, but still requires a lot of clientside JavaScript. I wonder if it would be possible to create a code editor in the same style OverType[0], where the editor is basically just an HTML textarea. You would need 70% less JavaScript code to do exactly the same thing, and it supports syntax highlighting out of the box[1]. [0]: https://github.com/panphora/overtype [1]: https://github.com/panphora/overtyp", "context": "", "use_case": "", "switched_from": "", "story": "Collaborative Editing in CodeMirror"}, {"id": 768414737, "item_id": 48025921, "url": "https://news.ycombinator.com/item?id=48025921", "by": "jazzypants", "date": "2026-05-05", "version": null, "stance": "neutral", "quote": "", "excerpt": "I'm a huge fan of this guy's work. His code is really easy to read, and I learn a lot every time I dig in. I think that Lezer [0] is underappreciated considering how flexible and performant it is. Edit: I just realized I didn't even mention his most famous work, Eloquent JavaScript [1]! This book is incredible. I couldn't finish it the first time, so I'm not sure if it's the best book for beginners, but I learned so ", "context": "", "use_case": "", "switched_from": "", "story": "Collaborative Editing in CodeMirror"}, {"id": 763416803, "item_id": 47713550, "url": "https://news.ycombinator.com/item?id=47713550", "by": "steelbrain", "date": "2026-04-09", "version": null, "stance": "recommend", "quote": "CodeMirror has a demo where they render a million lines", "excerpt": "The source code is hosted on Github: https://github.com/gitbutlerapp/gitbutler I was really hoping we'd see some competition to Github, but no, this is competition for the likes of the Conductor App. Disappointed, I must say. I am tired of using and waiting for alternatives of, Github. The diff view in particular makes me rage. CodeMirror has a demo where they render a million lines. Github starts dying when renderin", "context": "", "use_case": "", "switched_from": "", "story": "We've raised $17M to build what comes after Git"}, {"id": 758102881, "item_id": 47381430, "url": "https://news.ycombinator.com/item?id=47381430", "by": "elxr", "date": "2026-03-14", "version": null, "stance": "recommend", "quote": "I went with CodeMirror", "excerpt": "As someone else building a notes app, I went with CodeMirror because I enjoy the feature-set of the obsidian editor (which is CodeMirror), and I'm trying to emulate the features on that that I use the most, in addition to some more \"experimental\" features I'm currently playing with. Personally, I really don't enjoy WYSIWIG editors when writing notes. It's just unnecessarily different compared to what I'm used to. Tho", "context": "building their own notes app", "use_case": "editor component for notes app", "switched_from": "", "story": "Show HN: Ichinichi \u2013 One note per day, E2E encrypted, local-first"}, {"id": 757558771, "item_id": 47347423, "url": "https://news.ycombinator.com/item?id=47347423", "by": "rcarmo", "date": "2026-03-12", "version": null, "stance": "neutral", "quote": "refactored the CodeMirror editor into an extension", "excerpt": "Somehow, I feel like I\u2019m converging onto this. I built https://github.com/rcarmo/webterm as a quick solution to the \u201cmultiple agents\u201d problem and https://github.com/rcarmo/piclaw started out as a mobile UX for a simpler, tighter \u201cclaw\u201d and has been slowly morphing into an IDE (I just shipped UI extension support and have refactored the CodeMirror editor into an extension, and I suspect a terminal is next as well as a", "context": "", "use_case": "editor component", "switched_from": "", "story": "Karpathy is searching for the Agentic IDE"}, {"id": 751061378, "item_id": 46941336, "url": "https://news.ycombinator.com/item?id=46941336", "by": "rbbydotdev", "date": "2026-02-08", "version": null, "stance": "neutral", "quote": "Built with mdx-editor, code mirror 6, react, shadcn and typescript", "excerpt": "A git enabled local-first browser-first markdown workspace wysiwyg editor and publisher. Built with mdx-editor, code mirror 6, react, shadcn and typescript free, open source, MIT https://github.com/rbbydotdev/opal", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (February 2026)"}, {"id": 744843696, "item_id": 46552731, "url": "https://news.ycombinator.com/item?id=46552731", "by": "eitau_1", "date": "2026-01-09", "version": null, "stance": "warn", "quote": "Some (including the most popular: codemirror) go as far as putting themselves inside", "excerpt": "Sad reality of replacing plain old text boxes with \"smarter\" re-implementations: https://utcc.utoronto.ca/~cks/space/blog/web/WebEditingVsCutAndPaste Some (including the most popular: codemirror) go as far as putting themselves inside \"natural\" selection flow: they're interpreting mouse inputs, cancelling default behavior and selecting text themselves (programmatically via setSelectionRange). And Firefox deliberately", "context": "", "use_case": "", "switched_from": "", "story": "Gnome and Mozilla Discuss Proposal to Disable Middle Mouse Paste on Linux"}, {"id": 742591635, "item_id": 46411977, "url": "https://news.ycombinator.com/item?id=46411977", "by": "bobajeff", "date": "2025-12-28", "version": null, "stance": "compare", "quote": "turning Theia or CodeMirror into vscode", "excerpt": "Thanks, it's been so very long since I've tried emacs. I remember I didn't like how it looked. So I used vim instead. (There was no vscode back then.) So I never did give it much of a try. Emacs might be a solid editor choice but my intuition is that it probably won't be worth it for the same reason LiteXL wasn't for me. If I do work on adding features to my editor I think I'd be more comfortable doing it in js, html", "context": "", "use_case": "", "switched_from": "", "story": "VSCode rebrands as \"The open source AI code editor\""}, {"id": 742451138, "item_id": 46403196, "url": "https://news.ycombinator.com/item?id=46403196", "by": "bobajeff", "date": "2025-12-27", "version": null, "stance": "neutral", "quote": "I'll probably start playing around with Theia and Codemirror on the side just in case.", "excerpt": "I love vscodium but more and more I worry about how Microsoft is effecting it down stream. To the point where I'm actively looking into making my own editor. I'm putting it off for now but I'll probably start playing around with Theia and Codemirror on the side just in case.", "context": "", "use_case": "building own editor", "switched_from": "", "story": "VSCode rebrands as \"The open source AI code editor\""}]}