OlaProis
Show HN: Ironpad – Local-first project management with Git versioning
https://github.com/OlaProeis/ironPad
I built a local-first project management tool that stores everything as plain Markdown files with automatic Git versioning.The idea: your notes, tasks, and projects live as files you own. Edit them in the app, in VS Code, or in Vim – changes sync in real-time via WebSocket. Every save is auto-committed to Git with a full diff viewer in the UI.Tech: Rust/Axum backend (5 MB binary), Vue 3...
Show HN: Beyond Open Source: Why AI-Assisted Projects Need 'Open Method'
Disclosure: Ferrite is built using AI-assisted development (Claude). I'm sharing this openly because I think transparency is exactly what this post is about.Someone on Hacker News called my project "open weights", arguing that without sharing the prompts and process that created the code, I was essentially doing the AI equivalent of releasing model weights without the training data. The code...
AI Development Workflow: Complete explanation of the process, handover system, how I manage context between sessions
Historical PRDs: The actual Product Requirements Documents used to generate tasks (v0.1.x through v0.3.0)
Task JSON files: How requirements were broken down into implementable tasks via Task Master
Handover templates: The reusable prompts I use to maintain context between AI sessions
Thanks for pushing on transparency, your comment about "open weights vs open source" is a useful framing. The goal is to share enough that someone could reproduce and learn from the approach.
The plan: use %% comments as layout hints. Something like:
%% @pos NodeA 100 200>
Mermaid.js ignores these, so the diagram stays portable. But Ferrite (and anyone using mermaid-rs) could parse them for manual positioning.
You'd be able to drag nodes around in Ferrite, have positions saved to the source, and still share with mermaid.js users (they'd get auto-layout).
If you want to follow progress or have input on the syntax, feel free to open an issue on the repo!
Honestly, this is a gap in the ecosystem. For now, most people either:
- Use draw.io/Excalidraw despite the pain
- Build diagrams programmatically (Diagrams-as-code Python library has good AWS support)
- Just accept text-based flowcharts without icons
If I add custom icon/shape support to Ferrite's Mermaid renderer (v0.3.0+), AWS icons could be a good test case. No promises, but I hear the frustration.
The challenge is Mermaid is declarative — layout is computed, not specified. Some options I'm considering:
1. layout hints/constraints in the syntax,
2. export to SVG then use a proper editor like Excalidraw for repositioning. For now, influencing layout via subgraphs and edge ordering is the best workaround."
3. separate system for that, maybe to be included in the crate, would only work in Ferrite in the start
For sync, I've been thinking about:
- Git-based sync for power users (already have git integration)
- Simple local network sync (mDNS discovery, no cloud required)
- Optional relay server, as you described — small binary for hub-and-spoke
The plain-file approach (no proprietary format) makes this tractable since any sync tool works today (Syncthing, Dropbox, etc.). But a native, frictionless solution would be better.
2. Tool Integration API
This aligns with v0.3.0's direction. The plan is:
- Mermaid crate extraction, establishes the modular pattern
- Editor widget as library, opens up embedding
- Command palette / IPC, could expose operations to external tools
For accessibility specifically, what interfaces work well for you? Shell commands? Named pipes? JSON-RPC? Knowing your workflow would help prioritize.
3. Vaults/Profiles
Good point — workspace settings are currently per-folder (`.ferrite/`), but there's no concept of isolated plugin configurations per vault. Added to the consideration list.
Thanks for the detailed feedback!
A few thoughts:
What might work today: - Sequence diagrams can model service-to-service flows (API calls, auth handoffs)
- Flowcharts with subgraphs can represent VPC boundaries, security groups
- C4-style (context, container, component) is sometimes modeled with flowcharts
What would make it better:
- Custom shapes/icons (AWS service icons)
- Annotations for security boundaries, trust zones
- Data flow direction markers
Alternative you might try now:
D2 (https://d2lang.com) has better icon support and was designed for architecture diagrams. It has an AWS icon pack. Structurizr also does C4 well.
That said, if there's demand for architecture-specific diagrams in Ferrite's Mermaid renderer, I could look at:
1. Custom icon/shape support via external SVGs
2. A dedicated "architecture" diagram type with security-relevant annotations
Would a template or example for modeling security flows in Mermaid's current syntax help as a starting point?
The files you noticed (AGENTS.md, GEMINI.md, CLAUDE.md, etc.) are auto-generated scaffolding from Task Master AI, a task management tool I use. They contain MCP (Model Context Protocol) configuration for various AI coding assistants — essentially boilerplate instructions for how different AI tools should connect to the task system. They're not really "coding conventions" so much as tool-specific wiring.
That said, you're right that it would be useful to share the actual conventions and rules I use, especially for an AI-generated project.
What I'd be happy to share:
My Cursor system prompt — I have a general coding principles prompt I use across projects. It's not Ferrite-specific but covers code style, architecture preferences, etc. Happy to share this.
Project-specific rules — I do have .cursor/rules/ files with Task Master workflow conventions. These could be included if contributors want to use similar AI-assisted workflows.
The actual workflow — How I structure tasks, iterate on implementations, and the back-and-forth with AI. This might be more useful than config files.
Why I excluded them initially: Honestly, most of those files are boilerplate MCP configs that would only matter if someone wanted to use the exact same tooling stack (Cursor + Task Master + specific MCP servers). I wasn't sure that would be useful to most contributors, and I didn't want to clutter the repo with tool-specific noise. But I take your point about setting conventions for AI-assisted contributions.
Let me know if there's interest, and I can:
Add a CONTRIBUTING_AI.md or similar with the actual conventions and workflow
Share my system prompt in the docs
Un-ignore some of the rules files if they'd help
What would be most useful to you?
Added to the v0.2.3 roadmap — will provide a statically-linked x86_64-unknown-linux-musl binary alongside the standard glibc one.
Single binary — ~15MB, point it at a directory with ferrite ./notes/ or open workspace via UI
Fast launch, low latency — Native Rust/egui, instant startup, no Electron
Cross platform — Windows/Linux/macOS
Tables & code blocks — GFM tables, syntax-highlighted code blocks (40+ languages)
WYSIWYG — This is where it gets nuanced. Ferrite has three modes:
- Rendered mode — Click-to-edit rendered Markdown (closest to WYSIWYG)
- Split view — Raw editor + live preview side-by-side
- Raw mode — Plain text editing
It's not pure "type and it formats inline" like Typora or Confluence. The Rendered mode lets you click elements to edit them, but it's not seamless WYSIWYG yet.
If you're looking for true inline WYSIWYG, Typora is probably closest. But if split view + rendered mode works for you, give Ferrite a try — it hits the other criteria well.
These "many small details" are what v0.3.0's custom editor widget will unlock. egui's TextEdit doesn't give us fine-grained cursor control, but replacing it will.
What specific diagram types do you need — network topology, service flows, infrastructure layout?
Target audience is probably "developers who take notes" rather than pure writers. The native performance angle is the differentiator, same niche as "I want Notion but faster" or "Obsidian but lighter."
- Right panel (backlinks?) would come with v0.3.0 wikilinks work
- Hiding toolbar is a quick settings addition — I'll add that to the list
What's your priority order for those? And if you do implement encryption later, I'd love to see the approach!
- Immediate mode — egui redraws every frame, which makes state management simpler (no callback hell). Great for prototyping.
- Pure Rust, minimal deps — egui is self-contained. gtk-rs requires GTK installed on the system.
- Cross-platform out of the box — Same code runs on Windows/Linux/macOS/Web
- Rapid iteration — Hot reload-friendly, easy to experiment with layouts
Trade-offs: egui's TextEdit isn't designed for code editors (no multi-cursor, can't hide folded text), which is why v0.3.0 will replace it with a custom widget.
- 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
That said, to be fully transparent: as I disclosed elsewhere in this thread, the Ferrite codebase is 100% AI-generated (Claude via Cursor). I direct the development, test, and iterate, but I haven't written the Rust by hand for this project.
So my Rust experience is more "ecosystem familiarity + reading AI-generated code" than "battle-hardened Rustacean." This project is partly a learning exercise — seeing how far AI-assisted development can go while picking up Rust patterns along the way.
The HN responses are AI-assisted — I'm using Claude to help draft replies. Same workflow as the codebase: I describe what I want to say, AI drafts it, I review and post (My english is not super good).
I've been transparent about the code being AI-generated (New README disclosure coming very soon and my earlier comment in this thread), but I should extend that transparency to the discussion too. Thanks for the accountability check.
For now Ferrite is focused on Markdown since that's the most common format for notes and quick docs. But the architecture could support other formats — the parser layer is modular.
If there's demand, AsciiDoc would be the easier addition (cleaner syntax than RST). Would be curious how many folks would use it as their primary format vs. Markdown.