Inspiration
Imagine hearing that three towers could go up beside the bus stop you use every Monday. You open the city notice and find an address, an application number, and a meeting date. You still want to know three things. Has this been approved? What would change on my street? Can I still have a say? We built Your Monday around those questions. We called it Your Monday because a commute, a grocery stop, or a household bill gives residents a familiar place to start. Few people know the number of the council item that affects them. Most can point to the street they take to work.
What it does
A resident saves places and routes on a map. Your Monday shows proposals along the way and explains why each one appeared. On Finch Avenue East, for example, a resident can open a real application for three towers, compare the proposed heights with the street today, and see that the application is still under review. The same page links to the official record and lists the published consultation date. Other decisions need different kinds of explanation. A resident can select their ward to check whether a housing rule applies there. For a property tax decision, they can enter an assessed value and see how the adopted rate produces an estimated bill. Municipal staff have their own workspace. They can preview a policy before publishing it, read questions grouped by topic, and reply with a source. Residents can see when staff open and answer their questions. The local demo desk and the city’s official participation channels are labelled separately.
How we built it
We built the interface in JavaScript and the map with MapLibre GL JS. To find relevant proposals, we compare each project location with the segments of a saved route. A project within 500 metres can appear as nearby, even halfway through a long commute. For a road closure, we compare the route with the affected stretch of road using a tighter 25-metre tolerance. This lets the page explain the difference between construction near someone’s route and a closure on a street they use. We structured each decision as a series of steps. A staff recommendation, a committee decision, and a council decision can each have their own date, wording, and source. We also store meeting dates and speaker registration deadlines separately. The countdown uses the date published for that particular action. A Node.js server stores policy revisions, resident questions, and staff replies in SQLite. Server-Sent Events notify open pages when something changes. During the demo, a resident can send a question in one window and watch its status change when staff open it in another.
Challenges we ran into
The hardest part was simplifying a policy without changing its meaning. Toronto’s sixplex decision gave us a concrete example. Staff recommended allowing up to six homes per lot across the city. Council adopted the change in nine wards. A headline like “Toronto allows six homes per lot” is easy to read, but it drops the detail that determines whether the rule applies to the reader. We put the recommendation beside the final decision and added a ward selector so residents can answer that question directly. Our first idea was a full 3D version of the city. When we worked on Finch Avenue, we could use the published tower heights of 26, 28, and 14 storeys. The map and those numbers alone could not tell us the exact footprint or placement of each tower. A detailed rendering would have made our guesses look official. We kept a simpler 3D comparison to show scale. We used the surrounding record to explain who proposed the towers, what remained open, and where to find the original material.
Accomplishments that we're proud of
We can demonstrate the full path of one question. A resident clicks a proposal near their bus stop and asks about transit capacity. Staff see the question under that proposal, open it, and reply with the consultation notice. The resident receives the reply in their inbox and can follow the source themselves. That whole exchange works across two browser windows without a manual refresh.
What we learned
Plain language takes more than short sentences. It also takes the right verb, a named decision maker, and a clear statement of who is affected. “Staff recommended” and “Council approved” are both simple phrases. Choosing the correct one required reading the decision history. The same care applies to dates. Giving someone the meeting date is only helpful if they also know whether they must register earlier to speak.
What's next for Your Monday
Our next step is to give residents an unfamiliar agenda item and ask them to complete three tasks without our help: identify what has been decided, check whether it affects them, and find their next opportunity to participate. We also want municipal clerks to review the same summaries against the original records. Before a pilot, we would test how quickly staff can correct a published card when a proposal changes or a meeting moves. That update matters most to the resident already planning around it.
Built With
- css
- geojson
- html5
- javascript
- maplibre
- node.js
- openstreetmap
- pdf.js
- server-sent
- sqlite