Examples

The following are live sites generated entirely by Rabbithole. Each was started with a single seed prompt; every page you visit on those sites is generated on demand by an LLM and cached permanently in SQLite. No HTML was written by hand. These examples demonstrate the range of styles and subject matter Rabbithole can handle.

For context on how seed prompts drive the entire site, see Architecture and Writing Good Seed Prompts.


1. isarabbithole.com — Rabbithole Documentation Site

Live URLisarabbithole.com
SubjectDocumentation for Rabbithole itself — this very project
Web toolsEnabled (searches GitHub, docs, deployment guides)
BackendSQLite
Depth limit5
Deployed onFly.io
StylePlain, minimal, functional — modeled after gcc.gnu.org and craigslist

This site is its own documentation. The seed prompt instructs the LLM to generate a developer-focused documentation site with a plain aesthetic: white background, default system fonts, blue links, pipe-separated navigation, and pre/code blocks with a light grey background. No CSS frameworks, no gradients, no JavaScript.

Seed prompt excerpt:

Homepage for "Rabbithole" — an open-source Rust web server (github.com/ajbt200128/rabbithole,
live at isarabbithole.com) that dynamically generates entire websites on the fly using LLMs.
Each page is generated by an LLM at request time and cached permanently in SQLite.

DESIGN: Plain minimal HTML like gcc.gnu.org or Craigslist. White background (#ffffff), default
system fonts (Arial/Helvetica or Times New Roman), no gradients, no shadows, no rounded corners.
Blue hyperlinks (#0000cc), visited links purple (#551a8b). Pipe-separated navigation bar:
  Home | Getting Started | Architecture | Configuration | Web Tools | Deployment | Examples | About

Navigation absolute paths: /, /getting-started.html, /architecture.html, /configuration.html,
/web-tools.html, /deployment.html, /examples.html, /about.html

Pre/code blocks: background #f4f4f4, border 1px solid #ccc. Dense layout. H2 headings with
bottom border. Footer with GitHub link.

Content: Explain what Rabbithole is, how it works (seed prompt → LLM → HTML response → cached
in SQLite → links generate new pages), quick install (cargo install), basic usage...
  

Notes: Because web tools are enabled on this deployment, the LLM can search GitHub for the actual Rabbithole source code, look up Fly.io deployment documentation, and incorporate real version numbers and CLI flags. Pages deeper in the site (e.g. Architecture, Configuration) are generated in complete isolation and reconstruct the site's style entirely from the prompt embedded in each link mapping.

2. acapa.isarabbithole.com — American Competitive Apple Picking Association

Live URLacapa.isarabbithole.com
SubjectFictional governing body for competitive apple picking as a sport
Web toolsDisabled (purely fictional content)
BackendSQLite
Depth limit5
StyleUgly early-2000s website: table layouts, Comic Sans, garish colors, heavy bold/underline

ACAPA is a deliberately campy fictional sports organization. The aesthetic is aggressively early-internet: think GeoCities meets an official sports federation. Comic Sans or Times New Roman headings, bright backgrounds (yellows, teals, reds), tables with thick borders, lots of <b><u>, and content that treats apple picking with the same bureaucratic gravity as the NFL rulebook.

The site contains fictional rankings, regional divisions (Northeast, Midwest, Pacific), official rules (including the controversial 2019 amendment banning "two-hand cupping"), athlete profiles, upcoming tournament schedules, and a member club directory. Because web tools are disabled, all of this is invented wholesale by the LLM on each page visit.

Seed prompt excerpt:

Homepage for the ACAPA — American Competitive Apple Picking Association. ACAPA is the official
governing body of competitive apple picking as a recognized sport in the United States.
Founded 1987 in Yakima, WA. Headquarters: Traverse City, MI.

AESTHETIC: Deliberately ugly early-2000s web design. Table-based layout. Garish color scheme
(bright yellow #ffff00 or teal #008080 backgrounds, red headers, navy text). Comic Sans MS or
Times New Roman fonts. Heavy use of  and  tags. Horizontal rules everywhere. Animated
GIF spirit (describe things as if blinking or marquee-scrolling even if not). Small trophy and
apple emoji used as bullet points. NO modern CSS. NO flexbox. NO gradients. Tables for layout.

NAVIGATION (pipe-separated, table row at top):
  Home | Rankings | Rules & Regulations | Tournament Schedule | Member Clubs | Hall of Fame |
  About ACAPA | Contact

CONTENT FOR HOMEPAGE: Welcome banner ("WELCOME TO THE OFFICIAL ACAPA WEBSITE"), current
national champion (Darlene Kowalczyk of the Traverse City Twisters, 4x champion), upcoming
event (33rd Annual National Championship, October 4-6, Chambersburg PA), news ticker items,
ACAPA mission statement, regional division overview (Northeast, Midwest, Pacific, Southern)...

LORE: Sport involves picking the most apples by weight within a timed round. Athletes are called
"pickers." Fouls include branch-shaking, ground-scraping, and ladder interference. The 2019
Rulebook Amendment 7(c) banned "two-hand cupping" after the Branson Incident. Top teams include
the Traverse City Twisters, the Hudson Valley Harvesters, the Willamette Wanderers, the Ozark
Orchard Raiders. The ACAPA commissioner is Gerald T. Pottsworth III...
  

Notes: This example demonstrates Rabbithole's ability to generate coherent fictional lore across many pages. Each subpage (Rankings, Rules, individual athlete bios) is generated independently but reconstructs the ACAPA universe from the prompt context embedded in every link. See more about the ACAPA site.

3. cgpa.isarabbithole.com — Cat Girl Program Analysis (CGPA)

Live URLcgpa.isarabbithole.com
SubjectNiche online forum: cat girls discussing program analysis, type theory, abstract interpretation, formal verification
Web toolsDisabled
BackendSQLite
Depth limit5
StyleDark phpBB-style forum, dark background, light text, classic forum thread layout with avatars

CGPA is an extremely niche intersection: a classic internet forum where the users happen to be cat girls and the subject matter is rigorous academic computer science. Threads cover topics like Hindley-Milner type inference, the Cousot-Cousot framework for abstract interpretation, separation logic, effect systems, and the correctness of garbage collectors. Posts are written in a mix of casual forum vernacular and dense technical language, with occasional use of LaTeX-style notation inline.

The visual aesthetic is classic dark phpBB circa 2006: near-black background (#1a1a2e or #0d0d0d), light grey or pale blue body text, colored username badges, small avatar images, thick table borders, subforum listings, post counts, join dates, and rank titles like "Lattice Lurker," "Fixed-Point Fanatic," or "Abstract Domain Goddess."

Seed prompt excerpt:

Homepage (forum index) for CGPA — Cat Girl Program Analysis. CGPA is a niche internet forum
where cat girls discuss program analysis, type theory, abstract interpretation, and formal
verification. The intersection of moe anime aesthetics and rigorous academic CS theory.

AESTHETIC: Classic dark phpBB-style forum, circa 2005-2008. Background: #0d0d0d or #1a1a2e.
Body text: #cccccc or #e0e0e0. Header bar: dark purple or dark teal with forum logo text.
Table-based layout. Subforum boxes with descriptions. Post/thread/last-post columns. Colored
rank badges next to usernames. Small 60x60px avatar placeholders. Thin 1px borders in #333.
Font: Arial or Verdana, 11-12px. Use classic phpBB structural HTML (nested tables, bgcolor
attributes in spirit even if via inline style).

SUBFORUMS:
  - General Analysis (abstract interpretation, dataflow, pointer analysis)
  - Type Theory Tearoom (HM, System F, dependent types, effects)
  - Verification Vanguard (Hoare logic, separation logic, model checking, Coq/Lean)
  - Tooling & Implementations (LLVM passes, Frama-C, Dafny, Infer)
  - Off-Topic Catgirl Lounge (general chat, anime, life advice)

RECURRING USERS: Nyanko_Fixpoint (admin, posts: 8,847, rank: Abstract Domain Goddess),
Felis_Monad (mod, posts: 3,210, rank: Functor Familiar), mittentype (posts: 1,102,
rank: Lattice Lurker), abstract_paws (posts: 442, rank: Newcat)...

Recent threads should include realistic academic CS discussion topics mixed with cat girl
posting culture. Example thread titles: "Widening operators for interval domains — am I
doing this right? uwu", "Help me understand the Cousot & Cousot '77 paper (page 14 is
killing me)", "Coq proof assistant tips for beginners :3", "Is gradual typing actually
useful or just cope?"...
  

Notes: This example shows Rabbithole handling a community site with persistent fictional characters. The recurring usernames (Nyanko_Fixpoint, Felis_Monad, etc.) and their post histories are reconstructed from the prompt on every page. Thread pages, user profiles, and subforum indexes are all generated on demand. See more about the CGPA site.


Writing Good Seed Prompts

The seed prompt is the only creative brief the system ever has. Every subsequent page is generated in complete isolation by a fresh LLM call that receives only the prompt string stored in the link mapping. There is no shared state, no session memory, no persistent context between pages. If you want visual and narrative coherence across a multi-page site, you must encode everything into the prompt.

Key principle: Each page prompt must function as a complete standalone brief for a designer who has never seen the rest of the site. The more context you encode, the more cohesive the result.

1. Be explicit about visual style

Don't write "make it look nice." Specify exact hex colors, font names, border styles, layout patterns, and aesthetic references. Compare:

# Weak
"A documentation page for a Rust tool. Clean design."

# Strong
"White background (#ffffff), Arial/Helvetica body font, blue links (#0000cc), visited links
purple (#551a8b). Pre/code blocks: #f4f4f4 background, 1px solid #ccc border. H2 headings
with 1px solid #ccc bottom border. Pipe-separated nav. No JS, no gradients, no rounded corners.
Dense layout like gcc.gnu.org."

2. Name the navigation structure explicitly

Every page prompt should include the full navigation bar text and the absolute paths for each link, otherwise generated pages will invent different nav structures and the site will fragment.

Navigation (pipe-separated):
  Home | Rankings | Rules | Schedule | Member Clubs | Hall of Fame | About | Contact

Absolute paths:
  / | /rankings.html | /rules.html | /schedule.html | /clubs.html | /hall-of-fame.html
  | /about.html | /contact.html

3. Encode recurring characters and lore

Fictional sites need their characters and history repeated in every prompt. A user profile page generated on page visit #847 will only know what you told it in the prompt for that URL.

RECURRING CHARACTERS:
  - Darlene Kowalczyk: 4x national champion, Traverse City Twisters, aggressive ladder technique
  - Gerald T. Pottsworth III: ACAPA Commissioner since 2003, controversial, dislikes instant replay
  - Jake "Two-Hand" Branson: disqualified in 2019, inadvertently caused Amendment 7(c)

4. Specify content scope per page

The prompt for a linked page should describe exactly what content that specific page covers, in addition to all the site-wide context. Don't just write "rankings page" — describe what rankings system is used, which athletes should appear, what columns the table has, etc.

5. Reference aesthetic anchors

Naming a real reference site (e.g. "like gcc.gnu.org", "like phpBB 2.0", "like a 2003 GeoCities page") gives the LLM a strong visual prior to work from, on top of the explicit CSS rules you specify. Use both: the named reference sets the gestalt, the explicit rules set the details.

6. Keep prompts long for complex sites

There is no token penalty for long prompts in the mapping JSON. A 2,000-word prompt that fully describes the site's lore, style, characters, and content structure will produce dramatically more coherent pages than a 50-word stub. Err on the side of over-specifying.

7. Web tools vs. no web tools

If the site is fictional (ACAPA, CGPA), disable web tools — the LLM should invent freely without fetching real-world data that might contradict the fiction. If the site is factual or technical (isarabbithole.com), enable web tools so the LLM can look up real source code, docs, and specs. See Web Tools for configuration.

Quick checklist

  • ☑ Exact hex color values for background, text, links, borders
  • ☑ Font family names (not just "sans-serif")
  • ☑ Full navigation bar text and all absolute URL paths
  • ☑ Named aesthetic reference site
  • ☑ Recurring characters with names, roles, personality notes
  • ☑ Fictional lore: organization history, terminology, rules, events
  • ☑ What specific content this page should contain
  • ☑ Any constraints (no JS, no external CSS, no gradients, etc.)
  • ☑ Web tools enabled/disabled decision documented in prompt

See Also