Top
Best
New

Posted by OlaProis 13 hours ago

Show HN: Ferrite – Markdown editor in Rust with native Mermaid diagram rendering(github.com)
Ferrite: Fast Markdown/Text/Code editor in Rust with native Mermaid diagrams

Built a Markdown editor using Rust + egui. v0.2.1 just dropped with major Mermaid improvements:

→ Native Mermaid diagrams - Flowcharts, sequence, state, ER, git graphs - pure Rust, no JS

→ Split view - Raw + rendered side-by-side with sync scrolling

→ Syntax highlighting - 40+ languages with large file optimization

→ JSON/YAML/TOML tree viewer - Structured editing with expand/collapse

→ Git integration - File tree shows modified/staged/untracked status

Also: minimap, zen mode, auto-save, session restore, code folding indicators.

~15MB binary, instant startup. Windows/Linux/macOS.

GitHub: https://github.com/OlaProeis/Ferrite

v0.2.2 coming soon with performance improvements for large files. Looking for feedback!

203 points | 116 comments
random3 10 hours ago|
This is cool. I was hoping to see progress coming from Zed (e.g. because Tree-sitter → https://github.com/tree-sitter-grammars/tree-sitter-markdown) but it's exciting to see this. I'm a heavy Obsidian user, and I love it, but I'd love to see real alternatives focused on foundations.

It would be interesting to know more about the end-goal if any.

Best of luck! I'll watch this.

kirubakaran 8 hours ago||
Since you're an Obsidian user, can I please get your feedback on https://hyperclast.com/ which I'm building?

(I'm not quite ready to do a Show HN yet, so please don't post it, but I'm ready for some early feedback if you'll indulge me)

tomtom1337 6 hours ago|||
You need something "more" on the website before you ask people to create an account. "Team workspace that stays fast" isn’t clear enough for me, at least. What is a workspace? What does the interface look like? Is it in the browser? Is it an app?

People will go "what is this?", "huh, I’m not gonna make a user for this, can’t tell what it is". Those are my 2 cents.

kirubakaran 6 hours ago||
Thanks, I'll fix that.
maxbond 6 hours ago||||
Disclaimer: I'm not your target audience, I don't care about collaboration or performance.

- There's a heavy emphasis on performance. Are you sure customers care about that more than real time collaboration and self hosting? (I don't think they care about CRDTs.)

- If I am experiencing pain because eg my Notion wiki is too big and is having serious performance issues, what I want to hear immediately is how you are going to help me migrate from Notion to your solution. Notion has a feature to export an entire workspace; can you ingest that and get me spun up with your product?

- If I hear something is open source I expect to be able to try it out immediately without logging in. It looks like you can do that but when you hit "Get Started" it puts you into a registration flow.

- You might take a look at how Zed is marketing themselves, they have a similar pitch (performance + realtime collaboration). The first thing they try to show you is a video where they demo the product and show how fast it is. (I think they focus too much on performance though.)

- The frontend is a web app right? If possible rather than a video, embed the interface in your landing page. If possible, let them share their document and try out collaborating on it with someone or with another browser tab. Give them an opportunity to be impressed.

I respect anyone who posts their work. Best of luck.

kirubakaran 5 hours ago||
Thank you!

> There's a heavy emphasis on performance. Are you sure customers care about that more than real time collaboration and self hosting?

- Good point, I'll find out

> Notion has a feature to export an entire workspace; can you ingest that and get me spun up with your product?

Yes, I'm almost done with this feature

> If I hear something is open source I expect to be able to try it out immediately without logging in. It looks like you can do that but when you hit "Get Started" it puts you into a registration flow.

I link to that elsewhere in the page: https://hyperclast.com/dev/ I'll look into making this more prominent.

> You might take a look at how Zed is marketing themselves

Thanks, will do

> embed the interface in your landing page

Great idea, I'll do that!

dboon 3 hours ago|||
I use Obsidian a lot, but very few extra features or plugins. My first impression is that I don’t get what you’re making from the website. Any tool worth using in this space (which I vaguely understand to be using large collections of Markdown and/or realtime multiediting) is fast. Obsidian is fast. Zed is fast. It’s table stakes for the kind of person who would use this already.

Is it just Zed + Obsidian? A good knowledge base that scales well and uses plain markdown, but has the fancy multi edit stuff?

kirubakaran 3 hours ago||
Thanks, I mentioned "fast" to differentiate it from Notion, which becomes super slow as you add more and more pages.

