Building practical software on modular architecture
JAN 2026
TypeScript · Electron
LLMs already generate code blocks well enough. The tiring part is implementing those changes safely across a real codebase: locating the right file, finding the right insertion point, creating or deleting files when needed, and resisting the temptation to replace more than intended just because it is faster.
Inscribe is built for that implementation gap. Instead of manually carrying code from a conversation into the repository piece by piece, you can paste the full response and let Inscribe extract the tagged operations that are actually meant for the codebase.
That workflow depends on convention-aware output. The model you are chatting with has to be made aware of Inscribe's format first through the repo guide or a customized equivalent, otherwise it will not produce directives in the shape the app expects.
Once the response is pasted in, Inscribe moves through a staged local flow: extract the operation blocks, validate what they are trying to do, preview the resulting changes, and only then apply them. That staging is the point. It turns a messy manual copy-paste routine into a narrower, inspectable implementation process.
The directives themselves are generated by the LLM, not typed manually by the user. But they are not treated like free-form wishes. File targets, modes, and change boundaries have to be explicit before anything is allowed to touch the repo, which keeps the workflow tighter than ordinary chat-driven editing.
Inscribe is especially useful for developers still working in chat-driven copy-paste loops, or for moments when a full codebase-aware agent is unnecessary, unavailable, rate-limited, or simply not the tool being used. When a capable agent can edit the codebase directly, that can be cleaner. Inscribe exists for the workflows that still need a disciplined bridge from conversation to repository.
OCT 2025
TypeScript · Node.js
Prodex is a unified project indexer and dependency extractor for JavaScript, TypeScript, React, and Laravel stacks. You point it at one or more entry files, Prodex traces the dependency graph, gathers the referenced code, and emits a navigable markdown or text export that is much easier to inspect, share, and reuse outside the IDE.
portfolio-prodex.md
Generated with Prodex
Index
src/components/sections/showcases.tsx
export function FeaturedWorkSection() {
return (
<section id="work" className="px-4 pb-10 md:px-6 md:pb-14">
<div className="container mx-auto">
<div className="rounded-4xl border border-blue-200/20 bg-background/72">
{FEATURED_PROJECTS.map((project, index) => (
<ProjectSectionShell
key={project.id}
project={project}
index={index}
isFirst={index === 0}
/>
))}
</div>
</div>
</section>
);
}
src/data/showcase/projects.ts
export interface FeaturedProject {
id: string;
title: string;
identity: string;
tags: string[];
bodyBlocks: ProjectBodyBlock[];
links: ProjectLinkSet;
layout: ProjectLayout;
}
scripts/build-preview.js
import fs from "node:fs";
const output = sections.join("\n\n");
fs.writeFileSync("prodex-output.md", output);
console.log("Prodex file generated");
The output is not just a dump of files. It is stitched into a readable artifact with headings, anchors, fenced code blocks, and back-to-top navigation, so opening the trace in a markdown reader still feels like working through a structured document instead of flattened debris.
Prodex also supports shortcut-driven runs through config file. Reusable entry, include, and exclude sets can be saved once and triggered without rewriting long CLI commands every time, which makes repeated trace generation far faster and less annoying than rebuilding the same command by hand.
That makes the tool practical for code review, AI context packs, and secondary-device workflows. The useful part of the codebase can be exported into a portable file that still preserves structure, which is a lot better than manually stitching snippets together in chat or notes.
Clim
Clim GitHubClipboard-to-upload access bridge across platforms
2025
Typscript · Java/Kotlin
Clim is built around a frustrating limitation: users often already have an image or file in clipboard memory, but the upload flow they are using has no natural way to access it.
On the web, that means bridging clipboard-held content into upload workflows that still expect manual file selection. On Android, the longer-term direction is to expose clipboard-held content through a picker-friendly source model.
The current proof exists as a Chrome extension. The larger idea is cross-platform: make clipboard content reachable from upload systems that normally cannot see it.
I have been writing code consistently since 2021, with my first substantial real-world project taking shape in 2022. My foundation is strongly object-oriented, and I am naturally pulled toward modular architecture, backend systems, and practical problem solving. Frontend is not my main interest, but I can handle it properly when the product requires it.
It took me a while to fully embrace AI-assisted development, because I care a lot about the craft and the reasoning behind good software. But once I saw what it could do for review, iteration speed, and implementation quality, I started using it far more deliberately as part of the workflow rather than treating it like a novelty.
The projects here mostly came out of real development friction, workflow annoyances, or tools I wanted badly enough to build for myself. Some may stay as sharp internal tools. Some may grow into more serious products.
I am also beginning open-source contribution work through n8n. It is a natural point of interest for me because its core model is built around connected nodes, reusable workflows, and composable automation.