Examples › The Veldrim Reach Wiki
Example: The Veldrim Reach Encyclopedia
A fictional fantasy world wiki generated with Rabbithole, styled after early Wikipedia (circa 2005)
1. Overview
The Veldrim Reach Encyclopedia is one of the more ambitious examples built with Rabbithole. The goal was to simulate a Wikipedia-like site for a completely fictional fantasy world — the Veldrim Reach — where every article page is generated on demand by the LLM, including infoboxes, table of contents, disambiguation pages, category listings, and cross-linked "See also" sections, all in a visual style approximating Wikipedia circa 2005.
The experiment demonstrated both the extraordinary generative power of Rabbithole and its core architectural challenge: because each page is generated in complete isolation, there is no shared memory or canonical fact store. The LLM must reconstruct the world from scratch on every page visit, using only the prompt embedded in each link. Maintaining a coherent mythology, consistent geography, and non-contradictory timeline across hundreds of articles required careful seed-prompt engineering.
2. Design Goals
- Render every page with the visual structure of Wikipedia circa 2005: floating infobox at top-right, auto-numbered table of contents, bold lead paragraph, section headings, "See also" and "References" stubs.
- Generate disambiguation pages when article titles are ambiguous (e.g., "Veldrim" could refer to the river, the kingdom, or the ancient god).
- Support category pages (e.g., Category:Kingdoms of the Reach, Category:Rivers, Category:Historical Figures).
- Use the
web_fetchtool inside the seed prompt to pull in a reference snapshot of Wikipedia's CSS structure for accurate visual replication. - Keep all styling in
<style>tags with no external dependencies, so pages work completely offline after generation. - Encode enough world-lore in every outgoing link prompt to prevent geography drift, name inconsistency, and timeline contradictions.
3. The Seed Prompt
The homepage was seeded with the following prompt, which established the world lore, visual style, and linking strategy for all child pages:
This prompt is deliberately long. The world-lore block was refined over several iterations to prevent the most common failure modes: geographic inversions, duplicate kingdoms, and contradictory dates for the Sundering.
4. Visual Structure: What Was Replicated
Here is a live-rendered example of what a typical Veldrim Reach article looks like when generated. This is the opening of the article on Caldenmoor:
| Type | Feudal Monarchy |
| Capital | Caldenhall |
| Ruler | The Unnamed King |
| Language | Calden (official), High Velic |
| Founded | ca. 340 A.S. (After Sundering) |
| Area | ~420,000 km² |
| Religion | Ancestor Rites |
| Currency | Calden Mark |
Caldenmoor is the northernmost of the five major kingdoms of the Veldrim Reach, occupying the foothills and lowland plains immediately south of the Ashwall Mountains. Governed by a hereditary monarchy whose sovereign is known by tradition only as the Unnamed King, Caldenmoor is distinguished by its rigid feudal hierarchy, its proximity to the mountain passes, and its historical role as the first successor state to arise after the Sundering approximately 800 years ago.
The kingdom's capital, Caldenhall, sits at the confluence of the upper Veldrim River and the smaller Greyrun tributary. With a population estimated at 340,000, it is the largest city in the northern Reach, known for its great library of High Velic manuscripts and the ancient Seam-Gate beneath the citadel.
The infobox, TOC, and lead-paragraph structure were reliably reproduced across nearly all article pages. The LLM consistently floated the infobox right, generated numbered contents, and bolded the article title in the lead — because all of this was specified in detail in the prompt carried by each link.
4.1 Disambiguation Pages
Disambiguation pages were one of the cleaner successes. Here is an example of what the generated disambiguation page for "Veldrim" looked like:
- Veldrim (river) — The great river running north through the center of the Reach.
- Veldrim (kingdom) — Redirect to First Empire of Vel, the ancient state that gave the continent its name.
- Veldrim (deity) — The mythological progenitor-god of the Velic peoples.
- Veldrim Reach — The continent as a whole.
This is a disambiguation page — a navigational aid listing articles associated with the same title.
4.2 Category Pages
Category pages were specified in the seed as having a two-column article listing plus a brief category description. They worked well for high-level categories but became inconsistent for sub-categories, as detailed below.
5. Notable Generated Articles
The following articles were among the most coherent and interesting outputs from exploratory browsing of the generated wiki. Links here are illustrative (the actual paths were generated dynamically by Rabbithole).
| Article | Path | Notes |
|---|---|---|
| Caldenmoor | /wiki/caldenmoor |
Flagship article; best infobox and TOC output. Used as reference for prompt tuning. |
| Thessavane | /wiki/thessavane |
Detailed trade-republic article; generated a port district sub-article organically. |
| The Sundering | /wiki/the-sundering |
Historical event article; correctly placed ~800 years before present in all versions. |
| Resonance Weaving | /wiki/resonance-weaving |
Magic system article; produced a sub-article on Fraying and a Conclave article. |
| Empress Ilyara Vel | /wiki/empress-ilyara-vel |
Biography; infobox included reign dates, and article referenced the Sundering correctly. |
| Seam-Gate of Caldenhall | /wiki/seam-gate-caldenhall |
Organically generated stub; only 2 sections, but consistent with broader lore. |
| Veldrim River | /wiki/veldrim-river |
Geography article; correctly described north-flowing direction in all generated versions. |
| Ashwall Mountains | /wiki/ashwall-mountains |
Geography; consistently noted formation during the Sundering, per seed lore. |
| Drossmark Confederacy | /wiki/drossmark |
Generated a detailed mining economy section; invented Drossic rune-currency organically. |
| Conclave of Seams | /wiki/conclave-of-seams |
Institutional article; generated a leadership structure and founding charter narrative. |
6. What Worked Well
The Wikipedia-circa-2005 layout was reproduced very reliably. Infoboxes floated right, TOCs were numbered and boxed, lead paragraphs bolded the article title, and "See also" sections appeared near the end of almost every article. The visual prompt was specific enough that even long articles maintained the layout.
The five kingdoms, cardinal geography (Ashwall Mountains north, Serath Ocean east, Sunken Marches south, Pale Expanse west), the Veldrim River direction, and the ~800-year date of the Sundering remained consistent across all explored articles. This was a direct result of embedding the full lore block into every outgoing link prompt.
Articles generated sub-topics not explicitly mentioned in the seed. For example, Drossmark invented a "rune-currency" system; Thessavane generated a sub-article about the "Harbormaster's Guild"; the Conclave of Seams produced a "Fraying Incident Registry." None of these were seeded — they emerged from the LLM's generative tendency to fill in plausible details consistent with the provided context.
Disambiguation pages were consistently well-structured. When a prompt specified that the page should be a disambiguation article, the LLM correctly produced the italicized hatnote format, the bulleted list of meanings, and the footer note.
web_fetch tool for CSS referenceThe seed prompt used
web_fetch to retrieve a snapshot of Wikipedia's
Common.css structure. This gave the LLM accurate font, color, and layout values
rather than approximations, resulting in a much closer visual match to the
Wikipedia 2005 aesthetic on the first try.
7. What Didn't Work / Known Failure Modes
When a user navigated 3–4 links deep from the seed (e.g., from Caldenmoor → Caldenhall → Seam-Gate → a minor character → their home village), the lore block in the prompt started to degrade. At depth 4+, some pages forgot that the Ashwall Mountains were in the north, or invented a sixth kingdom. The solution is to always include the complete lore block in every prompt, regardless of how specific the linked page is. This increases prompt size but is essential.
High-level category pages (e.g., Category:Kingdoms) worked well. But sub-categories (e.g., Category:Caldenmoor → Caldenmoor noble houses) produced inconsistent article lists. The LLM would sometimes omit major articles from the listing, or include articles that were never generated. This is an inherent limitation of the stateless generation model: there is no canonical article index.
Organically-generated minor characters sometimes received the same name across unrelated articles. For example, two different articles invented a "Lord Aren Voss" who was placed in contradictory positions in the timeline. Major named characters (Ilyara Vel, Sorvaine, Tessaly Draun) remained stable because they were in the seed lore block; minor characters were not protected.
Every article produced a "References" section at the bottom, but it was always a placeholder: "This article lacks citations. Please help improve it." This is actually visually authentic to early Wikipedia, but it means the wiki has no verifiable internal citation graph.
The seed specified infobox images using placeholder paths like
/images/caldenmoor-flag.png. Because Rabbithole only generates HTML
(not binary assets), these images returned 404s. The fix is to either omit the
image field or use a data URI placeholder. See the Web Tools
page for guidance on using web_fetch to hotlink real images where appropriate.
8. Comparison to the ACAPA Lore-Block Approach
The ACAPA example uses a different strategy for maintaining cross-page consistency: a structured lore block embedded in every prompt, formatted as a rigid YAML-like schema with field names, canonical values, and explicit constraints. The Veldrim Reach wiki used a more narrative lore block (prose paragraphs). The comparison is instructive:
| Dimension | Veldrim Reach (narrative lore block) | ACAPA (structured lore block) |
|---|---|---|
| Readability for the LLM | High — prose reads naturally, LLM integrates it well into flowing article text | Medium — schema format is precise but can feel mechanical in output |
| Precision of facts | Lower — narrative leaves room for LLM interpretation of ambiguous details | Higher — explicit key-value pairs prevent ambiguity |
| Minor detail consistency | Weak — minor characters, prices, distances drift across pages | Strong — all specified fields remain consistent |
| Prompt length | ~600–900 tokens for lore block alone | ~400–600 tokens for schema block |
| Organic expansion | Excellent — LLM freely generates plausible new details within narrative frame | More constrained — LLM tends to stay closer to explicit schema fields |
| Disambiguation support | Easy — naturally specified in narrative | Requires explicit schema fields |
| Best for | Open-world wikis, fiction, lore-heavy sites | Factual reference sites, organizational docs, constrained data |
Recommendation: For a wiki-style site where rich generative expansion is desirable, the narrative lore block approach used in Veldrim Reach produces more interesting and varied content. For sites where factual consistency is the highest priority (e.g., a documentation wiki or a company knowledge base), the ACAPA structured approach is preferable.
9. Seed Prompt Engineering Tips for Wiki Sites
9.1 Always include the complete lore block in every outgoing link prompt
Do not abbreviate the lore block in child-page prompts, even when the page topic is narrow. The LLM has no memory of what it generated on the parent page. A page about a minor river tributary needs the same geography section as the main portal.
9.2 Specify the infobox fields explicitly
Rather than saying "include an infobox," list the exact fields you want. For a kingdom article:
INFOBOX FIELDS: Type, Capital, Ruler, Language, Founded (use A.S. dating),
Area (in km²), Religion, Currency. Float right, 200px wide, #ccccff header.
9.3 Anchor dates to the Sundering
Using a fictional epoch ("After Sundering" / A.S.) as the dating system, and always specifying the current year in-universe, prevented most timeline contradictions. The seed used: "Current year: 812 A.S. The Sundering occurred in 0 A.S. by convention."
9.4 Pre-seed disambiguation targets
For any title you know will be ambiguous, include the disambiguation targets in the lore block: "Note: 'Veldrim' is ambiguous; it refers to the river, the ancient deity, and the First Empire. Disambiguation page at /wiki/veldrim." This prevented the LLM from arbitrarily picking one meaning.
9.5 Use the web_fetch tool in the seed only
Fetching Wikipedia's CSS structure is useful for the seed page, but child-page prompts
should embed the CSS directly (as a <style> block description) rather
than re-fetching the URL. This avoids network overhead on every page generation and
keeps the visual style stable.
10. Full Source: Example Child-Page Prompt
This is the complete prompt written by the Caldenmoor article to generate the sub-page about Caldenhall (the capital city):
11. Explore the Veldrim Reach
These are some of the generated articles you can explore. Each page was generated by Rabbithole from the prompt chain described above:
Kingdoms & States
Geography
History & Events
Magic & Institutions
12. Related Documentation
- All Examples — Browse other Rabbithole example sites
- ACAPA Example — Comparison: structured lore-block approach for an organizational site
- Blog Example — Simpler use case: a personal technical blog
- E-Commerce Example — Product catalog with dynamically generated product pages
- Web Tools — How the
web_fetchandweb_searchtools work in Rabbithole prompts - Architecture — Deep dive into the page generation, caching, and URL mapping system
- Configuration — How to set LLM provider, model, and prompt parameters