32 points dancablam 18 hours ago 23 comments

Hi HN,

Ledge is a Markdown notebook that runs shell commands, code, SQL, etc from inside your own notes.

I built Ledge because I spend much of my day copy/pasting commands from my notes into the terminal. I was inspired by how much cmux helped me organize my terminals - but there was still a split brain between my notes and frequently run commands. I've been daily-driving it for the past few weeks and use it for deploys, API calls, smoke tests, etc.

Ledge runs your real shell just like a terminal app and can be hosted locally or remotely over SSH using ledge-server. I've been building it since July and have recently added support for all the major platforms: Mac (Silicon), Windows (WSL required), Linux, iOS, Android. Mobile devices require SSH access to a ledge-server and Android is still in beta and looking for beta testers (see link on website)!

It's built on Bun and Electrobun and is free and open-source. Feel free to review the code and contribute at https://github.com/ledgesh/ledge

Feedback is very much welcome. Any must-have features that are missing?

wakaru44 11 hours ago | parent

Years ago I just used Jupyter notebooks with a bash (or many others) backend to have a similar thing.

dancablam 7 hours ago | parent

Jupyter is great. From what I recall it's bash kernel isn't a real terminal session so sudo prompts, top, etc can tend to get a bit wonky. I also have a preference towards Markdown over .ipynb.

bpshaver 51 minutes ago | parent

This is all valid, but I'd suggest rethinking the slogan "The notebook that runs code" at the top of the README. I much prefer .md too and haven't used notebooks regularly in years, but nevertheless I scoffed when I read that (I thought: hasn't this guy heard of Jupyter?). I believe you'd be better off not calling this a "notebook" at all since that terms tends to describe something slightly different than what you have here.

dancablam 45 minutes ago | parent

Good feedback. Perhaps "Runnable markdown notes" instead of "The notebook that runs code".

bpshaver 37 minutes ago | parent

In truth I think it was just the use of the definite article that got me. This is a notebook that runs code, not the notebook that runs code. I just think this is cool and it could be better differentiated.

skrtskrt 44 minutes ago | parent

Scoffing and thinking "hasn't this guy heard of Jupyter" says more about your attitude than it does the tool or its README copy.

Hasn't this guy heard of [old product that is a huge pain and no one likes]? Why would he ever make something that suits his own interests and preferences?

bpshaver 40 minutes ago | parent

Yes, exactly. I'm sharing with this creator what my initial knee-jerk reaction was, admittedly exaggerating a bit. In case he'd like to avoid other people having a similar reaction. (And indeed, he thanked me for my feedback.)

It seems like you think that pointing out that I'm sharing my attitude is some sort of gotcha, but I'm confused. Sharing one's attitude is the whole point of posting an internet comment, isn't it?

baranguneysel 9 hours ago | parent

Very cool! I launched something similar as well. My idea was to create a working document in which people could develop their own tools and agents. Conversations with coding agents are treated as editable, executable documents. Both the person and the agent can write on the same page. Rather than correcting a mistake in a follow-up, you can rewrite it, delete a detour, or edit and re-run an earlier prompt. The file is always readable Markdown. Check out: https://piary.dev/

Feel free to get in touch if you are open to an exchange, you can find my contact details in the write-up.

dancablam 7 hours ago | parent

Nice! I'll take a look.

rvdca 4 hours ago | parent

How does this compete to something like Org-mode?

dancablam 2 hours ago | parent

Good question. Main differences of Ledge: You don't need Emacs for those of us that don't use it already. Markdown instead of Org syntax. Shells are interactive by default. Mobile apps can run the shell/code.

TheGoodBarn 42 minutes ago | parent

This is awesome I will definitely play around with it. Fits the niche gap as a standalone app vs something like [Observable Framework](https://observablehq.github.io/framework/) for data analytical type things.

I wish Notion could just integrate these things together and make it work, or someone build an Obsidian plugin. More often than not it would be so convenient to do something like this.

dancablam 29 minutes ago | parent

Awesome! Let me know how it goes.

tetraodonpuffer 39 minutes ago | parent

cool idea, do you have any plans to integrate command generation with the shell completion / aliases / functions? Say I have tons of muscle memory on using ctrl-r fzf to get things from history, or on pressing tab to autocomplete pod names etc. so I would never write out a full kubectl command to execute by hand

dancablam 26 minutes ago | parent

Ctrl-R, fzf and tab completion work in the terminal drawer. But completion in the editor doesn't exist currently. Really good idea, however so let me look into it!

melito 39 minutes ago | parent

Looks cool. I vibe coded this a while back to share some org docs on the web https://orgmode.dev/ - its currently a mess, but it does mostly work.

theCodeStig 36 minutes ago | parent

As an Emacs user for over a decade I think this is brilliant, it solves my biggest gripes with org-babel which prevent me from using it in a team setting. Ledge is a lot like org-babel from Emacs, but for muggles: a familiar UI, and common format go a long way.

dancablam 30 minutes ago | parent

Hey thanks! This gives me the motivation to keep on evolving this project :)

michaelastreiko 21 minutes ago | parent

Runnable notes in plain Markdown is a nice one-person stack move—fewer copy/paste hops between the doc and the shell when shipping alone.

classictraffic 18 minutes ago | parent

This is really cool, and I love the mobile support too! I’ll definitely be giving this a spin

KetoManx64 7 minutes ago | parent

Woooow! I love the idea of having documentation that I can just run directly as I'm reading through it, that also has a nice GUI to it. There's a similar product called Atuin Desktop (https://github.com/atuinsh/desktop) that uses Tauri for the GUI and the performance is just abysmal (makes my pc fans spin up like crazy when I launch it and navigate around), and have been on a lookout for something that handles the GUI aspect better. Definitely going to try this out.