VS Code is basically my home. I spend most of my day writing Business Central apps in AL, and the BC development experience lives almost entirely inside the editor. When I’m not writing BC code, I’m still in VS Code, usually editing markdown.
I’m a markdown loyalist. Notes, documentation (yes, that exists), project briefs, READMEs, scratch pads — all in markdown. It stays out of the way, it diffs cleanly, and it opens fine on any of my machines.
But I struggled with managing tables.
You know columns of varying widths, and every time you edit a cell, the pipes drift out of alignment. You can either eyeball them back into shape or give up and let the source look like garbage. The rendered output is still fine — but if your only readable view is the rendered one, you’ve lost the whole point of markdown. Inserting rows and columns can also be a challenge.

So I had two itches at once:
- I wanted an easier way to manage markdown tables and formatting.
- I knew the Marketplace was full of Markdown extensions, but I wanted to see if I could ship a VS Code extension end-to-end without writing a line of code myself.
That second one — call it vibe coding, agentic development, AI pair programming, whatever this week’s term is. The deal: I describe what I want, the agent writes the code, manages the repository and I review and steer. No keyboard-on-code from me. Zero. Could I actually take an idea to “published on the marketplace” without having to type it myself?
Turns out: yes. Meet Markdown Foundry.
The headline command is Align Table. One keystroke, your pipes line up, alignment markers (:---, :---:, ---:) survive, and escaped pipes inside cells round-trip safely. From there it grew:
- Tab / Shift+Tab to navigate between cells
- Enter to drop to the next row (creating one if needed)
- Insert / delete / move rows and columns.
- Sort by column with automatic numeric detection
- Convert pasted CSV or TSV into a formatted table.
- Paste an image straight from the clipboard on Windows / macOS / Linux, and it’ll create a link and save the file to a folder.

Once I was already in there, I figured I might as well add the formatting toggles I wanted too — bold, italic, blockquote, code blocks, headings, task list cycles. Ctrl+B does what Ctrl+B should do.
How the experiment went
I built it over a couple of weekends with Claude Code. The loop:
- I open an issue describing what I want.
- A planner agent reads the issue and proposes an implementation.
- A worker agent writes the code and opens a PR.
- A reviewer agent checks the PR against the plan and the acceptance criteria.
- I approved Claude’s merging and publishing.
That’s it. I never opened a source file. I steered — caught bad assumptions, vetoed choices, asked for things to be redone — but the actual TypeScript? Never touched it.
A few things that surprised me:
It works better the more rules you write down. The repo has a CLAUDE.md file that codifies the non-negotiables: branch naming, TypeScript strict mode, layer separation, CHANGELOG, and README discipline. Every rule I added cut down on the amount of steering I had to do later. Skipping that file would have meant ten times the corrections.
Naming is still a human problem. I started with “Markdown Forge” — taken. Tried mdforge — display name collision with someone else’s “Markdown Forge”. Eventually landed on Markdown Foundry / dvlprlife.mdfoundry. The agent did the rename cascade across the codebase; deciding what to rename to was on me.
The marketplace publish is the easy part. vsce package, vsce publish, done. The agent loop and the planning took real time, not the VS Code APIs.
What’s next
A few things I want to add: smarter list handling, a TOC generator, and undo grouping for table commands. But this is what 0.3.0 looks like today:
If you spend any real time writing markdown — especially if you also live in VS Code — give it a shot. And if you’ve been on the fence about trying full agentic coding for something real (not just a toy to-do app), this is your sign.






available.