Inspiration
I come from an immigrant family and have seen firsthand how hard my parents worked to provide for us. Even back in highschool, my dad would sleep 4-6 hours in order to make ends meet.
So when I learned how rampant squatting happens, especially to hardworking families, it hit home personally. I heard of these not just in news stories, but from people in my own community. I feel the frustration and helplessness from using a broken system and wanted to take action.
I want to change the narrative of what a landlord looks like. Many are regular people working hard to build a future, not wealthy investors. But in facing issues like squatting, they risk losing their life savings and endure significant mental stress.
Ultimately, my goal is to ensure fairness - both for landlords and tenants - to create a system that protects access to safe, stable housing for everyone.
Background Research
So, how big is this problem? I wanted to find out.
When tenants don’t pay rent, landlords must file an L1 application (used for tenant non-payment) with the Landlord and Tenant Board. While hearings in theory are supposed to happen within 4 months, delays often stretch that to a year - imagine waiting that long for an eviction order.
According to LTB’s open data: L1 cases make up 54% of all filings so far in 2025, and 61% between 2017 - 2025. Just in the past year alone, 56,784 out of 109,731 cases were L1 filings related to squatting.
In addition, there’s no official dataset that tracks unpaid rent amounts. That data is scattered across LTB rulings, police reports, or civil court filings (especially when the amount owed exceeds $35,000).
The data does show that between 2018-2021, Toronto issued nearly 63,000 eviction notices, with 80% for non-payment. There’s no clear dollar value, but this scale hints at multiple millions of dollars in Toronto alone.
Long answer short: It’s a huge problem.
What it does
SquatterWatch is a platform designed to bring visibility, accountability, and prevention to the rental crisis. Right now, there’s no public registry of squatters, no centralized reporting, and no way to track repeat offenders. SquatterWatch fills that gap by empowering landlords or municipalities to:
- Check if a tenant has a history of squatting
- View key metrics on active squatters and eviction trends
- Submit rent delinquency reports directly to credit bureaus like Equifax
- File L1 eviction cases directly to the Ontario Tribunal Portal.
With SquatterWatch, landlords can take proactive steps to protect their property—and help restore fairness to the rental system.
How I built it
I was inspired by community-led platforms like OpenRoom or FrontLobby. There’s also many informal adhoc tenant blacklists floating around Reddit or Facebook. It’s proof that people are already trying to solve this problem!
As a designer, I started in Figma to determine the general layout, styling, and user flows. Once I had that, I jumped into bolt.new. I watched a number of bolt.new tutorials and then began playing.
There was definitely a learning curve. I realized that Bolt responds best to prompts with a wider view, like a wireframe, and then filling in the details. This works way better than dropping in polished Figma mocks or screenshots. That was a big lesson early on.
Whenever I hit a technical wall (which happened quite a bit!!), I turned to Windsurf to help troubleshoot and refine the code, then brought those fixes back into Bolt.
To finish it off, I followed Bolt’s steps to deploy on Netlify and linked it to a free domain. And that’s how the project came together!
Challenges I ran into
The biggest challenge was when Bolt.new would unexpectedly break. As someone with very limited coding experience, I often didn’t know how to fix what went wrong.
Thankfully I discovered Windsurf, a code-focused AI tool. Halfway through the project, my Bolt file became too large and buggy, so I asked Windsurf to clean up the code. I simply copied the code from Bolt, ran it through Windsurf, and pasted it back. To be honest, I’m not too sure what code was changed but it worked! Problem solved.
Another issue was how fragile Bolt prompts can be. Sometimes, something as small as asking to add a logo would shift the entire layout and change the colour scheme. This happened at the end, when I was just trying to add the Bolt badge. Eventually, I used Windsurf to write the logo code instead and then manually inserted it into Bolt.
If I had more time, I would focus on fixing the site’s responsiveness. It looked okay at first, but sometimes Bolt would undo progress in certain sections and revert to earlier versions—so it was a bit of a fight to maintain consistency.
Accomplishments that I'm proud of
I’m really proud of how far I’ve come—especially as someone without a coding background. Even though the site has limited functionality, getting the map API to work, adding basic search and filtering, and making it possible to click and locate someone on the map felt like huge wins.
To set expectations, this is more like a front-end project.
Just two and a half weeks ago, I had never used Bolt.new or Windsurf. I wasn’t sure if I could pull this off, but I’ve learned a lot and I’m proud of the progress I’ve made. If I had more time, I’d love to set up a proper backend and see how far AI chat tools could help me go.
What's next for Squatter Watch
To take this project further, the next step would be building a proper backend and integrating with external systems—like the Ontario Tribunal portal and credit bureaus. Just like how Wealthsimple connects to the CRA to file taxes, SquatterWatch could connect directly to official systems to submit filings and verify data.
I’d also develop user profiles so landlords can track their cases, upload documentation, and manage communication with the tribunal—all in one place.
Lastly, accountability for landlords will be important.
Protecting innocent tenants - especially from false reports - is equally vital. Future versions of SquatterWatch can include safeguards like:
Verified Submissions Only: Reports must be tied to a verified landlord account using email, ID, and proof of property ownership, and case number from LTB.
Evidence Required for Reports: Each report would require supporting documents—such as bank statements, payment receipts, or eviction notices—to ensure credibility.
Tenant Dispute Mechanism: Tenants could dispute a report by submitting their own documentation. Disputed entries would be reviewed.
Transparent Report Labels: Each listing would display status (e.g. Verified, Disputed), source (e.g. Self-reported, Tribunal), and timestamp of last update.
Built With
- bolt.new
- figma
- lottie
- windsurf

Log in or sign up for Devpost to join the conversation.