All projects

Startup

LeaseLoop

One workspace for everyone around a rental property, from owners and managers to renters and the people who fix things.

Role
Founder, co-founded with Noah
When
2025 – present
Status
Live
Built with
Node.js, Express, PostgreSQL, Better Auth, zod, Playwright

Visit leaseloop.ca (opens in a new tab)

Walkthrough

Walk through LeaseLoop

Real screens from LeaseLoop's demo build, with Lyra and the accounting feature switched on. Pick a role or step through it.

Manager's Today view listing six items that need a decision, with Lyra's notes under each and recent activity on the right

Every person, property and company here is fictional demo data. Lyra ran on its deterministic rules for these screens, with no AI calls.

  1. Problem

    Renting out a property runs on scattered texts, spreadsheets and email threads. Owners can't see what's happening, renters can't tell whether a repair is moving, and nobody has a reliable record of who agreed to what.

  2. Approach

    Put properties, leases, rent records, maintenance, documents and messages in one place, and let each person see only what their relationship to the property allows. Pair it with an operations agent that handles the follow-up work but leaves every decision to a person.

  3. Implementation

    Node.js and Express 5 on PostgreSQL, with Better Auth sessions and strict zod validation on every input. Authorization is relationship-based and enforced on the server for every request: managers are assigned per property, renters reach only their active lease, and providers reach only the work assigned to them. Every change is written to an append-only audit log in the same transaction. The agent runs on deterministic rules, with a language model optional. Integration tests run against an embedded Postgres, with Playwright for the browser.

  4. Outcome

    The public site is live at leaseloop.ca, and the product is being hardened for a wider beta.