Money Tracker
The first full app here. It keeps your finance history in your browser and helps sort out spending, income, reimbursements, recurring payments, and the other stuff that gets messy in real life.
Open Money Tracker ↗
This is where I keep the web apps I make in my free time. I build things I would actually want to use myself, clean them up when they become useful, and leave them here for anyone else who finds them useful too.
The first full app here. It keeps your finance history in your browser and helps sort out spending, income, reimbursements, recurring payments, and the other stuff that gets messy in real life.
Open Money Tracker ↗KayWorks gives the apps one place to live, keeps track of what I’m working on, and gives me somewhere to explain how they work without turning every project into its own giant website.
I like making software in my free time. Most projects start with something pretty ordinary: I want a better way to keep track of something, an existing app is doing way more than I need, or I think a small annoyance could be handled better.
Once one of those projects gets useful enough, I clean it up and keep it here. I like making things that work well and letting other people use them if they happen to fit what they need.
I tend to prefer apps that open quickly, explain themselves, and do not make you create an account unless there is a real reason for one. If data can stay on your device and still do the job, that is usually where I want it.
Log strength workouts, runs, rides, and swims without turning every session into paperwork. You can enter things manually or paste messy notes and review the structured result before saving.
My private worldbuilding and story workspace for characters, places, timelines, continuity, plot work, maps, and manuscript material. The public demo uses sample data and stays separate from the private workspace.
A new version of a climbing tracker I originally made as a student, rebuilt around the way I like making apps now.
The finished projects live here, along with demo-only versions for projects that are not meant to expose their real data or private workspace.
Money Tracker is a local-first personal finance app for keeping track of spending, income, reimbursements, recurring payments, person-to-person payments, investments, and the stuff that usually gets messy between a bank statement and real life.
The point is not to turn budgeting into another chore. Put the information in, let the app organize it, and check the numbers when you actually want them.
Workout Tracker is a local-first fitness app for strength sessions, reusable workouts, running, cycling, swimming, progress history, and measurable goals.
You can log everything manually, or paste rough workout notes and let AI turn them into a structured draft that you review before anything is saved. The app handles the actual math for things like volume, pace, personal records, and goal progress.
UnWritten is my private worldbuilding and story-development workspace for organizing characters, locations, timelines, continuity, plot threads, maps, and manuscript material.
The real workspace uses private hosted storage, so it is not a public app. The separate public demo starts with fictional sample data and keeps each visitor's changes in their own browser.
This is where I keep projects that are still taking shape. Some will turn into finished apps, some may change a lot along the way.
Ascend is a climbing tracker I originally made as a student. I want to revisit it now with a cleaner interface, better history, and the same local-first approach I use for newer apps.
The direction includes sessions, climbs, grades, attempts, sends, flashes, projects, and progression. The old project gives me a useful starting point for rebuilding it around the way I make apps now.
If another small app solves a problem well enough that I keep using it, it will probably end up here too.
The basic idea is simple: use the lightest setup that can do the job reliably, then add structure when the app actually needs it.
The technical choices mostly exist so the app can stay easy to use.
If an app can remember what it needs in your browser, there is usually no reason to make you create a login first.
Where it makes sense, your data stays in browser storage on your device instead of being sent to a central database.
Local data can still be lost if browser storage is cleared or a device disappears. Apps with meaningful history should give you a way to export and restore it.
If an app stores its history in your browser, clearing that browser data or losing the device can also mean losing the history. That is why apps with important data should give you a way to export a backup.
Money Tracker is the first project here big enough to need a more structured codebase.
UI code should deal with the interface. Financial or other domain logic should work without depending on the screen. Storage should have a clear boundary instead of being scattered everywhere.
AI can be useful for turning messy text into structured input. Important calculations and stored behavior should still be validated and handled deterministically by the application.
HTML, CSS, JavaScript, browser APIs, and static hosting cover most of what these projects need. If a project needs more later, the setup can grow with it.
A tiny utility should stay tiny. A larger app can grow data, domain, parser, UI, test, and release layers when those boundaries actually make the project easier to maintain.