Example: The Millhaven Gazette
A procedurally generated fictional local newspaper for Millhaven, VT
| Site Type | Fictional local news / journalism |
| Fictional Setting | Millhaven, Vermont (pop. ~4,200) |
| Seed URL | / |
| Pages Generated | ~38 across 2 crawls |
| Overall Rating | ★★★☆☆ (3/5) — strong individual articles, weak continuity |
| Compare To | ACAPA fictional association site (higher continuity score) |
Contents
1. Overview
The Millhaven Gazette experiment was one of the first large-scale fictional content sites attempted with Rabbithole. The goal was to test whether Rabbithole's page-isolation model could sustain a coherent fictional universe across a news publication — one of the most demanding use cases for cross-page consistency, since journalism inherently involves follow-up stories, recurring sources, referenced past events, and evolving narratives.
The fictional setting is Millhaven, Vermont, a small town of approximately 4,200 residents situated in the Northeast Kingdom, near the fictional Aldenvale River. Millhaven has a classic New England character: a covered bridge, a Congregational church on the green, a struggling paper mill that was the town's historic economic backbone, a consolidated school district, and a volunteer fire department. The Gazette is the town's weekly newspaper, established (in-universe) in 1887.
Overall the experiment was partially successful. Individual article pages were often strikingly realistic and well-written. However, cross-article continuity broke down in ways that would be immediately obvious to any attentive reader. This case study documents both the wins and the failures, and suggests a structural approach to mitigating the continuity problem.
2. Design Goals
Before generating the site, the following design goals were established:
| Goal | Priority | Outcome |
|---|---|---|
| Clean newspaper-style HTML layout with masthead and columns | High | ☑ Achieved consistently |
| Plausible Vermont small-town fictional geography | High | ☑ Mostly achieved; some contradictions |
| Recurring named characters (mayor, police chief, local figures) | High | ☒ Inconsistent — names drifted across articles |
| Ongoing story threads (mill closure, school budget, town election) | High | ☒ Failed — threads did not self-reinforce across pages |
| No contamination from real-world Vermont news events | Medium | ☑ Largely avoided with explicit seed instructions |
| Functional classified ads, letters to the editor, sports coverage | Medium | ☑ Generated well as standalone pages |
| Consistent issue dates / publication volume numbers | Low | ☒ Inconsistent — Vol. numbers contradicted each other |
3. Seed Prompt
The following seed prompt was used to generate the homepage (the front page of the Gazette). This prompt is the only context the homepage generator received. All linked pages then received derived prompts written by the homepage generator.
Generate the homepage (front page) of "The Millhaven Gazette", a fictional weekly
newspaper for Millhaven, Vermont — a small New England town of approximately 4,200
residents in the Northeast Kingdom region. The paper was founded in 1887 and is
still family-owned (the Aldrich family, currently run by editor Doris Aldrich, 61).
SETTING DETAILS (maintain strictly across all pages):
- Town name: Millhaven, VT (population ~4,200)
- Nearby geography: Aldenvale River, Calder Mountain, Route 12 corridor
- Key locations: Millhaven Green, Harriet Beecher Stowe Elementary School,
Whitmore's Hardware, The Covered Bridge Diner, Millhaven Paper Mill (closed 2019)
- Key recurring characters:
* Doris Aldrich — editor/publisher of the Gazette
* Mayor Frank Tessaro — town mayor, first elected 2018, controversial rezoning plan
* Chief Pauline Ochoa — Millhaven Police Department chief
* Rev. Desmond Holt — pastor of First Congregational Church
* Glenn Whitmore — owner of Whitmore's Hardware, selectboard member
- Active story threads as of this issue (Vol. 138, No. 14, April 4, 2025):
* Mill redevelopment: town vote on converting old Millhaven Paper Mill site
to mixed-use housing/retail, opposed by some residents
* School budget: Millhaven Unified School District budget vote next month,
$400k shortfall being debated
* Selectboard election: three seats up in May, Whitmore running for re-election
* Spring flooding: Aldenvale River at elevated levels after snowmelt
DESIGN: Classic newspaper front page in HTML. Black and white aesthetic.
Serif font for headlines (Georgia), sans-serif for body. Masthead at top.
Two or three column layout using HTML tables or divs. "Above the fold" lead story,
sidebar with briefs, weather box (fictional Millhaven forecast). No JavaScript.
No gradients. White background.
Generate at least 8 links to subpages: individual article pages, an about page,
archives, letters to the editor, classifieds, obituaries, sports, and a town calendar.
Each subpage prompt MUST re-state all setting details, recurring characters, active
story threads, and design guidelines — the linked page generators have NO other context.
4. Site Structure
After two crawl passes, the Gazette had generated the following page tree. Pages are grouped by section. An asterisk (*) indicates a page that exhibited notable continuity drift.
| URL | Page Type | Continuity |
|---|---|---|
/ | Front page (Vol. 138, No. 14) | ✓ Anchor |
/about.html | About the Gazette | ✓ Good |
/archives.html | Issue archive index | ✓ Good |
/news/mill-redevelopment.html | Mill story deep-dive | ✓ Good |
/news/school-budget.html | School budget article | ✓ Good |
/news/spring-flooding.html | Aldenvale River flooding | ✓ Good |
/news/selectboard-election.html | May election preview | ✗* Drift |
/news/mill-opposition-meeting.html | Community meeting coverage | ✗* Drift |
/news/aldrich-editorial.html | Editor's column by Doris Aldrich | ✓ Good |
/letters.html | Letters to the editor | ✗* Drift |
/classifieds.html | Classified advertisements | ✓ Good |
/obituaries.html | Obituaries | ✓ Good |
/sports/basketball.html | Millhaven Consolidated HS basketball | ✓ Good |
/sports/little-league.html | Spring little league preview | ✓ Good |
/calendar.html | Town events calendar | ✓ Good |
/news/mill-history.html | Mill history feature (archive reprint) | ✓ Good |
/news/tessaro-interview.html | Interview with Mayor Tessaro | ✗* Drift |
/news/flooding-followup.html | Flooding follow-up (2nd crawl) | ✗* Drift |
/news/budget-hearing.html | School budget public hearing | ✗* Drift |
5. Sample Generated Articles
The following are representative excerpts showing the range of quality across generated pages.
Strong example: /news/mill-redevelopment.html
The proposal to redevelop the former Millhaven Paper Mill site into a 74-unit mixed-use development called Aldenvale Commons drew a packed crowd to the town gymnasium Tuesday evening, with residents voicing sharp disagreement over traffic, affordability, and whether the development preserves the character of Millhaven's waterfront...
↗ This article correctly referenced Mayor Tessaro's rezoning plan, Glenn Whitmore's opposition, and the Aldenvale River location. Character names and facts aligned with the seed.
Drift example: /news/tessaro-interview.html
Mayor Frank Tessaro sat down with the Gazette to discuss his vision for Millhaven's future. Tessaro, who has served as mayor since 2016, spoke about the need for new housing stock along the Calder Creek corridor...
Drift example: /news/flooding-followup.html
With river levels finally receding, Millhaven highway crews reopened Route 9 on Monday after a six-day closure. Police Chief Paulina Ochoa confirmed no injuries were reported...
6. What Worked
7. What Didn't Work
8. Continuity Analysis
We tracked eight named facts from the seed prompt across all 19 generated pages and scored each page on how many facts it preserved correctly.
| Fact | Seed Value | Pages Correct | Pages Drifted | Drift Pattern |
|---|---|---|---|---|
| Mayor's name | Frank Tessaro | 16/19 | 3/19 | "Mayor Tessaro" (correct but no first name), once "Ted Tessaro" |
| Mayor's election year | 2018 | 8/19 | 3/19 (8 didn't mention) | 2016 and 2020 both appeared |
| Police chief's name | Pauline Ochoa | 10/19 | 4/19 (5 didn't mention) | "Paulina", "Chief Ochoa" (ok), "Chief Linda Ochoa" |
| Mill closure year | 2019 | 12/19 | 2/19 (5 didn't mention) | 2018, 2020 |
| Town population | ~4,200 | 9/19 | 2/19 (8 didn't mention) | "nearly 5,000", "just over 3,800" |
| Editor's name | Doris Aldrich | 14/19 | 1/19 (4 didn't mention) | "Dorothy Aldrich" (once) |
| Primary road | Route 12 | 9/19 | 3/19 (7 didn't mention) | Route 9, Route 14, "Main Street" without number |
| Gazette founding year | 1887 | 11/19 | 2/19 (6 didn't mention) | 1892, 1881 |
The overall fact-retention rate for pages that did mention a given fact was approximately 78%. For comparison, the ACAPA site achieved roughly 91% fact retention across a similar number of pages, attributed to ACAPA's more rigorous lore-block discipline. See the ACAPA case study for details on that approach.
9. Lessons Learned
9.1 News sites are continuity-hard
A news publication is among the most demanding content types for a stateless generator. Every article implies history — "as we reported last week", "the vote scheduled for May" — and each of those implied facts must be consistently reproduced from memory encoded only in prompts. Consider whether a blog-style archive or encyclopedia-style reference site might be more tractable for your use case.
9.2 Propagate lore blocks faithfully, verbatim if possible
The highest-continuity pages were those whose prompts reproduced the seed's lore block nearly verbatim rather than paraphrasing it. Paraphrasing introduces opportunities for fact mutation. When writing prompts for linked pages, prefer copying the canonical facts block directly over summarizing it.
9.3 Prohibit invented geography explicitly
The seed should include an explicit instruction: "Do not invent new place names, streets, roads, rivers, or landmarks not listed in this prompt. If you need a location not listed, use a generic description instead." This substantially reduces geographic drift.
9.4 Sequels are structurally harder than originals
If you want a follow-up article to be accurate, its prompt must include not just the
original story's facts but its specific claimed outcomes. The prompt for
/news/flooding-followup.html should have included: "The original flooding
article stated the river had been elevated for over two weeks, that Route 12 was closed
at mile marker 7, and that Chief Pauline Ochoa had issued a public safety advisory."
None of this was in the follow-up prompt, and so it was all re-invented inconsistently.
9.5 Static sections anchor the site more effectively than news sections
The About page, classifieds, sports recaps, and obituaries all performed well because they are not temporally dependent on other pages. For a fictional news site, invest prompt detail in these stable sections first, then layer in the evolving story threads.
10. Improved Seed Approach
Based on this experiment, the following structural changes are recommended for a second attempt at a fictional news site with Rabbithole:
# Recommended additions to a news site seed prompt
## CANONICAL FACTS (copy verbatim into every subpage prompt — do not paraphrase)
- Town: Millhaven, VT | Pop: ~4,200 | Region: Northeast Kingdom
- Roads: Route 12 (main), Mill Road (river access), Calder Hill Road (north)
- Named places: Aldenvale River, Calder Mountain, Millhaven Green,
Covered Bridge Diner, Whitmore's Hardware, Millhaven Paper Mill (closed 2019)
- DO NOT invent new place names not in this list.
- DO NOT reference real Vermont towns, roads, or counties.
## CHARACTERS (full names — never abbreviate or alter)
- Editor: Doris Aldrich (61, female)
- Mayor: Frank Tessaro (first elected November 2018, male)
- Police Chief: Pauline Ochoa (female)
- Selectboard/Hardware: Glenn Whitmore (male)
- Pastor: Rev. Desmond Holt, First Congregational Church (male)
## CURRENT STORY STATE (include in any article prompt referencing these threads)
- Mill vote: no outcome yet, public hearing April 15, 2025
- School budget: $400k shortfall, vote May 6, 2025; no resolution yet
- Flooding: Aldenvale River at 14.2 ft gauge (flood stage: 13 ft), Route 12
closed at MM 4.1 since April 1; no injuries reported as of April 4
## PROMPT PROPAGATION RULE
When generating links from this page, copy the CANONICAL FACTS,
CHARACTERS, and CURRENT STORY STATE sections verbatim into every subpage prompt.
See also:
→ All Examples
→ ACAPA Example — a fictional association site with stronger continuity
→ Architecture Overview — understanding page isolation
→ Prompt Writing Guide — techniques for cross-page consistency
→ Browse the Millhaven Gazette — explore the generated site itself