1
2 Comments

From Frustrated User to Indie Builder - How a pile of unreadable markdown files became a desktop app

I accidentally built a product while trying to read my own AI outputs

I wasn't planning to build a product. I was just trying to get work done.

Being an AI/Software engineer, I'd been using Claude, ChatGPT, and Cursor heavily - not for copying code, but as thinking partners. Architecture decisions, API design, system flows, technical breakdowns. Every session produced a markdown file. Design docs, specs, diagrams, analysis - all .md files piling up across my machine.

Generating the content was easy. Reading it was the problem.

The pain

VS Code's markdown preview splits your workspace in half. Browser-based viewers need copy-paste every time. Most files had LaTeX equations or Mermaid diagrams that wouldn't render anywhere. And when AI tools stream output directly to a file, there's no way to see the rendered result update live.

I tried every markdown app I could find. They all wanted to be editors — toolbars, file managers, cloud sync, formatting buttons. I didn't want to write markdown. I just wanted to read it.

Nothing did just that. So I built it.

What I built

MEVA - a native desktop app that only reads markdown. That's it.

  • Point it at a file or folder → beautifully rendered markdown
  • LaTeX, Mermaid diagrams, syntax-highlighted code → all render natively
  • File changes? View updates live, within milliseconds
  • Under 15MB, fully offline, no accounts, no tracking
  • Keyboard-first — navigate headings (⌘+[ / ⌘+]), switch tabs (⌘+1-9), toggle sidebar (⌘+B), cycle themes (⌘+T), find in doc (⌘+F). Your hands never leave the keyboard.
  • CLI-friendlyopen -a Meva ~/README.md from your terminal. No app switching, just read.

I started with Electron (150MB+ bundle for a file viewer — absurd), then switched to Tauri (Rust + native WebView). Got it under 15MB while staying cross-platform on Mac, Windows, and Linux.

The "aha" moment

Once I had it working, my daily workflow changed. I'd ask Claude to generate a design doc, save it as .md, and MEVA would pick it up instantly in a separate window. When using Claude Code or Cursor that stream to files, I'd watch the rendered document build in real time.

It went from "tool I built for myself" to "I can't work without this" in about a week.

Shipping it

I launched on Product Hunt and Hacker News. Free version with all core features, paid version ($14.99 one-time) that adds tabs, themes, and extras.

It's a focused tool for a specific workflow — and the people who need it really need it. The feedback from developers and AI power users has been promising, and it's clear this is a pain point a lot of people share.

What I learned

Scratch your own itch, for real. This isn't a market-first product. It's a pain-first product. I built exactly what I needed, and it turns out other people working with AI tools daily have the same friction.

Do one thing well. Every competitor wants to be an editor. By only solving reading, the UX got dramatically simpler. No sidebar, no toolbar, no formatting buttons. Just the document.

Tauri > Electron for small tools. 15MB vs 150MB+. If you're building a lightweight desktop app, look at Tauri seriously.

AI tools are creating a new content category. We're generating more docs than ever, but the tooling for consuming them hasn't caught up. Creation is exploding. Reading is still stuck.


Check it out at usemeva.com if you work with AI tools and have markdown files piling up.

Curious — how do other indie hackers here manage their AI-generated docs? Do you have a system, or is it just chaos?

on March 1, 2026
  1. 1

    the "scratch your own itch" lesson hits differently when you realize the itch you scratched is one other people have been quietly dealing with for years. the reading/creation gap in AI tooling is real — I've been using Claude heavily for architecture docs and the consumption side is genuinely the weak link.
    the "do one thing well" decision is what I keep coming back to with my own build. every time scope creep shows up it's usually disguised as a reasonable feature request. saying no to being an editor is what made MEVA actually ship.

  2. 1

    Interesting! I will have a look. Really sticking to one problem and solving that really well definitely has its merits (and I know from experience that resisting the temptation to expand scope is not easy)!

Trending on Indie Hackers
7 years in agency, 200+ B2B campaigns, now building Outbound Glow User Avatar 105 comments How I built an AI workflow with preview, approval, and monitoring User Avatar 60 comments The "Book a Demo" Button Was Killing My Pipeline. Here's What I Replaced It With. User Avatar 46 comments I built a desktop app to move files between cloud providers without subscriptions or CLI User Avatar 27 comments Show IH: I built an AI agent that helps founders find the right people User Avatar 24 comments After 4 landing page rewrites, I finally figured out why my analytics SaaS wasn't converting User Avatar 20 comments