Skip to contentSkip to content
Expedition 17The Record RoomRegional Business Register (Live Product)77 towns across the Kootenays, BC

The Kootenay List

The region's business layer, rebuilt as a public record book that stays fresh.

5,682

Businesses on record

77

Kootenay towns

6,452

Sitemap URLs

100

Accessibility, mobile and desktop

kootenaylist.ca
The Kootenay List live site screenshot
A live product owned and run by the studio, for anyone whose product is trusted information

The region's business information was dead, stale, or paywalled.

01

Directories die of staleness

The incumbents did not lose to a better competitor. They lost to their own last-updated dates. A listing layer nobody maintains becomes a liability the first time someone drives to a closed shop.

02

The complete roster was paywalled

Chamber directories list members, which means they list who paid. A resident looking for every option does not care who paid, and a list that starts from membership can never be complete.

03

Google Maps cannot do judgment

Maps knows coordinates. It does not know that a category needs a region-wide page with town filters, that closed businesses should become history instead of ghosts, or that checked with a date beats verified with a shrug.

04

Free only works if it is structural

A free directory with a paid tier eventually ranks its payers. The List has no paid placement in its data model at all, so the promise cannot quietly break later.

The approach

Honesty as the product, freshness as the brand.

01

Build the data like a product

Harvest, filter, deduplicate, hand-check, and only then render: 5,682 real businesses from thousands of raw rows, with consent lanes in the schema and private data structurally excluded from the build.

02

Make freshness visible

Every record carries the date it was last checked and the public source it came from. The site says checked, not verified, because one is a fact and the other is a favour.

03

Design a civic register, not a startup

Bone, manila, and kraft paper, ruled entries, pressed stamps, and a living wall of real names. It looks like a public institution because that is the trust level the job requires.

04

Static so free stays free

No database, flat compiled JSON, custom search. A product with near-zero running costs is the only kind that can promise free forever and mean it.

The story

The thinking behind the build

The Kootenay List is not a concept and not a client job: it is a live product I built, launched, and maintain. The region's business information layer was either dead, stale, or behind a chamber paywall, so residents asked Facebook and hoped. The List answers with the only open, complete, region-wide business register in the Kootenays: free to search, free to be listed, with freshness you can actually see. It is also the most honest kind of proof my studio can offer, because anyone can visit it, today, and check my work.

Every small region has the same dead layer: a chamber directory behind a membership fee, a listings site that died in 2019 and still ranks, and a search engine full of ghosts. When a resident of Trail needs a plumber or a parent in Nelson needs a kids store, the honest answer has been to ask Facebook and hope. That layer is what The Kootenay List replaces.

The data is the product, so the data got built like a product. Thousands of harvested rows were filtered, deduplicated, and hand-checked down to 5,682 businesses that actually exist, across 77 towns and 112 categories. No Google-scraped data anywhere in the build. The consent lanes live in the schema itself: person-shaped listings render only what the business self-published, private contact data never enters the compiled dataset, and an automated gauntlet proves zero email leaks across the build output.

The design refuses the startup-directory look from the first pixel. The concept is the region's living business register: a public record book, so the palette is bone, manila, and kraft paper with record ink and a stamp blue, the type is a civic pairing with a mono voice for the data, and the signature is the living page: a wall of real business names that responds to touch and to typing, every name lifting its own ruled index card. It reads like a public institution because that is the job it is applying for.

Freshness is visible everywhere, and worded carefully. Every record carries the date of its last check, and the site says checked instead of verified on principle: verified is a claim, checked is a fact with a date on it. The header carries the living tally. Closed businesses move to marked history instead of vanishing, because the history is part of the record.

The engineering is deliberately boring in the best way: static output, no database, flat JSON compiled from the master dataset, and a custom search index that makes 5,682 records feel instant. That is why desktop Lighthouse reads 99 performance, 100 accessibility, 100 best practices, 100 SEO with a 0.9 second largest paint, and why the whole thing costs almost nothing to run, which is what free forever requires structurally.

The List is also the studio's proof of maintenance, which is the thing a website client actually worries about. Anyone can open any record and see when it was last checked. A prospect deciding whether I will still care about their site in a year can look at five thousand entries that answer the question with dates.

The launch is a beginning, not a finish line. The claim flow starts the long game of owners maintaining their own records, the statistics page starts the citation loop, and the region-wide category pages start compounding in search. A register earns its authority the same way it earned its data: one checked entry at a time.