Obsidian and Zed are desktop apps, whereas Hyperclast is web-based. Obsidian isn't multi-player, and not really meant for teams.

LoganDark 3 hours ago||
Obsidian is web-based, it just pretends not to be, but it's just Electron. Zed's the only truly native one
OlaProis 6 hours ago|||
Thanks! The end-goal is a fast, native Markdown editor that "just works" - no Electron, no web tech, instant startup. v0.3.0 will extract Mermaid as a standalone crate and build a custom text editor widget to unlock features egui's TextEdit blocks (proper multi-cursor, code folding). Long-term: potentially extract the editor as a headless Rust library since that's missing in the ecosystem. See ROADMAP.md for details
koiueo 5 hours ago||
Do people still use $language editors?

My impression was that everyone uses their $EDITOR and integrates languages support via plugins. The only exception to this rule I know is Emacs (org mode). I really doubt a standalone md editor will get traction, no matter how good it is.

OlaProis 3 hours ago||
Valid skepticism! A few counterpoints:

Market exists: Obsidian has 1M+ users, Typora is popular, iA Writer has a loyal following. These aren't VS Code users who wandered off — they're writers, PKM enthusiasts, and note-takers who find IDE-style editors overwhelming for prose.

Different audience: Developers might prefer VS Code + Markdown Preview Enhanced. But Ferrite targets people who want a focused writing tool, not a general-purpose editor that happens to support Markdown. Think "writing app" vs "code editor with Markdown support."

Native advantage: Most Markdown tools are Electron (Obsidian, Typora, Mark Text). Ferrite offers instant startup, lower RAM, and native performance — appeals to the "I want my tools to feel fast" crowd.

You might be right that it won't achieve mass adoption. But there's a niche for "Obsidian but native and lighter" that I think is underserved.

koiueo 59 minutes ago|||
My impression was that Obsidian is more than an editor: personal wiki, todo tracker, database, etc..

The currently offered feature list in Ferrite — code blocks, mermaid — suggests you are targeting developers or tech people here, hence, not really iA Writer... Typora — never heard of it, can't comment.

Anyway, thanks for seeing this as skepticism, and not criticism. With my comment, I tried to subtly suggest that there should be more to it, than an editor.

Regardless, good luck!

RealityVoid 3 hours ago|||
Completely non-accusatory, just wondering. Did you write this post using an LLM? I sort of feel the typical "voice" if LLM writing here and wondering if I should calibrate myself a bit in this.
echelon 10 hours ago||
What is Obsidian written in? Electron?
gregman1 10 hours ago|||
It’s closed source but yeah - electron all the way.
atlintots 10 hours ago|||
Yes; it's also not open source.
echelon 8 hours ago|||
I'm fine with that.

Open source purity is problematic. The OSI was established by the hyperscalers, who are decidedly not open source either.

Purely "OSI-approved open source" mandates having no non-commercial or non-compete clause, which means anyone can come in and bleed off profits and energy from the core contributors of open source projects. It prevents most forms of healthy companies from existing on top.

We shouldn't be allergic to making money with the software we write - life is finite and it's more sustainable over the long term to maintain software as a job.

The new "ethical source" / "fair source" licenses that have been popping up recently [1, 2] give customers 100% use of the code, but prevent competitors from coming in and stealing away the profits from running managed offerings, etc. (I wish Obsidian were this, but it's fully closed. Still, I do not admire them any less for this choice. We venerate plenty of closed creators - it's silly to hold software to a different standard.)

AWS profits hundreds of millions a quarter off of open source developed by companies thinking they were doing the right thing. AWS turned these into a proprietary managed solutions and gave nothing back to the authors. The original wind up withering and dying. AWS isn't giving back, they're just hoovering up.

