Track Your Report

Enter your SolveTO reference (STO-A3F7K2) or your city 311 reference number.

Blog

What I'm building, what I'm learning, and why civic tech matters.

· 3 min read ttc transit toronto civic-tech open-data

Your bus stop has a story. You just couldn't see it.

311 doesn't know if your bus route is cancelled. TTC doesn't know if your stop bench is broken. You're supposed to check two apps and figure it out yourself. We connected them.

Read more
· 6 min read civic-intelligence canada open-data democracy government

Canada is #47. The gap is not resources.

The UN E-Government Development Index ranks 193 countries on how well they use digital technology to serve citizens. Canada is #47. Denmark is #1. The distance between them is not money or talent. It is a choice.

Read more
· 4 min read civic-literacy toronto open-data democracy council

Toronto council voting records, in plain language.

Toronto's council voting records are public — sitting on open data, buried in PDFs written for procedure, not for people. SolveTO makes them readable.

Read more
· 4 min read rails solid-queue ruby debugging

Solid Queue recurring jobs silently break with Ruby keyword arguments

A one-character bug caused 55 silent failures in two days. Solid Queue's recurring.yml passes args as a positional hash, but Ruby 3.3 won't auto-convert that to keyword arguments. Here's the fix and what it taught me about monitoring.

Read more
· 6 min read infrastructure open-data civic-tech toronto

418,000 assets, one map, and why it matters

Toronto has been collecting infrastructure data for decades. Catch basins, hydrants, traffic signals, sewer networks. All public. All free. None of it was connected. Until now.

Read more
· 7 min read feature design snap

Why Snap exists

My wife took a blurry photo of a pothole from a moving car. The AI couldn't read it. That failure led to a voice-first reporting tool that works at a red light in 10 seconds.

Read more
· 3 min read technical seo rails

1,300 pages from one database

SolveTO went from 185 indexable pages to 1,300+ by generating ward-level, issue-level, and councillor-level pages from existing data. Here's the strategy.

Read more
· 4 min read recap weekly

Week 1 recap: media interviews and feedback that matter

46 reports across 20 wards, five media interviews, a flood of feedback from Torontonians on Twitter, and new features: reference numbers, duplicate detection, face redaction, and a homelessness category.

Read more
· 2 min read feature tracking

Every report now has a reference number

Track your civic report anytime with a unique SolveTO reference number. No account needed.

Read more
· 4 min read feature privacy homelessness

Every face in a civic report deserves dignity

When someone reports a person sleeping rough on a sidewalk, they're asking for help, not publishing a mugshot. How I built face redaction and a homelessness issue type into SolveTO.

Read more

Stay in the loop

Get occasional updates on what we're building and how Toronto is improving.