I build software that makes everyday life run a little smoother.

By day I run the long-term technical support of a portfolio of Municipal Government systems and vendor solutions. I lead and drive collaboration between colleagues and shepherd yearly teams of students.

After hours I build tools for the people around me: a lesson planner for teachers, a password manager I actually trust, and the app that runs our household.

Currently building kinhaven.

Cash forecast $4,861 kinhaven · next 60 days das Mädchen Au café Je voudrais un café. Add fractions 38 + 28 = 58 ✓ Two-factor · GitHub 482 913 Mole 3 · baseline Day 3 · 9:10 Math 7B Fractions on a number line

Built after hours

  1. kinhavenHome life, well kept
  2. VaultKnoxZero-knowledge password manager
  3. HolyMoleKeep an eye on your moles
  4. LernenGerman, French and Grade 5 math
  5. brewin'plansA planner built for teachers
  6. Cable management3D-printed, fitted at your desk

Home life, well kept

kinhaven

One calm place for your family's calendar, money, bills and chores, with a forecast that plans debts, the mortgage and a move years ahead.

Open kinhaven
Built withReactTypeScriptTailwindRechartsNode / ExpressNeon PostgresGoogle Calendar & GmailClaude APICloud Run

Debts, the mortgage and the years ahead

The same engine that runs the cash forecast looks up to 25 years ahead, so paying off debts, the mortgage and the next home all show up on one timeline. Change how far ahead it looks, or the order debts are paid off, and it runs again.

Cash forecast · long term
Debt-free
Car loan paid off
Mortgage-free
Cash ahead
More about kinhaven

Avalanche or Snowball

Cards, lines of credit and loans are paid down month by month: interest first, then the minimums, then the leftover plan's debt share onto one debt at a time. When a debt is gone, its minimum rolls into the next. Both orders are compared with paying minimums only.

Mortgages, Payment by Payment

Loans are amortized on their own schedule (monthly, every two weeks or weekly), and mortgages compound twice a year, the way Canadian lenders quote them. It shows how each payment splits into interest and principal, the renewal date, your equity, and how much sooner double-up payments finish it.

When Can We Move?

Plan a sale and a purchase, and it finds the earliest possession date the forecast can support, at three levels of caution. A recommended date has to keep a cash reserve and still work if possession slips a month or two. It also tries other ways to split the leftover to see which one gets you there sooner.

Lender Rules, Checked

Every candidate date is checked against Canadian lending rules: the stress test, the GDS and TDS limits, the minimum down payment, CMHC insurance premiums and Alberta land titles fees. The rules are versioned, and each one cites its source and the date it was last checked.

Day to day

Cash Forecast by Pay Period

It starts from your real balance and steps through every payday and bill, plus a daily share of groceries and gas. Then it splits the months ahead into pay periods, so you see what each paycheque has to cover.

Bills That Update Themselves

With read-only Gmail access, it finds the newest Telus, Rogers and ENMAX e-bills and reads the amount due and the due date. Nothing changes until someone in the plan approves it.

Receipts, Read by Claude

Snap a photo or drop in a PDF. Claude reads the store, date, total and line items and suggests how to split it across your budget. It only counts once someone in the plan confirms it.

One Plan, Split Fairly

Partners sign in with their own Google accounts and share one budget, bill list and balance. Shared costs are split in proportion to income, while calendars, goals and tasks stay personal.

Zero-knowledge password manager

VaultKnox

A password manager that can't betray you.

Open VaultKnox
Built withReactWeb Crypto APIGoogle Sign-InCapacitor (Android)
More about VaultKnox

Zero-Knowledge by Design

Every credential is encrypted with AES-256-GCM on your device, using a key derived from your master password. The server only ever stores ciphertext, so not even I can read your vault.

Unlock Your Way

Unlock with your master password or your fingerprint. Google sign-in only confirms who you are, and an allowlist controls who gets in.

Built-In 2FA Codes

Keep TOTP secrets next to your logins and copy live codes in one click. Favorites, categories, import and export are built in too.

Security at a Glance

Each login shows its password strength, reuse across accounts, age and 2FA status. No analytics, no trackers, and your data is never sold.

Keep an eye on your moles

HolyMole

Pin each mole on a body map, keep a permanent baseline photo, and compare a new one every quarter. There's no server: your photos stay in your browser and your own Google Drive.

Open HolyMole
Built withReactTypeScriptViteTanStack QueryIndexedDB (Dexie)Web CryptoGoogle Drive APIClaude APIGitHub Pages
More about HolyMole

Baseline vs. Latest

A mole's first photo becomes its permanent baseline. Compare any later photo side by side or faded over it, or open the camera with the baseline ghosted on top so the new photo lines up.

A Second Look from Claude

Add your own Anthropic API key and Claude compares the baseline with a newer photo. It describes size, shape, border and colour, notes when lighting or angle limit the comparison, and never diagnoses. Photos are only sent when you ask.

Originals Never Change

Every photo is kept byte for byte with its SHA-256 fingerprint, and the same photo can't be added twice. The baseline can't be replaced, deleted or re-dated, and opening a save file re-checks every original.

Your File, Your Drive

