mkshp.dev
Building tools for thought & modern web

Extensible software with
precision & craft.

Hi, I'm mkshp. I build tools for thought, high-performance web applications, and developer-first Obsidian plugins that bring plain-text accounting, rich media galleries, and dynamic index generation into your personal knowledge base.

Tooling Philosophy & Architecture

Local-First
01 • Sovereign Data
Plain-Text & Vault-Local

No proprietary locks. Everything interfaces directly with plain Markdown, Beancount ledgers, and local files.

02 • High Performance
Virtualized & Reactive

Lazy loading, live index listeners, and parameterized execution keep heavy vaults fast and responsive.

03 • Deep Extensibility
Custom DSLs & APIs

Code block parsers, AST extraction, and clean TypeScript architectures built on the Obsidian API.

Ecosystem Showcase

Obsidian Plugins & Developer Tools

4 featured plugins

01Finance & Accounting

Obsidian Finance Plugin

Plain-Text Accounting & Financial Intelligence

Transform your Obsidian vault into an interactive accounting workstation powered by Beancount. Embed live BQL (Beancount Query Language) queries inline, visualize net worth trends and balance sheets with reactive charts, and validate transactions with account autocomplete.

Live BQL query rendering directly in Markdown notes
Net worth tracking, balance sheets, and interactive charts
Transaction builder with smart account autocomplete & validation
Local-first & vault-native: parameterized execution with zero telemetry
TypeScriptBeancountBQLObsidian APIData VizChart.js
02Media & Visualization

Obsidian Gallery Plugin

Interactive Image Galleries, Carousels & Masonry

Create responsive, interactive media galleries in notes using simple obs-gallery code blocks. Display vault images as customizable thumbnail grids, swipeable carousels, or fluid Pinterest-style masonry layouts with click-to-expand lightbox viewing.

Multiple layout modes: responsive grid, swipeable carousel, and masonry
Full-screen lightbox modal with keyboard navigation & image details
Virtualized lazy loading for buttery-smooth browsing of photo archives
Deep vault scanning by folder or file lists with sorting & filters
TypeScriptObsidian APICSS GridMasonryLightboxMedia
03Knowledge Management

Obsidian Maps of Content (MOC)

Dynamic MOC Generator & Vault Query Engine

Dynamically generate Maps of Content (MOC) indexes by extracting matching list items, tasks, headings, and blockquotes across your notes using moc code blocks. Features a visual creation wizard, a boolean filter DSL, and live auto-updating indexes.

Live auto-updating indexes that re-render as vault files change
Powerful filter DSL supporting AND, OR, NOT, tags, regex & frontmatter
Visual MOC Creation Wizard directly in the Obsidian Command Palette
Copy & Bake: convert dynamic query blocks into permanent static Markdown
TypeScriptFilter DSLAST ParsingObsidian APIPKM
04Developer Tools

Obsidian SQL Plugin

Supabase Database Runner & Query Inspector

Execute raw SQL queries against your Supabase database directly from Obsidian. Features a dedicated query modal, formatted tabular result rendering, and secure vault-local credential management.

Interactive modal SQL query runner from the Command Palette
Instant tabular result rendering with copy-friendly formatting
Secure storage for Supabase URL and Anon Key in vault settings
Lightweight, zero-overhead database inspector
TypeScriptSupabaseSQLPostgreSQLObsidian API
Toolkit

Core Technologies

TypeScriptObsidian APIJavaScriptBeancount / BQLSupabasePostgreSQLAstro 7ReactTailwind CSS v4Node.jsCloudflare PagesDockerGit
Connect

Get in Touch

Whether you have questions about my Obsidian plugins, want to collaborate on local-first tools, or just want to say hi, feel free to reach out.