All Project Templates

Keyring

by Yard
Keyring preview
Gallery image 0
Gallery image 1
Gallery image 2
Gallery image 3
Gallery image 4
Gallery image 5

A landlord and tenant portal you can run as your own. Landlords add their buildings and units, start leases, and invite tenants with a link. Tenants see their unit, pay what's due, and ask for repairs. Both sides watch it happen live: a payment lands on the rent roll the moment it's made, and a repair request's status changes on the tenant's screen the moment the landlord moves it. It ships with sign-in, a database, realtime properties, a subscription with a free trial, and a polished landing page, all running on Yard.

Features

  • A rent roll that adds itself up: occupancy, collected, and outstanding for every property, with each unit's tenants and status at a glance
  • Units in bulk: add a whole building at once with ranges like 101-110, 2A-2F
  • Leases with their own ledger: set the rent and the due day, schedule rent changes for a future month, and add one-off charges like deposits, late fees, and utilities. Unpaid charges can be voided
  • Invite links that work once: each tenant gets their own link, good for 14 days, and whoever signs in with it first moves in. Up to six tenants share a lease
  • Roommates share one bill: two people pressing Pay at the same moment still produce one payment
  • Rent is never stored: it's worked out from the lease terms every time a ledger is read, so nothing has to run on the 1st and an amount a tenant has already seen never changes under them
  • Simulated checkout: tenants pay with test cards, and landlords can record cash and checks. Every payment gets a receipt that never changes
  • Repair requests with live threads: move a request from submitted to resolved, and talk it through in a thread that updates on both ends, typing indicators included
  • Announcements to every tenant: post once and it reaches every home in the building. Pin the one that matters
  • Losing access takes effect now: removing a tenant or ending a lease closes their open pages right away
  • Two portals, one app: a landlord who also rents a flat elsewhere switches between portals from the top bar
  • Light and dark themes that follow your system, with a toggle to override it

Built on Yard

  • Yard Auth: landlords and tenants sign in wiring never handles a password
  • Hosted service: the entire backend is a single fetch handler with no server to run or scale
  • Rooms: each property is its own realtime room. The landlord and that property's tenants connect to it, and each event reaches only the people it concerns. A property with no activity costs no compute
  • Database: properties, units, leases, charges, payments, requests, and announcements live in the project's own SQLite database, and migrations apply themselves on deploy
  • Pricing: one Landlord tier at $50 a month with a 14-day free trial that needs no card. Tenants never pay. When a trial ends unconverted, the landlord keeps read-only acice nothing

Technical details

  • Plain HTML, CSS, and JavaScript ES modules withository deploys as it is
  • The server is the paywall: every landlord write checks the Landlord plan, and anything you're not part of answers 404, so ids can't be probed
  • A payment can't land twice: each paid item is unique per lease, so concurrent payments and voids resolve to one outcome
  • Repair-thread comments are relayed instantly and written to the database in one batch per five-second burst, not one write per comment
  • Typing indicators are throttled to one every 2.5 seconds and never stored, which keeps metered room usage low
  • Logs never include names, emails, addresses, amounts, or comment text, and ids are cut to 8 characters

Requirements

A Pro plan, for the hosted service, database, rooms, and custom landing page. Your plan must also allow a subscription tier with a free trial. Yard Auth is included.

Rent payments inside Keyring are simulated with test cards: no payment provider is involved and no money moves. The Landlord plan is a real Yard subscription for whoever runs the copy.