Solve Canada See the whole map →

Track Your Report

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

solvecanada civic-tech singapore oneservice fragmentation

One country, one civic layer

Ahmed Nadar · · 4 min read

Singapore’s OneService app does not know or care which town council you happen to live under. You report a pothole, a stray shopping cart, a broken streetlight, and the app routes it to whichever agency owns that piece of ground, using your location and a description you barely had to write. You never choose an agency from a dropdown, because the country decided a resident should not have to know how its own government is organized just to tell it something is broken. Move across the island tomorrow and nothing about how you report a problem changes, because the system was never built around where you happened to be standing when you needed it.

Canada never made that decision, and the absence of a decision is not neutral. It is its own kind of choice, made a thousand small times instead of once.

Fragmentation nobody voted for

No council in this country ever sat down and voted to make reporting a pothole in Kitchener feel nothing like reporting one in Ottawa. It happened the way most infrastructure gaps happen, one procurement cycle at a time. A city needs a customer service system, so it runs a tender, signs a vendor, and builds a form around whatever that vendor’s software could do. Five years later the vendor contract comes up again, or doesn’t, and the form gets patched instead of rethought, because rethinking a resident-facing system is a much harder sell to a budget committee than keeping the lights on the one that already exists.

Multiply that by every city, town, and township that runs its own 311 line or its own version of one, and you get a country where the same pothole requires a different form depending entirely on which side of an invisible line it happens to sit. Nobody planned that outcome. Everybody’s individual decision made sense on its own terms, and the sum of all those sensible decisions is a resident who has to relearn how to be heard every time they cross a municipal boundary, whether that is a move, a commute, or a weekend trip to see family in another town.

The layer already exists

What Singapore proved is not that a country needs a single agency to run everything. OneService sits on top of dozens of agencies that still run their own operations underneath it. What it proved is that the layer a resident touches and the machinery a government runs do not have to be the same layer, and that decoupling the two is what makes one login possible across an entire country.

That is the part Canada has been missing, and it is the part that is no longer missing everywhere. Six cities now run under Solve Canada, each keeping its own name, its own council, its own departments doing the actual work exactly as they always have. A resident with an account in one of those six cities already has an account that works in the other five. Move from Toronto to Kitchener, or from Ottawa to Waterloo for work, and the report you file looks and works exactly the way it did wherever you came from.

The gap left is not a technical one

I want to be precise about what six cities does and does not prove. It does not prove every Canadian city is covered, and it is not a claim that the largest problem in Canadian civic infrastructure is solved. What it proves is narrower and, I think, more important: that the reason this layer didn’t exist was never that it couldn’t. It was that nobody had built it, because nobody had reason to build past their own city’s boundary until residents crossing that boundary asked for it.

The layer runs in six cities today. What it took to get there was never a discovery. It was a decision to stop treating every city’s reporting system as its own separate problem, made once, and repeated five more times because the first city proved it would hold.