8 min read

Why I Ditched Next.js for TanStack Start + Nitro

Next.js is powerful, but the platform gravity around it is real. TanStack Start with Nitro gave me better architecture defaults and true deployment freedom.

JavaScriptTanStackNext.jsArchitectureNitroWeb
5 min read

Django Made Me a Better Developer

Django is old, opinionated, and not the coolest framework at the party. It also taught me more about software architecture than anything else I've learned.

PythonDjangoArchitectureWeb
5 min read

Goodbye GitHub Copilot, Hello Claude Code

I cancelled my GitHub Copilot subscription after years of using it. Not because the product got worse — but because GitHub changed the terms of the deal I signed up for.

AIDeveloper ToolsOpinion
4 min read

PicoLauncher: Building a Minimal Android Launcher

I got tired of bloated home screen launchers, so I built my own. Here's what I learned about the Android launcher APIs, building for one-handed use, and the value of deliberate minimalism.

AndroidKotlinLauncher
4 min read

TinyFlow: A Visual Editor for LLM Workflows

How I built a drag-and-drop workflow editor for LLM agents using React Flow and PocketFlow — and what it taught me about visual programming, CLI tooling, and the gap between 'works in demo' and 'works in production'.

TypeScriptReactLLMWorkflows
5 min read

tutor-cli: An AI Study Tutor That Lives in Your Terminal

I built a CLI that generates a question bank on any topic, then drills you using seven different learning methods — with adaptive difficulty, spaced repetition, and persistent progress between sessions.

TypeScriptBunAIProductivityCLI
9 min read

Optimize Your Body, Optimize Your Code

Past me would have laughed at this post. But diet, training, and sleep have done more for the quality of my thinking than any productivity system I've tried.

HealthProductivitySelf-improvementOpinion
5 min read

New Year's Resolutions Don't Work. Here's What Does.

Every January the same cycle repeats. Big goals, early enthusiasm, quiet abandonment by February. After years of doing it wrong, here's what actually moved the needle for me.

ProductivityHabitsSelf-improvement
7 min read

Supercharging Bun with Rust via FFI

The same way Python offloads heavy computation to C extensions via NumPy or Cython, you can drop native Rust into your Bun app using bun:ffi — with near-zero overhead.

BunRustTypeScriptPerformanceFFI
6 min read

How to Cut Your Docker Image Size in Half

Bloated Docker images slow down CI pipelines, waste registry storage, and increase attack surface. Here's how to shrink them down without sacrificing functionality.

DockerDevOpsPerformanceInfrastructure
9 min read

Building a Dataset to Track My Own Gym Performance

I go to the gym every day and I love statistics. So I built a personal dataset to find out whether creatine, sleep, diet, temperature, and mood actually move the needle — without any medical tests.

DataFitnessProductivitySelf-tracking
6 min read

How to Reproduce AI Results You Actually Like

You generated something great — a perfect image, a brilliant prompt, a clever piece of code. Then you lost it. Here's the trick that fixes that permanently.

AIProductivityTipsPrompting
8 min read

Mapping Out How You Think

I'm undoubtedly a deep thinker. But a few months ago it hit me that I'd never actually questioned how I think. Not what I think about — how I do it.

Self-improvementProductivityMental HealthOpinion
6 min read

SPA is Overrated — Go Hybrid

The debate between SPA and MPA is a false choice. A hybrid architecture gives you the best of both worlds, and it's easier to set up than you think.

ArchitectureJavaScriptNext.jsWebPerformance
6 min read

Using AI to Train Mental Flexibility in the Kitchen

I started using AI to pick random ingredients and force myself to cook under constraints. It turns out it's less about food and more about training your brain to think differently.

AIProductivityCreativityOpinion
10 min read

How to Actually Give Estimates That Hold

You think you know how long something will take. You don't. Here's the process that gets you close enough to not embarrass yourself.

ProductivityEngineeringProject ManagementTips
6 min read

Test-Driven Prompt Engineering

Claude will probably cover the edge cases you forgot. But being explicit in your prompts still matters — and tests are how you make that explicitness stick.

AIProductivityTypeScriptTestingTips
5 min read

Stop Wiring Every Input to useState

React developers reach for useState on every input field by reflex. Most of the time, the browser already handles this for you — and FormData does the rest.

ReactJavaScriptTypeScriptWeb
7 min read

Solve Problems Backwards

Start with what the solution looks like. Work backwards. Work forwards. Find where the two paths meet — that's your problem.

ProductivityProblem-solvingTips
6 min read

Dependency Injection: Write Once, Use Everywhere

Keeping your business logic separate from the framework it runs in isn't just good architecture — it makes your code portable, testable, and far easier to maintain.

TypeScriptJavaScriptReactTestingArchitecture
7 min read

To-Do Lists for the Scattered Mind

I've tried every productivity system. None of them stuck. Here's what I actually do instead — and why it works better for the way my brain operates.

ProductivityMental HealthToolsHabits