Everything lives in the browser and in a save file you own, a plain ZIP. Sign in with Google and it syncs through your Drive, where it can only see files it created. Edits from two devices merge: the newest edit wins, and photos are only ever added.

German, French and Alberta Grade 5 math

Lernen

German and French from A1 to B2+, and Alberta Grade 5 math, in one app. The language courses cover words, grammar, everyday phrases and stories: about 3,100 words in German and 2,600 in French. Math follows Alberta's Grade 5 programme of studies, with hints, worked solutions and printable worksheets. No hearts, no paywall, no ads.

Open Lernen
Built withReactTypeScriptViteNodePiper (neural TTS)Web Speech APIGoogle Drive API
More about Lernen

German and French

Gentle Answer Checking

Capitals, punctuation and small typos are forgiven. In German, ae, oe, ue and ss count as ä, ö, ü and ß; in French, a missing accent is accepted with a note, except where it changes the word (a and à). Articles and endings still count, because that's the grammar. If the app gets it wrong, “I was right” overrides it.

Spaced Repetition, Word by Word

Every word, phrase and grammar sentence has its own review schedule, from a day up to 240 days. A miss drops an item two stages, never back to zero. Progress syncs between computers through Google Drive, merged word by word so neither one overwrites the other.

der, die, das, le, la and More

Lessons mix multiple choice, listening, articles (der/die/das or le/la), plurals, typing, fill-in-the-blank, word-bank sentences, dictation, matching pairs and story questions. Missed items come back later in the lesson, first the same way and then as an easier exercise.

A Natural German Voice

German audio comes from Thorsten, a neural voice that runs on your own PC through Piper: each sentence is generated once and cached as an MP3. The website plays the same voice from clips recorded in advance. French uses your browser's own French voices.

Alberta Grade 5 math

The third subject in the same app: all 13 outcomes and 82 skill statements of Alberta's Mathematics (K–6), Grade 5 programme of studies, in its own words, practised with 111 question families. No calculator, since the curriculum asks for these skills without one. English only.

Hints and a Second Try

A wrong answer gets a second try, with a specific tip when the mistake is a common one, like adding the denominators. A hint and “Show me how” are always there, and the right answer comes with its worked solution. Answers given with help count as practice, not as proof of mastery.

Mastery, Skill by Skill

Each of the 82 skill statements has its own level, from Practising to Mastered, worked out from answers given without help and from topic quizzes. It says what's needed for the next level, and brings a skill back for review when it's due.

Mad Minute and Worksheets

Quick-facts drills, with no timer unless you choose one. Worksheets can be done on screen and checked, or printed with a name line and an answer key on its own page.

A Buddy to Dress Up

XP, coins and reward boxes for finishing rounds and passing quizzes, spent on a shop of 24 original drawings. No real money, no ads and no penalty for missing a day.

A planner built for teachers

brewin'plans

Scheduling, lesson planning and outcome tracking in one place, built for teachers.

Open brewin'plans
Built withReactViteMUINode / ExpressPostgreSQLDockerGoogle Drive
More about brewin'plans

Plan the Whole Year

Set a rotating cycle schedule with minutes for each subject, then plan down from year to month to week. Lessons nest as topics → lessons → outcomes.

Track Outcomes Fast

Swipe to mark each student Not Yet, Approaching, Achieved or Exceeding on an outcome. A grade book and timeline show progress across the year.

Coffee Date: AI Grading

Print a QR code for each student, drop in their scanned tests, and let AI extract the marks or grade them against your answer key.

Roastin' Beans: AI Planning

Describe a unit or paste a yearly plan. It drafts topics and lessons mapped to your outcomes, ready for you to review and approve.

3D-printed, fitted at your desk

Home office cable management

Working from home with a tangle of cables under the desk? I come to you, measure your desk and equipment, and 3D-print the clips, trays and mounts to fit them. Then I install everything and route the cables, so the setup stays tidy. Local, in person.

Book a desk visit

Under-Desk Trays

Power bars, chargers and adapters go into a tray sized to your desk, up off the floor and out of sight.

Clips and Routing

Clips sized to your cables carry them along desk legs, monitor arms and the back edge, down to one neat run to the wall.

Mounts for the Small Things

Hooks and holders for headsets, laptop docks, routers and hubs, placed where you actually reach for them.

Made to Fit

Every part is measured on your desk and printed for it, so nothing is a near-enough fit from a store shelf.

How it works: send me a photo of your desk, I come by to measure and plan the routing, then I print the parts and install them.

How I work

Fullstack, start to finish

Frontend, backend and infrastructure. I diagnose odd issues, keep legacy systems healthy and automate the jobs people dread.

kinhaven moved from a JSON file to Postgres with a script that copies every row, reads it all back and only commits if nothing changed.

The problem before the code

I figure out what people actually need, then turn it into requirements and designs that hold up once real use starts.

brewin'plans schedules around rotating day cycles, because that's how many school timetables really work.

Plain language, shared decisions

I work closely with developers, managers and clients, and explain technical tradeoffs in words everyone can act on.

In kinhaven, nothing changes a shared bill until someone in the household approves it.

Say hello

adam@adamkarst.com

I'm also on LinkedIn, Instagram and Bluesky.