Home / All work · 12 projects
Every project, in one scroll.
Lane 01 of 03 · 4 projects
Live
In use, in production, or running every week.
Keep scrolling ↓
Live · 01 / 04
LeaseLoop
- Role
- Co-founder with Noah
- When
- 2025 – present
- Status
- Live
- Built with
- Node.js · Express · PostgreSQL · Better Auth
One workspace for everyone around a rental property, from owners and managers to renters and the people who fix things.
Read the case studyVisit leaseloop.ca ↗ (opens in a new tab)

Walk through LeaseLoop
Scroll ↓ to move →Swipe sideways →
01One list of what needs a personToday pulls maintenance, rent and leases into a single queue. Lyra adds a short note to each row, such as how many quotes have come in or that a report mentions gas.

02Quotes compared on what's verifiedFor a leaking toilet, two plumbers quoted $380 and $560. Lyra lays out the budget, availability and which licences and insurance were actually checked, and flags the one over budget.

03Possible emergencies go to a personLeaseLoop doesn't decide whether a gas smell is an emergency. Lyra marks it urgent and says plainly that a person should review it now.

04Evidence, recommendation, decisionEvery suggestion shows what it read, what it recommends and the choices left to you. Decisions are logged with a name and a time.

05Lyra's queue, and an off switchLyra's page lists everything it has prepared, grouped by urgency, with an activity log of what it actually did and a Pause button.

06Applications against the unit's criteriaApplicants are compared only with the criteria set for the unit. A low income is flagged for review, not treated as a rejection, and LeaseLoop never approves or declines anyone.

07A bill arrives as a draftA provider's $189 invoice lands as a draft. LeaseLoop asks who paid and points out the field it read with low confidence before anything touches the books.

08Posted entries split between ownersPosting records who paid and each owner's share in one step. Entries are never edited; mistakes are corrected or reversed in full.

09Who owes whomSettlements net out what each owner paid against their agreed share. In this example, one co-owner owes the other $168.

10The provider's sideThe plumber sees quote requests, visits agreed with renters and jobs in progress. A quote isn't a booking; the job still has to be accepted.
End of LeaseLoop
Up next →
Valuation AppKeep scrollingLive · 02 / 04
Valuation App
- Role
- Designed and built
- When
- 2026 – present
- Status
- Private
- Built with
- Python · SEC EDGAR · pytest · mypy
A weekly research run that values groups of public companies six ways and keeps every result as history.

End of Valuation App
Up next →
Life OSKeep scrollingLive · 03 / 04
Life OS
- Role
- Designed and built
- When
- 2026 – present
- Status
- v0.3
- Built with
- Tauri 2 · React · TypeScript · Rust
A desktop app that keeps a school year and a personal to-do list in one calm place.

End of Life OS
Up next →
Financial Planner OSKeep scrollingLive · 04 / 04
Financial Planner OS
- Role
- Designed and built
- When
- 2026
- Status
- Built
- Built with
- Next.js · TypeScript · Supabase · Tauri
A personal financial planning workspace, from cash flow and goals to tax planning and an annual review, packaged as a desktop app.

Walk through Financial Planner OS
Scroll ↓ to move →Swipe sideways →
01Home baseThe dashboard shows net worth by type, a health score, the savings rate and the next step in the plan, and recalculates as the profile fills in.

02A plan built in orderThe plan has eleven stages, from defining what the money is for, through an emergency fund, goals, and tax and estate planning, to an annual review. Each stage unlocks the next.

03Where every dollar goesIncome flows into essential expenses, savings, debt and what's still unallocated, so the gaps are visible at a glance.

04The time machineIt projects net worth from today to retirement under three scenarios, with a sandbox for testing changes such as extra monthly investing.

05What-if plannerMove the levers for income, expenses, return and time, and the projected net worth updates as you drag.

06Canadian tax roomUnused TFSA, RRSP and FHSA room is shown in one place, with strategies to work through and track.
End of Financial Planner OS
Up next →
Lane 02 of 03 · 4 projects
Playground R&D
On the bench right now. Real code, moving targets.
Keep scrolling ↓
Playground R&D · 01 / 04
OurBudget
- Role
- Designing and building
- When
- 2026 – present
- Status
- In development
- Built with
- TypeScript · PostgreSQL · Drizzle · Supabase
A personal finance app for Canadians that connects to real bank and brokerage accounts.

