Inspiration
Housing problems rarely happen in a single moment. A leak, repair delay, damaged unit, or unresolved maintenance issue can develop over days or weeks. During that time, evidence gets scattered across photos, texts, emails, notes, and memory.
I wanted to create something simpler: a tool that helps a renter document the situation while it is happening, before they suddenly need to reconstruct everything later.
That became TenantLog BC, a privacy-first documentation tool designed initially for renters in British Columbia.
What it does
TenantLog BC gives renters one place to build a chronological record of a housing issue.
Users can:
Create separate issue logs Record when an issue was first noticed Add dated updates as the situation develops Attach supporting photos View the complete history as a timeline Export the record as a clean PDF evidence pack Try the workflow through a built-in demo
The product does not require an account or cloud database. Records remain stored locally in the user's browser.
The goal is not to determine who is right or provide legal advice. It is simply to make documenting what happened, when it happened, and what evidence exists much easier.
How we built it
TenantLog BC is a web application built with:
React TypeScript Vite Client-side browser storage Client-side PDF generation
I used Bolt.new as an AI-assisted development environment. AI helped with implementation, while I directed the problem definition, product requirements, user flows, interface decisions, testing, debugging, and iterations.
I deliberately kept the architecture local-first. Instead of building authentication, user profiles, and a backend database, the application stores records directly in the browser. This reduced complexity while also supporting the privacy goal of the project.
I then deployed a working version, tested the complete workflow, connected the project to GitHub, and documented the code and product publicly.
Challenges we ran into
One challenge was balancing simplicity with usefulness. It would have been easy to keep adding features, but the core product needed to remain understandable to someone dealing with an already stressful housing problem.
Privacy created another design constraint. Keeping everything on-device avoids unnecessary collection of sensitive housing information, but it also means users need to understand that clearing browser data can remove their records. I added clear messaging around this and made exported PDFs independent copies.
Testing also uncovered smaller technical problems that mattered to the experience. For example, I found a date and timezone issue that could cause timestamps to display incorrectly and corrected it so records use the user's local time.
Another challenge was deciding how much the exported evidence pack should claim. TenantLog organizes information, but it does not verify or certify that information. I made that limitation explicit instead of presenting the output as something it is not.
Accomplishments that we're proud of
The biggest accomplishment is that TenantLog BC became a working end-to-end product rather than just an idea.
A renter can go from:
creating an issue → documenting updates → attaching supporting information → building a timeline → exporting the record as a PDF
without creating an account or sending their data to a cloud database.
I am also proud that the product has a very narrow purpose. Rather than trying to become an all-in-one housing platform, TenantLog focuses on one problem: helping renters create better records while events are unfolding.
What we learned
I learned that building a useful product is not mainly about adding more features. A large part of the work is deciding what not to build.
I also learned how much small product decisions matter. Wording, timestamps, privacy explanations, the order of screens, and the number of steps required to record an update can change whether a tool feels trustworthy and usable.
Using an AI-assisted development workflow also taught me that generating code is only one part of building software. Defining the problem clearly, specifying behavior, testing edge cases, catching mistakes, and repeatedly refining the experience still require deliberate product decisions.
Most importantly, I learned to turn a broad problem, renters struggling with documentation, into a specific workflow that can actually be tested.
What's next for TenantLog BC
The next step is deeper testing with renters and organizations that work directly with tenants.
Based on that feedback, I would like to improve:
Mobile usability and accessibility PDF layout and customization Guidance for documenting different types of housing issues Import/export and backup options that preserve the local-first model Clearer onboarding for first-time users Additional privacy-preserving ways to maintain records across devices
The long-term goal is to keep TenantLog simple while making it more useful in the moments when good documentation matters most.
Built With
- bolt.new
- css
- html
- react
- typescript
- vite