SchoolScan CA
Canada's school directory with 9,300+ schools from Ontario, British Columbia and Alberta in comparable profiles. An own product from my network of sites: Laravel, MySQL and programmatic SEO on provincial open data, designed, built and operated by me end to end.
Why it exists: three school systems that don't talk to each other
In Canada, education is a provincial matter: each province publishes its school data on its own official portal, in its own format, with its own naming conventions and its own update schedule. For a family moving from Toronto to Calgary, comparing schools means hopping between incompatible government sites and building the comparison table by hand. That gap is exactly what SchoolScan CA fills: a single directory that unifies the official data from Ontario, British Columbia and Alberta into consistent profiles — school board, grade range, language program and location, always presented the same way.
It isn't client work: it's an own product from my network of sites and tools. I chose the niche, designed the data model, built the platform and I operate it. It pairs with SchoolScan AU, its sister version for Australian schools, with which it shares its technical foundation and philosophy: turning scattered public data into a browsable product that ranks on its own.
The flow the site proposes is deliberately simple — search, compare, decide — and it's designed for parents, not for techies.
What it lets you do
- Search by school name, city or school board, with filters for province and school level.
- Browse by province: Ontario (4,855 schools), Alberta (2,665) and British Columbia (1,824), each with its own hub.
- Four school types: public, Catholic, independent and francophone, each with its own explanatory page and its listing.
- Language-program pages: English, French and French Immersion.
- A French Immersion hub with 276 schools browsable by province, city and school board.
- Practical guides and a blog: how to choose a school in Canada, school fees, online learning, moving between provinces and more.
- A data-sources page documenting which official portal feeds each province and how often it is refreshed.
How it's built
1. Laravel architecture
- Laravel + PHP 8 backend on MySQL, with the three provincial datasets normalised into a single relational schema: schools, school boards, cities, types and programs.
- Clean, hierarchical routes (
/province/,/type/,/language/,/french-immersion) that mirror how people search, not how the database is organised. - Lightweight frontend: Tailwind CSS and Alpine.js compiled with Vite. No heavy JavaScript framework, no plugins, no dependencies left to rot.
2. Data pipeline
- Imports from the open data portals of Ontario, British Columbia and Alberta, each with its own source format.
- Normalisation into a single schema: names, school boards, grade ranges and language programs are harmonised so two schools from different provinces can be compared side by side.
- Source transparency: the site itself documents its sources and each province's refresh frequency on a public page.
3. Programmatic SEO
- Thousands of pages generated from data: school profile, city, school board, school type and language program, each with its own title, meta description and specific content.
- Structured data (Organization, WebSite with SearchAction, SiteNavigationElement and FAQ) so search engines and AI assistants understand the site.
- Hierarchical interlinking: province → city → school board → school, so queries as specific as "French Immersion schools in a particular Alberta city" land on a page built exactly for that.
4. Performance
- Server-side rendering with near-instant load times even with a catalogue running into thousands of pages.
- Cloudflare in front as CDN and anti-bot protection layer.
- Lazy-loaded images, Vite-versioned assets and purged utility CSS: page weight stays minimal.
Coverage and where the data comes from
The directory lists more than 9,344 schools spread across more than 1,289 cities and more than 584 school boards. Ontario contributes 4,855 schools, Alberta 2,665 and British Columbia 1,824, covering all four types in the Canadian system: public, Catholic, independent and francophone.
Every figure comes from the provincial open data portals — no opaque scraping, no untraceable third-party data. That transparency isn't just an ethical stance: it's what makes the product defensible in front of search engines and users alike.
The result
SchoolScan CA is live at schoolscan-ca.com as a digital asset that works on its own: a directory with thousands of indexable pages, an active editorial blog on Canadian education and an architecture designed to capture long-tail search without manual intervention. The same technical foundation is replicated in SchoolScan AU for Australia, which validates the model: a product template that turns scattered public data into directories that rank.
For me it's also a laboratory: what I test here — programmatic SEO, data normalisation, structured data, performance — ends up applied to my clients' projects with the risk already absorbed at home.
A few screenshots
Stack
Project website: Visit schoolscan-ca.com — an own product from my network of sites.
Quick answers about SchoolScan CA
Which provinces does SchoolScan CA cover?
Three: Ontario with 4,855 schools, Alberta with 2,665 and British Columbia with 1,824. In total, more than 9,344 schools spread across over 1,289 Canadian cities.
What does each school profile show?
Contact details, the school board, grade range, language programs and location. The goal is to let you compare schools side by side with consistent information.
Can I use it to find French Immersion?
Yes: a dedicated French Immersion hub gathers 276 schools, browsable by province, city and school board, alongside pages for each language program (English, French and immersion).
What types of school does the directory include?
Four: public, Catholic, independent and francophone. Each type has its own explanatory page with its list of schools.
Where does the school data come from?
From each province's open data portal. The site itself documents on its data-sources page which portal feeds each province and how often it is refreshed.
Is SchoolScan CA a client project?
No: it is an own product from my network of sites. I designed it, built it and operate it myself, and it has a sister version in Australia, SchoolScan AU, sharing the same technical foundation.
More of my own products
Sitting on scattered data that could become an asset?
Laravel, programmatic SEO and directories that rank on their own. A free 30-minute call, no strings attached.
Request a free quote