Case study · Lakelandmarks
The living public record you were just reading.
Lakelandmarks turns nineteen Polk County record systems into plain-English project pages and rebuilds itself three times a day, unattended. Summit Labs built it and runs it. Here is how it works — and what it proves we can build for someone else.
The problem it solves
The records were always public. They were never usable.
Every commercial building, road widening and apartment complex in Polk County leaves a paper trail anyone is entitled to read: permit records, rezoning applications, site plans, and the agendas of the boards that decide them. To actually read it, you need to know which office covers the address, which of nineteen separate systems that office publishes to, and what to type into its search form. The information was never missing. It was unreachable.
Lakelandmarks answers the question instead of handing you a search form. Ask what is going up on a corner and you get a plain-English page: what is proposed, where it stands, what happens next — and a link to the primary document behind every single claim on it. It covers commercial and larger multifamily and mixed-use development, and it deliberately leaves out single-family homes and private individuals' property matters, because a public record system does not have to mean a surveillance system.
432 projects tracked as of , counted from lakelandmarks.com's published data.
What a reader gets
- A map of every tracked project, and a page for every city it covers
- Plain-English search — ask in words, not in field names
- Follow a project and get an email when it moves
- A weekly digest of new filings and the hearings ahead
- An iCalendar feed that drops upcoming public hearings into your calendar
- A published corrections process, with each fix noted on the project's own page
How it runs
Five stages, three times a day, nobody watching.
The whole system is a scheduled pipeline. It reads, reconciles, drafts, checks, builds and deploys with no human in the loop — and stops short of publishing anything it cannot stand behind.
01
Ingest
Nineteen separate public record systems are read on a schedule: county and city permit records, planning applications, hearing-case maps, the state road-work program, state plan-review records, water-management permits, and the agendas of nine different boards. Each one has its own format, its own quirks, and no obligation to stay the same.
02
Resolve
Raw records are reconciled into canonical developments. One project throws off a rezoning, a site plan, three permits and two hearing items across four systems under four slightly different names; the resolver decides those are one thing, and keeps every record attached to it as evidence.
03
Draft, ground, verify
A model drafts the plain-English page from the record bundle. A grounding pass then checks every figure, date and proximity claim back against the sources, and an adversarial pass second-guesses the result. A two-lane gate publishes only what clears both; anything flagged waits for a person.
04
Build
The cleared corpus compiles to static output — a page per project, a page per city, the map, the search index, the feeds and the hearings calendar. No database sits in the request path, so there is nothing to fall over under traffic.
05
Deploy
The build ships to the edge three times a day on a schedule, unattended, with failure alerting that names what broke rather than just that something did. Nobody presses a button, and nobody has to notice.
Nineteen is the count at last check; the current list of sources is published on the site's own About page, which is the authority on it.
The part that matters
A publishing system that refuses to print what it cannot source.
The drafting is done by a language model — a cheap, fast one for routine filings and a stronger one for the complicated cases. That part is unremarkable, and widely available. What makes the output publishable is everything bolted around it, because nothing goes out on the model's word.
A grounding pass
Every figure, date and proximity claim in the draft is checked back against the source bundle it was supposed to come from. A number the records do not support does not survive this step, however confidently it was written.
An adversarial verify pass
A second pass takes the grounded draft and tries to break it — hunting for the claim that is technically sourced but misleading, the hedge that got dropped, the “is coming” that should still read “could be coming”.
A two-lane publishing gate
Only cards that clear both passes publish automatically. Everything else waits for a person. The gate is deterministic code, not a judgement call, so the decision to publish is never the model's to make.
That combination is the transferable idea, and it is how we think AI belongs in a business: the model doing the work it is genuinely good at, deterministic gates wherever it cannot be trusted, and a visible record of which is which.
Measured, not asserted
What the performance work actually bought.
A site that answers a neighbourhood question gets read on a phone, often on a bad connection, by someone who will not wait. So we measured the site, fixed what the numbers pointed at, and measured again.
Main board page, transferred
629 KB
down from 4.0 MB
The page that lists everything. Six times lighter.
DOM nodes on that page
5,857
down from 35,798
What the browser has to lay out before anything is readable.
Rendered page height
38,346 px
down from 184,681 px
A phone was scrolling through roughly 180 screens of markup.
Per-city page height
7,137 px
down from 31,373 px
Headings went from one to seven. Every project link was kept.
Truncated search titles
31 of 462
down from 210 of 462
Result titles that ended in an ellipsis instead of a word.
Share images, total weight
27.0 MB
down from 90.4 MB
70% smaller at 46.8 dB PSNR — no visible difference.
Each figure was read off lakelandmarks.com before and after the work, in October 2026.
Caching, fixed where it was actually broken
The cache policy was rewritten inside the Cloudflare Pages advanced-mode worker, because in advanced mode the usual static headers file is ignored — a detail that quietly cost every returning reader a revalidation round trip on every single navigation. Finding that is the job; nobody would have spotted it in a page-speed score.
First-party measurement, built from nothing
Pageviews come from Cloudflare Web Analytics, and the events that matter — a follow, a claim, a weekly sign-up, a search — are recorded server-side in Analytics Engine, where an ad blocker cannot drop them. Search queries are scrubbed of anything identifying before they are ever stored.
Built to be cited, including by machines
Every project page carries Article and BreadcrumbList structured data, the corpus is described as a schema.org Dataset, and an llms.txt tells answer engines what the data is and — just as importantly — what its limits are, so they can cite it honestly.
The stack, for anyone who asks
Static output on Cloudflare Pages with Workers in advanced mode, Workers KV for state, Analytics Engine for events, Resend for transactional mail, and GitHub Actions running the pipeline on a schedule. Boring on purpose: there is very little that can break at 3 a.m.
What it proves
Five capabilities, and a live system you can inspect.
A capability is easy to describe and harder to show. This one is running in public, on a schedule, with its sources linked — so you can check the work before you hire anyone to do yours.
Data out of messy legacy sources
Nineteen systems that were never designed to be read by anything but a person at a search form — scraped, normalised and reconciled into one record that holds together. If your own records sit in systems that were never meant to talk to each other, this is that work at a smaller scale.
AI with deterministic guardrails
A model drafts; grounding, adversarial verification and a publishing gate decide whether anyone sees it. That is the difference between an AI feature you can put in front of the public and one that only survives a demo.
Performance engineering at the edge
Cloudflare Workers, a rewritten cache policy, and six-times page-weight reductions — measured before and after, not asserted. Speed is a feature your customers feel before they read a word.
Measurement built in from the start
First-party analytics and server-side event recording, so what readers actually do is a number rather than a hunch. The same instinct sits behind every dashboard we build.
Systems that run themselves
Three unattended runs a day, every day, with alerting that names the failure. Automation is only worth having if nobody has to babysit it.
Lakelandmarks is one of the free tools we build and run for Polk County. See the rest of what we have shipped, or go back to Lakelandmarks.
Common questions
Building something like this for your business.
- Could you build something like this for our data?
- That is most of what we do. The shape recurs constantly: information your business depends on sits in systems that will not talk to each other — a legacy ERP, a vendor portal, PDFs in an inbox, three spreadsheets and somebody's head — and the work is reading it reliably, reconciling it into one version, and publishing it where decisions actually get made. Lakelandmarks is that pattern at public-record scale, where you can inspect every part of it yourself before you trust us with yours.
- The pages are drafted by AI. How do you know they are accurate?
- Because nothing is published on the model's word. After drafting, a grounding pass checks every figure, date and proximity claim back against the source bundle; an adversarial pass then tries to break the result; and a two-lane publishing gate releases only the cards that clear both. Anything flagged waits for a human instead of going out. Every claim on a published page also links to the primary document it came from, so a reader never has to take our word for it either — and confirmed corrections are published on the project's own page.
- What does it cost to run something like this?
- Lakelandmarks is free to the public and cheap to operate by design: the output is static and served from the edge, so cost tracks how many records we hold rather than how many people read them. What your version would cost depends entirely on how many sources it reads and how clean they are. Scoping is free, you get a written fixed quote within two business days, and that number does not change after signing.
- Who would own the system you build for us?
- You would. We build in your accounts, document it in plain English, and hand over the keys — the pipeline, the infrastructure and the data are yours, and you can run them without us. Lakelandmarks is the exception only because it is ours: we built it, we run it, and it stays free.
Summit Labs
What's buried in your systems?
If your business runs on information that is technically available and practically unreachable, that is the same problem, and it is the one we are good at. Book a free 30-minute call and we will tell you honestly whether it is worth building.