Obsidian being closed means the core authors are hyper focused and can be compensated (even if it's not much). It's not like they can rug pull us - the files are text files, we can use old versions, and if they did piss us off I'm sure someone would write an open source version.

[1] https://fair.io/

[2] https://faircode.io/

dvt 8 hours ago|||
Fully agree that pushing OSI is just posturing. After all, Amazon/Google/Facebook have made literal billions by commercializing open source software. I release stuff on MIT all the time (for things I'm okay with people poaching) but I'd argue the only "pure" OSS license is GPL, which comes with its own problems (and, as we all know, it infects everything it touches).

The problem with FSL is that it hasn't been tested in the courts yet (afaik), so it's a bit of a gamble to think it'll just "work" if some asshole does try to clone your repo and sell your work. Maybe it's a decent gamble for a funded startup with in-house counsel, but if you're just one guy, imo keep stuff you want to sell closed-source, it's not that big of a deal. We've been doing just that since the 70s.

djvdq 2 hours ago|||
I fully agree with you.

I love the idea of open source, but we shouldn't say that something is bad just because it's closed source.

rkagerer 1 hour ago||
> Platform Note: Ferrite has been primarily developed and tested on Windows. While it should work on Linux and macOS, these platforms have not been extensively tested.

Neat! Lately on Windows I've felt like a 2nd class citizen.

> AI Disclosure: This project is 100% AI-generated code.

Oh.

Well, at least they're up front about it.

rajatkulk 34 minutes ago||
Shamelessly plugging my app Octarine (https://octarine.app) for users that may want a more WYSIWYG editing experience while storing all notes on device in markdown, which is also written in Rust (Tauri), and NOT vibe coded :)
msephton 9 hours ago||
Will need a magnifying glass to see the text on the screenshots.

I find it makes sense to take screenshots in a window big enough to show what's going on, but no bigger. This means probably not full screen, or maximised, especially if you're running at a very high resolution. If there's a lot of dead/empty space in the window that's a signal it's too big. This way you guarantee the screenshots are readable without zooming in, on smaller displays than your own, for example mobile.

OlaProis 4 hours ago|
Great feedback, thank you! You're absolutely right — the screenshots are taken at high resolution, which makes them hard to read on smaller displays.

I'll retake them with a more focused window size and less dead space. Appreciate the specific guidance!

OlaProis 37 minutes ago||
v0.2.2 just released — addressing several issues raised in this thread:

- CJK font support 1 — Korean/Chinese/Japanese characters now render properly

- CLI improvements (#9, #10) — ferrite file.md now works, plus --version and --help flags

- Undo/redo fixes 2 — Fixed scroll reset and focus issues

- Default view mode setting 3 — Can now set split/preview as default

- Configurable log level 4 — Reduce stderr noise

- Ubuntu 22.04 compatibility 5 — .deb now works on 22.04+

Thanks to everyone who reported issues! Download: https://github.com/OlaProeis/Ferrite/releases/tag/v0.2.2

huevosabio 12 hours ago||
Nice to see an egui project that doesn't have super obvious egui aesthetics.

How did you find working with egui?

OlaProis 5 hours ago||
egui is fantastic for rapid prototyping - immediate mode makes state management simple. Main limitation: TextEdit isn't designed for code editors (no multi-cursor, can't hide folded text). v0.3.0 will replace it with a custom widget. The default styling does scream "egui" - spent time on custom theming to avoid that
koakuma-chan 12 hours ago||
> How did you find working with egui?

Claude Code would have preferred React.

echelon 10 hours ago|||
Native code and speed will be a differentiator.

If the value of JavaScript programming goes down, Rust programming will probably hold value a little bit longer.

GrowingSideways 11 hours ago|||
How would this have worked outside of catering to browsers?
steezeburger 11 hours ago||
You can render React all over the place now!
bananaboy 10 hours ago||
Nice to see native markdown rendering rather than relying on spawning chromium and taking screenshots like some other libraries do!
quintu5 6 hours ago||
One major downside of native rendering is the lack of layout consistency if you’re editing natively and then sharing anywhere else where the diagram will be rendered by mermaid.js.
bananaboy 5 hours ago||
Yes that's true. For my use-case I want to render the diagram out to a png though and embed it in a confluence page.
OlaProis 3 hours ago||
This is a perfect use case! The v0.3.0 crate will have: - parse() → AST - layout() → positioned elements - render_svg() → SVG string - render_png() → via resvg (no browser needed)

CLI usage would be something like:

mermaid-rs diagram.mmd -o diagram.png> # or pipe from stdin> cat diagram.mmd | mermaid-rs --format svg > output.svg>

For your mark integration, you'd be able to call it as a subprocess or use it as a Rust library directly if you're building in Rust.

If you want to follow progress or have input on the API, feel free to open an issue on the repo!

OlaProis 5 hours ago||
Valid point! Native rendering won't be pixel-perfect with mermaid.js. The trade-off is speed and no JS runtime. For documents staying in Ferrite, it's great. For sharing, we're adding SVG export in v0.3.0 so you can use mermaid.js for final renders if needed.
Arubis 13 hours ago||
I happily paid money for Typora, which does roughly the same thing for just Markdown without support for JSON, Yaml (that I know of). This feels like a ripe space, especially with LLMs eagerly outputting reams of parseable text with embedded diagrams.
gregman1 9 hours ago||
The $15 price tag for Typora seems a bit steep considering the fundamental features it provides.
swiftcoder 7 hours ago||
The price of a fancy burger doesn't seem all that unreasonable for a piece of software one finds even moderately useful (of course, depending on your local exchange rate that may be more or less true)
OlaProis 5 hours ago|||
Thanks! Typora is great - Ferrite aims for similar polish but with native Mermaid, structured data support (JSON/YAML/TOML tree viewer), and the pipeline feature for shell integration. And it's open source!
vunderba 10 hours ago||
+1 happy user of Typora. I really like its ability to auto-create a related assets folder for embedded media as it’s dragged into a doc.
Bishonen88 7 hours ago||
Looking at the Screenshots, this would've taken days/weeks e.g. 5 years ago. Now this seems to be vibe coded in 2 sessions. Crazy world we live in.
OlaProis 4 hours ago||
Ha! I appreciate the compliment (I think?). To be transparent: yes, AI tools were used during development — they're fantastic for boilerplate, documentation, and exploring unfamiliar APIs.

But this wasn't "2 sessions" — Ferrite has been in development for months with ~30,000 lines of Rust across 50+ modules. The Mermaid renderer alone is ~6000 lines of layout algorithms (Sugiyama-style graph layout, sequence diagram activation tracking, nested state machines, etc.).

AI helped ALOT, but there's no "generate full app" prompt that produces working text editors with native diagram rendering, rope-based text buffers, and custom window chrome. Still takes understanding the domain.

That said, you're right that the development velocity is higher than 5 years ago. Exciting times!

password4321 3 minutes ago|||
I think most here are like me and want to see this part, not just the output. If software is developed by using AI, "open source" to me was always about sharing all the human input required to recreate the process which in this case would include model versions, prompts, outputs, and manual revisions. Without this it feels more like "open weights" does, perhaps useful but only for its intended purpose.
risyachka 4 hours ago|||
Yep, it always seems easy from the outside until you start doing it. Then unless you are doing a crud web app you quickly run into issues where unless you know what you are doing- Claude Code won’t help you.
OlaProis 3 hours ago||
Exactly. The AI is great at "write me a function that does X" or "convert this to async." It struggles with: - Graph layout algorithms (crossing minimization, layer assignment) - State machine interactions (how does undo interact with sync scroll when switching view modes?) - Performance debugging (why is syntax highlighting slow on scroll?)

The domain knowledge still matters. AI just compresses the boilerplate time.

risyachka 4 hours ago||
It can be vibe-coded quickly but can also be done rather quickly without ai - the heavy lifting is UI lib from Zed. That is the real unlock in apps like this.
OlaProis 3 hours ago||
Small correction: Ferrite uses egui (by Emil Ernerfeldt), not anything from Zed. Different ecosystem entirely.

- Zed uses their own gpui framework - Ferrite uses egui — an immediate-mode GUI library

egui is great for rapid development but has limitations. The v0.3.0 custom editor widget is specifically because egui's built-in TextEdit blocks features like proper multi-cursor and code folding. We're not getting much "for free" there — the Mermaid renderer, syntax highlighting integration, and view synchronization are all custom.

That said, egui definitely accelerated the initial UI work. Credit where due!

risyachka 3 hours ago||
You are right, my bad.
bovermyer 3 hours ago|
Very cool. The one thing that prevents me from trying this out as a potential note-taking daily driver is the lack of support for LaTeX.

I recently switched from Obsidian to Zettlr due to some rendering and performance issues on Linux, and it's been a great experience. However, I always like to see new entrants in the arena.

OlaProis 2 hours ago|
LaTeX support is a reasonable request! It's not on the immediate roadmap, but here's my thinking:

Options considered: - KaTeX/MathJax-style rendering (would need a Rust math renderer or JS bridge) - Typst integration (Rust-native, modern alternative to LaTeX) - External tool pipeline (render via pandoc/LaTeX CLI)

Typst is interesting since it's also Rust-based and simpler than full LaTeX. Would inline math ($x^2$) and display math ($$...$$) cover your use case, or do you need full document features?

Added to the roadmap consideration list. Thanks for the feedback!

More comments...