← notes

KISS web apps in the age of AI agents

2026-05-03

My dad is a brilliant programmer. Last week he used Claude Code to drum up a simple web app for personal use. He doesn't work in web tech - he works in games and game engines. So, he deferred to Claude on the underlying tech stack.

Claude did everything 100% textbook: Electron, React.js, Zustand, etc. But for a simple personal-use app with simple functionality, this was absurd bloat and total overkill. A tech stack optimized for a 20+ person team at an organization with revenue measured in millions, not a hobbyist weekend project.

I grew up programming using Lua and Love2D, which I think was a fantastic way to learn programming. I also think I gravitated towards it because it is so simple - you can just call love.graphics.circle() and draw a circle on the screen. No scene graph or anything.

Because of this, when I first started learning JavaScript and web tech when I was 19, I gravitated towards vanilla JS and raw client-side HTML5 that I opened by double-clicking the .html file on my disk. Only later learned that there was a thing called "node". And I still think, even after working in production NodeJS/TypeScript/React software at NASA, that basic vanilla HTML5/ES5 is dramatically underrated.

I have to inform this to my AI agent of choice whenever I want to drum up a web app, so over doing this a few times I've settled on a stack and corresponding SKILL.md file which I like which I call KISS - "Keep It Simple, Stupid!".

The core of it is, of course: - use vanilla HTML and JS - use CDNs or copy-paste JS into a libs or vendor folder in your source directory instead of using a package manager - use NW.js or a Python webview instead of Electron, since both are much more similar to simple client-side webdev with some added permissions - in general, keep it simple and maintainable

This allows for compact, concise, readable SPAs without bloat or cruft that run super fast. I used this when developing GrobPaint, for example.

I also wrote up a skill file for this so you can hand it to your own AI agents. Please use it! :) simple-python-vanilla-js-web-skill.md.