Why it converts

What a resident, and a business owner, feels on the List.

For residents: it answers the real question

Every kids store between Trail and Nelson is one page, not twelve searches. Region-wide categories with town filters are the architecture, not a feature.

For business owners: being listed costs nothing

Free to be listed, free to claim, a dofollow link if you have a website, and a quiet honest state if you do not. Nobody can outrank you by paying.

For the region: the record keeps

Openings, closures, and changes become marked history instead of silent edits. A register that remembers is infrastructure, not a website.

The system

Everything that shipped.

I built a static Next.js platform that renders 5,682 businesses across 77 towns and 112 categories into 6,452 sitemap URLs, with no database behind it: the whole region compiles from a hand-maintained dataset into flat JSON. The front is a civic record book: a living wall of business names you can sweep with a keystroke, ruled entries on bone and manila paper, and a pressed stamp on every record showing the day it was last checked. Under it sit region-wide search over a custom index, cross-town category pages, a consent-clean claim flow, an owner filing lane with its own FILED BY THE OWNER stamp, and a statistics page nobody else in the region can publish, because nobody else has the data.

Highlights

  • The living page: thousands of real business names as a wall you can brush, press, and sweep with type-to-search, each name lifting its index card
  • A pressed freshness stamp on every record: the date the entry was last checked, plus the public source it came from
  • Region-first architecture: every category page is region-wide with town filters, so one page answers what would otherwise take twelve searches
  • The doorway-page bar: a category-town page only exists where three or more listings earn it, so no thin pages exist anywhere on 6,452 URLs
  • The Tally: live region statistics (5,682 businesses, 77 towns, 112 categories) as a public page, citation bait no competitor can copy
  • A claim flow and an add-your-business flow, both consent-first and CASL-clean, with owner-filed entries stamped as such
  • Free forever, structurally: no paid placement exists in the data model, so the ranking cannot be bought
  • Dofollow website links on every listing that has a site: the gift a small business actually feels
  • Closed businesses marked and kept as history, never silently deleted
  • A print stylesheet, an alphabet thumb index, a your-town memory chip, and a pull-a-card surprise page, because a record book should be a pleasure to use

Pages and surfaces

  • Home (the living page)
  • Region-wide search
  • Categories hub + 112 category pages
  • Cross-town category and town pages
  • Town hubs
  • 5,682 business record pages
  • The Tally (region statistics)
  • Surprise (pull a card from the drawers)
  • Sources and data credits
  • Claim flow
  • Add-your-business flow
  • For businesses
  • Privacy and terms
Under the hood

Real code. Real routes. Production ready.

  • 5,682 businesses, 77 towns, 112 categories, 6,452 sitemap URLs, all statically rendered: no database in production
  • Custom search over a compiled index: no external search service, and the worst keystroke cost was engineered from 1,960ms down to 64ms
  • Desktop Lighthouse 99 performance / 100 accessibility / 100 best practices / 100 SEO, LCP 0.9s, CLS 0.007; accessibility 100 on mobile as well
  • The doorway-page bar enforced in the build: category-town pages generate only above three listings, so thin pages cannot exist
  • Consent enforced at compile time: self-published fields only for person-shaped rows, private emails structurally excluded, zero leaks proven across the build output
  • A typography and readability hardening pass took 631 sub-12px text nodes to zero across the route surface
  • Zero horizontal overflow at 390px verified across twelve representative routes
  • OpenStreetMap-derived location data credited and redistributable under ODbL on a public sources page

Stack

Next.jsReactTypeScriptTailwind CSSResendVercel

Built honestly

The Kootenay List is a real, live product that I own and operate. Every number here is measured against the live build: 5,682 businesses, 77 towns, 112 categories, 6,452 sitemap URLs. The data comes from public sources named on every record, location data is credited under ODbL, private contact information never enters the build, and no business paid to be listed or ranked. One number worth stating honestly: mobile performance still trails desktop and is being worked, while accessibility holds at 100 on both.

This is what I build when the client is my own region.

The Kootenay List is the standard: complete data, visible freshness, and trust as the architecture. If your project lives or dies on people believing your information, a directory, a catalogue, a data-heavy platform, start with a free website audit and I will show you exactly where it is leaking trust.

Builds like this start at $2,000, or Own It Monthly from $189/mo, yours outright at the end.