Static and serverless, on purpose
There is no database server humming away here, no content system to log into, no software to keep patching. Every page you read is a plain file handed straight to your browser. The moving parts — the search box, the map, the comments — either run inside your own browser or in small bits of code that wake up for a fraction of a second only when they’re needed, then go back to sleep.
I built it this way on purpose. It means the site is genuinely cheap to run, there’s almost nothing that can break or get hacked, and with any luck it will still load, untouched, many years from now. For an archive, outliving the technology is the whole point.
Where it lives
The files sit in Amazon S3, which is just durable storage, and are delivered around the world through CloudFront, Amazon’s content network. That’s why a page loads quickly whether you’re in Labrador City, Toronto, or Australia — a copy is cached close to you. Everything is served securely over HTTPS with a certificate that renews itself for free.
The site answers to two addresses: biglandarchive.ca and the original thesmokingpuffin.com, with the old one quietly forwarding to the new so no one’s old links ever break.
The archive and its search
The heart of the site is 450 scanned documents — newspapers, company newsletters, and school yearbooks from 1959 to 1992. Gathering them was a project in itself. I built an AI agent on Amazon Bedrock that crawled public archives and online collections, hunting for anything tied to Labrador West, Wabush, and Labrador City. What you see here is what it has turned up so far, and the collection is still growing.
Each document was then run through Amazon Textract, which reads the words off the scanned pages (optical character recognition). All that text is bundled into a single compressed file the search box downloads once, so you can search every word of every issue and the results come back instantly, with no server doing the work.
When you find a hit, the reader — built on Mozilla’s PDF.js — opens the original document right in your browser and jumps roughly to the page your word appears on.
The map and the names
The timeline map is drawn with Leaflet, an open-source mapping tool, tracing the railway and the roads as they were built across the decades. The Names Index is pulled straight out of the scanned text: every surname the reader could find across the whole archive, so you can look up a family and jump to the documents that mention them.
Letting people contribute
Anyone can submit a story or leave a comment, but first they sign in with a Google account. That isn’t about collecting anything — it’s simply the easiest way to keep spam robots out without making real people solve annoying puzzles. When you do submit something, it travels through one small piece of code (an AWS Lambda function) that only runs in the moment you hit send. It saves your entry, emails me to review it, and nothing appears on the site until I approve it.
Privacy
The analytics here are homemade and deliberately boring. The site counts how many times a page is viewed and what words people search for, and that is the entire extent of it. No cookies, no tracking pixels, no outside companies, nothing sold or shared. I can see that a story was read forty times last week; I cannot see who you are, and I don’t want to.
Backups, and the honest cost
The storage keeps old versions of every file, and the small databases behind the comments and submissions take rolling backups, so an accident can be undone. There are no servers to maintain or pay for around the clock — the whole thing runs for roughly the price of a coffee a month. The less machinery there is between you and the stories, the longer they’ll last.
A note on how it was built
Here’s the honest picture. I’ve spent more than 25 years as an IT architect for Fortune 100 and 500 companies here in the United States, and I work in AWS every day. The architecture, the security, the infrastructure, the data analytics, and every decision about this site are mine: what it should be, which stories to tell, how it should look and feel, and whether the facts hold up. The one piece I’ve never done full-time is the hands-on development, the actual writing of code, and that was always my biggest barrier. I know Python and I know HTML, but when you don’t use them every day, writing code is slow going.
This project lived in my head, notepad, Word, and OneNote for more than a decade. The ideas were always there; what I never had was a fast way to turn them into something real. So that’s where I leaned on an AI assistant, Anthropic’s Claude. I designed and directed all of it; Claude helped me turn the ideas into working code, quickly.
It felt like a fitting way to do it: a community’s history, preserved with the tools of the present.
The stack, briefly. S3, CloudFront, Route 53 and ACM for hosting and delivery; an Amazon Bedrock agent for gathering the archive and Amazon Textract for OCR; PDF.js, Leaflet and a client-side search index in the browser; AWS Lambda, API Gateway, DynamoDB and SES powering submissions, comments, and the privacy-friendly analytics; Google Identity Services for sign-in. Written as plain HTML, CSS, and vanilla JavaScript, with no framework.