Walk through OurBudget
Scroll ↓ to move →Swipe sideways →
01The month at a glanceSpending against budget, net worth, transactions waiting for review, top categories and the next two weeks of bills all sit on one screen.

02Transactions in three panesTransactions are grouped by day, each with its account and category. Pick one to categorize it, tag it, mark it as reviewed or link it to a recurring bill.

03Accounts and net worthThis page shows net worth over time, accounts grouped by type and each account's history. Bank and brokerage connections live here and are read-only by design.

04InvestmentsBalances, holdings and the day's top movers are shown across investment accounts, and each account has its own chart.

05Budgets by categoryEach category shows spending against its budget, and opening one reveals its subcategories and month-by-month history.

06Recurring billsSubscriptions and bills are detected from matching rules, with what's left to pay this month, overdue items and each bill's history.
End of OurBudget
Up next →
Playground R&D · 02 / 04
LexiFlow
- Role
- Designing and building
- When
- 2026
- Status
- In development
- Built with
- Electron · React · Python · FastAPI
A background dictionary. Highlight a word in any app to see what it means in context, then review it until it sticks.
Looking up an unfamiliar word means leaving what you're reading, and words you look up once are usually forgotten by the next week.
End of LexiFlow
Up next →
SignalSiftKeep scrollingPlayground R&D · 03 / 04
SignalSift
- Role
- Designing and building
- When
- 2026
- Status
- In development
- Built with
- TypeScript · Node.js · PostgreSQL · Docker
Saved posts from Instagram, TikTok, X and YouTube become a searchable personal knowledge base. Tap Share, choose SignalSift, and you're done.

Walk through SignalSift
Scroll ↓ to move →Swipe sideways →
01The promise, written downThe goal fits on one screen. A save should be confirmed in under five seconds, even offline, while workers transcribe, summarize and tag it afterwards.

02One save, end to endEach capture moves through the pipeline, from captured to extracted, summarized and indexed, and only asks the user for input when extraction is blocked.

03Honest about each platformFinished cards are tagged and searchable. A risk panel records which platforms have clean data access and which need user-assisted fallbacks.
End of SignalSift
Up next →
BetweenKeep scrollingPlayground R&D · 04 / 04
Between
- Role
- Designed and built
- When
- 2026
- Status
- v1, in development
- Built with
- Next.js · React · TypeScript · Zustand
A recurring ritual for the people who matter most, with guided conversations that build a lasting shared history.

End of Between
Up next →
Lane 03 of 03 · 4 projects
Experimental
Sketches, prototypes, class work and one-off builds.
Keep scrolling ↓
Experimental · 01 / 04
Circle
- Role
- Designed and built
- When
- 2026
- Status
- Prototype
- Built with
- Next.js · TypeScript · Firebase · Firestore
A minimal, real-time shared habit tracker that answers two questions: what do I need to do today, and how is my circle doing?
Habits stick better with a little accountability, but most trackers are either solitary or turn into social feeds.
End of Circle
Up next →
Discord Project BotKeep scrollingExperimental · 02 / 04
Discord Project Bot
- Role
- Designed and built
- When
- 2026
- Status
- Built
- Built with
- Node.js · discord.js · Express · SQLite
A bot that runs a team's projects inside Discord, with a channel per project, lifecycle stages, GitHub activity and a live dashboard.

End of Discord Project Bot
Up next →
Experimental · 03 / 04
Gari's Asia Trip
- Role
- Designed and built
- When
- Spring 2026
- Status
- Complete
- Built with
- React · Vite · Tailwind CSS · Motion
A day-by-day timeline for following along with a spring 2026 trip through Korea and Taiwan.
Instead of a photo dump, the trip reads as a timeline: each day with its place and a short story, from leaving Calgary on April 29 through Seoul, Busan, Ansan and Gwacheon, then Taipei, Jiufen and Pingxi, and Yilan.
End of Gari's Asia Trip
Up next →
Experimental · 04 / 04
Alberta Hospital Management System
- Role
- Built with Luke and Emily
- When
- 2026
- Status
- Complete
- Built with
- Python
A Python system for managing doctors and patients across a network of small rural hospitals.
A fictional provider, Alberta Hospital, needs simple tools to manage doctor profiles and patient records for mini-hospitals serving underserved rural areas.
End of Alberta Hospital Management System
You reached the end of the work.