Files
org_web/docs/hidden-soul-bible.md
Zaine Arch 3531636805
All checks were successful
Build Org Website / build (push) Successful in 48s
change name
2026-05-10 00:04:35 +01:00

19 KiB

Hidden Soul Bible

1. Creative Pillars

The hidden layer should feel like an emotional internet artifact: a personal site that has been lived in, repaired, renamed, backed up, forgotten, and returned to. It should reward attention without demanding completion.

Primary emotional tones:

  • Cozy familial: kitchen lights, rice, mugs, family notes, practical tenderness.
  • Funny and self-aware: fake system warnings, old-web jokes, suspicious biscuit tins, web development folklore.
  • Reflective melancholy: unfinished letters, old usernames, returning to changed rooms.
  • Gentle mystery: Morrow, Nettle, Luma, Etta, Aunt Ma, Nadir, the radio, the train platform.
  • Internet nostalgia: guestbooks, counters, dial-up usernames, under construction language, source-code relics.

2. Recurring Cast

  • Morrow: a quiet figure tied to trains, platforms, lanterns, and unfinished apologies. Morrow represents return, hesitation, and the comfort of being expected.
  • Nettle: the archivist/moderator figure. Files impossible feelings under practical labels. Carries a clipboard and treats emotional continuity as infrastructure.
  • Luma: a lamp-associated presence who hums original tiny songs and notices margins. Luma represents small courage.
  • Etta: writer of the "Do Not Open" letter. Represents vulnerability hidden behind instructions and labels.
  • Aunt Ma: warm, funny, practical family presence. Connected to recipes, suspicious biscuit tins, and household wisdom.
  • Nadir: backup-minded family historian. Explains technical care through domestic metaphors.
  • Old Guest 14 / guest_000 / sunnydialup88: old-web guestbook presences who blur past visitors, usernames, and memory.

3. Symbolic Objects

  • Lamp: patience, late-night comfort, permission to rest.
  • Mug: continuity, small damage kept because it belongs.
  • Return ticket: coming back without needing to explain where from.
  • Radio: almost-heard family memory, voice messages, weather, original hums.
  • Pressed flower / marigold: seasonal return, promises that do not announce themselves.
  • Biscuit tin: running joke; allegedly contains tools, feelings, or neither.
  • Train platform: delay, return, growing older, being expected.
  • Cupboard: hidden terminal, family storage, recursive domestic mystery.

4. Implemented Global Systems

  • Trigger: every page load with a footer.
  • Content: rotates through 102 first-layer messages plus new second-layer continuity.
  • Frequency: always visible but subtle.
  • Lore: the footer is the house threshold.
  • UX: muted centered text; should feel like a small afterthought.

Homepage Greetings

  • Trigger: homepage load.
  • Content: randomized greeting; repeat visitors receive memory-aware copy.
  • Frequency: always on homepage.
  • Lore: the site recognizes returning visitors locally through localStorage.

Hover Whispers

  • Trigger: some paragraphs and headings gain tiny hover/click notes.
  • Content: short poems, quotes, and second-layer hidden memories.
  • Frequency: deterministic per page; not every paragraph.
  • UX: dotted question marks and heading hover captions.

Corner Object

  • Trigger: click the small fixed corner symbol.
  • Sequence: five escalating messages, then seven clicks opens /play/left-behind.html.
  • Lore: a loose panel in the page.

Keepsake Constellation

  • Trigger: click the five tiny bottom keepsakes: lamp, mug, ticket, radio, flower.
  • Payoff: after all are clicked, the site suggests searching radio under stairs.
  • Frequency: always present, low opacity.
  • Lore: collecting ordinary objects aligns the hidden family memory.

Weather Window

  • Trigger: after at least three visits, a subtle window button appears. User click requests browser location.
  • Content: weather-aware line through Open-Meteo if permission/network works; indoor-weather fallback otherwise.
  • Frequency: repeat visitors only.
  • UX: no automatic permission prompt.

Visit Milestones

  • Trigger: visit counts 2, 5, 9, 17, 31, 64.
  • Content: progressively warmer messages about being remembered.
  • Lore: the site stores visits locally, not identities.

Page Revisit Memory

  • Trigger: 3rd, 7th, and 12th visit to the same path.
  • Content: page-specific return messages.
  • Lore: individual rooms recognize repeated footsteps.

Seasonal Content

  • Trigger: low-probability seasonal toast on page load.
  • Content: winter blanket, spring pressed flower, summer fan/window, autumn leaf-links.
  • Frequency: 18% chance.

Date Events

  • Site birthday: May 9. Message about imaginary candles.
  • Visitor anniversary: same month/day as first stored visit.
  • Minute thirteen: radio throat-clearing message.

Night Messages

  • Trigger: 22:00-04:59 local browser time.
  • Content: gentle late-night comfort.
  • Visual: soft bottom glow.

Search Secrets

  • morrow: lantern/lake/apology.
  • nettle: clipboard/cupboard/semicolon.
  • home: warm window/spare key.
  • kitchen light: opens /play/kitchen-light.html.
  • radio under stairs: opens /play/radio-room.html.
  • guestbook 1999: opens /play/guestbook-1999.html.
  • do not open: opens /play/do-not-open.html.
  • cassette: opens /play/cassette-log.html.
  • return ticket: opens /play/train-platform.html.
  • unfinished letter: opens /play/forgotten-draft.html.
  • burnt sugar: opens /play/corrupted-recipe.html.
  • cupboard: opens /play/terminal-cupboard.html.
  • patience: opens /play/patience-game.html.
  • marigold, luma, nadir: lore toasts.

Typed Phrase Secrets

  • remember: continuity toast.
  • dream: opens Dream Corridor.
  • leave the light on: opens Kitchen Light.
  • oldweb: old layout joke.
  • ma: biscuit tin joke.
  • luma: plays a tiny original tone sequence.

Rare Events

  • First layer: rare page breeze and biscuit event.
  • Second layer:
    • 0.6% rare homepage old-web takeover.
    • 0.2% cassette asks permission.
    • 0.4% recurring dream line.
    • 0.8% cryptic comforting warning.
  • Rule: rare events should delight, not block navigation.

Patience Rewards

  • Trigger: 90 seconds of inactivity after repeat visits.
  • Content: quiet no-achievement reward.
  • Lore: patience and kindness count even when not announced.

Source Relics and Alt Text

  • Trigger: DOM load.
  • Behavior: adds a source-code comment and fills empty image alt text with scrapbook-like hidden descriptions.
  • Purpose: secrets inside source and accessibility-friendly hidden storytelling.

Audio

  • Trigger: user action only, never autoplay.
  • Content: short original Web Audio tone sequence associated with Luma/cassettes.
  • Note: no copyrighted lyrics or melodies.

5. Implemented Secret Pages

/play/left-behind.html

  • Trigger: seven clicks on corner object.
  • Tone: familial, emotional.
  • Lore: blue bowl, soup memory, Morrow at 2:13.

/play/dream-corridor.html

  • Trigger: logo taps or typed dream.
  • Tone: surreal, safe.
  • Lore: three shy doors, Nettle margin note.

/play/kitchen-light.html

  • Trigger: search kitchen light or phrase leave the light on.
  • Tone: late-night comfort.
  • Lore: rice in pot, towel on chair, light asks no questions.

/play/radio-room.html

  • Trigger: search radio under stairs; keepsake constellation hints it.
  • Tone: nostalgic audio memory.
  • Lore: Nadir backups, Luma humming, no autoplay manners.

/play/guestbook-1999.html

  • Trigger: search guestbook 1999.
  • Tone: old-web funny/melancholy.
  • Lore: fake users are recurring ghosts of the old internet.

/play/do-not-open.html

  • Trigger: search do not open.
  • Tone: emotionally meaningful warning.
  • Lore: Etta wanted to be found carefully.

/play/cassette-log.html

  • Trigger: search cassette.
  • Tone: archive/audio.
  • Interaction: buttons reveal cassette transcript toasts and play original tones.

/play/train-platform.html

  • Trigger: search return ticket.
  • Tone: patient return.
  • Lore: platform 3, Morrow, destinations as feelings.

/play/forgotten-draft.html

  • Trigger: search unfinished letter.
  • Tone: unsent vulnerability.
  • Lore: website as a way to recover rooms in pieces.

/play/corrupted-recipe.html

  • Trigger: search burnt sugar.
  • Tone: funny family warmth.
  • Lore: recipe corrupted into folklore.

/play/terminal-cupboard.html

  • Trigger: search cupboard.
  • Tone: hidden terminal, domestic mystery.
  • Commands: help, listen, inventory, tea, open, remember, exit.

/play/patience-game.html

  • Trigger: search patience.
  • Tone: quiet game.
  • Interaction: wait. Text changes at 30, 90, and 180 seconds.

6. Emotional Tone Categories

  • Comfort: Kitchen Light, night messages, visitor milestones, patience rewards.
  • Humor: biscuit tin, fake users, old-web jokes, fake errors.
  • Melancholy: Forgotten Draft, train platform, cassettes, old usernames.
  • Mystery: Dream Corridor, radio, cupboard, rare dreams.
  • Familial warmth: corrupted recipe, Aunt Ma, Nadir, blue bowl.
  • Meta/web: source relics, under construction takeover, cache warnings.

7. Page/Section Categories

  • Global: footer notes, toasts, hover whispers, keepsakes, weather window, source comments.
  • Homepage: greetings, rare old-web takeover, logo taps.
  • Search/nav: keyword portals.
  • Play wing: secret rooms and tiny games.
  • Comments: fake guestbook line when comments exist.
  • Images/source: hidden alt text and source-code comment.

8. UI/UX Notes

  • Hidden UI stays low opacity until hovered/focused.
  • No feature should obscure reading for long.
  • Audio requires explicit action.
  • Weather requests require explicit click and have graceful fallback.
  • Secret pages are buildable but marked #+HIDDEN_PAGE: t so they do not appear in index pages.
  • Rewards are intentionally non-competitive; no public checklist.

9. Audio/Visual Suggestions

  • Add tiny original ambient loops only after explicit button press.
  • Use cassette hiss, lamp hum, rain-on-window synthesis, and soft train-platform chimes.
  • Consider small generated bitmap textures: paper receipt, cassette label, pressed flower, old guestbook banner.
  • Avoid horror stingers; even corrupted pages should be emotionally safe.

10. Long-Term Evolution

  • Monthly train destination changes.
  • Seasonal recipe variants.
  • Yearly visitor anniversary letters.
  • A slow Luma arc where the lamp becomes less shy after enough patient moments.
  • Nettle's filing labels can become warmer over time.
  • Morrow's return ticket can gain stamps after visits to secret rooms.
  • Guestbook users can post new fake entries on real calendar dates.

11. Future Expansion Ideas

  • Add a real local-only guestbook draft pad that stores messages in localStorage.
  • Add a hidden "attic" page unlocked after visiting all secret rooms.
  • Add generated cassette-label images for each log.
  • Add a no-score cooking memory game using family recipe fragments.
  • Add an RSS-feed-only hidden note.
  • Add source-map comments or HTML comments with letter fragments.
  • Add a "kindness route" where closing pages gently or waiting unlocks softer endings.

12. Maintaining Mystery

  • Do not explain all triggers in the public UI.
  • Keep most secrets optional and small.
  • Never punish users for missing content.
  • Use recurrence, not randomness alone: objects and characters should reappear with altered context.
  • Make clues emotionally legible, not puzzle-hostile.
  • Avoid completion language. The site is a place, not a checklist.

13. Implementation Notes

  • Current state is client-side only through localStorage key zxh_hidden_details_v1.
  • Secret routes are static Org pages.
  • #+HIDDEN_PAGE: t excludes pages from sitemap/recently-updated via lisp/sitemaps.el and lisp/recently-updated.el.
  • Add backend later only if real guestbook/comment persistence is desired.
  • Keep hidden scripts dependency-free.

14. Canon Rule

The hidden soul should always imply: somebody lived here, somebody cared enough to label the drawer badly, and the visitor is welcome without needing to prove they found everything.

15. Second-Layer Text Registry

These are the newly added second-layer strings. The first-layer registry remains in assets/scripts/hidden-details.js as the original 102-detail foundation.

Quotes

  • The archive does not keep score. It keeps chairs.
  • Some families pass down recipes. This one also passes down tabs left open for later.
  • A page can be a room if enough people arrive softly.
  • The oldest link on the site still expects a hand cursor.
  • If a memory changes, it may be trying to fit through a smaller door.
  • The guestbook is not empty. It is holding its breath between signatures.
  • Every backup is a small superstition against forgetting.
  • Somewhere in the CSS, a lamp is deciding whether to stay on.
  • The radio under the stairs only plays songs it has already missed.
  • A train can leave a station and still remain in the family story.
  • Kindness is the only password the house accepts without checking case.
  • The website learned your pace and stopped rushing the hallway.
  • A draft is just a letter still gathering courage.
  • The cursor is a visitor. The margin is a host.
  • If you hover long enough, even a heading may remember being handwritten.
  • The old forum banner says: welcome back, even if you are new.
  • Not all broken pages need repair. Some need a name.
  • The site keeps its mysteries low to the ground, where tired people can reach them.
  • A year is a folder that keeps renaming itself.
  • Some evenings are survived by the exact right mug.

Poems

  • A train in the rain / waits beside an empty platform / so memory can board.
  • Grandma's radio / tuned between two stations / found us anyway.
  • A flower pressed flat / still teaches the book / how spring once leaned.
  • The lamp stayed awake / not because it was brave / but because someone might need it.
  • Old usernames fade / but the welcome thread remains / warm at the top.
  • I found a draft / with no ending / and felt less alone.
  • The house at midnight / is mostly refrigerator hum / and unsent kindness.
  • A calendar page / falls without bitterness / into tomorrow's hands.
  • There is a road home / made entirely of small tabs / you meant to close.
  • A cassette clicks / and the room becomes younger / for one more minute.

Fake Conversations

  • Nettle: The ticket drawer is humming again. Morrow: That is normal. It hums when someone is almost ready.
  • Aunt Ma: Who put the screwdriver in the biscuit tin? Nadir: A person with vision and no labelling discipline.
  • Morrow: The lamp keeps following the visitor. Etta: Good. Lamps should have hobbies.
  • Old Guest 14: is this page still alive? Webmaster: yes, but quietly, please. the baby is asleep.
  • Nettle: Filed under: feelings disguised as infrastructure. Morrow: Approved without changes.
  • Luma: The radio said my name. Aunt Ma: Then say salaam back. Manners matter.
  • Nadir: The server made soup noises. Etta: That means the deployment is nearly done.
  • Morrow: I found a page that says do not open. Nettle: That usually means open gently.

Journal Fragments

  • Journal scrap, 2006: We changed the wallpaper and everyone pretended it was not emotional.
  • Journal scrap, 2011: The old router blinked like it was trying to stay in the conversation.
  • Journal scrap, 2018: I learned that homesickness can happen inside your own house.
  • Journal scrap, 2024: Somebody laughed in the kitchen and the whole week became easier.
  • Journal scrap, undated: The marigolds came back where nobody planted them.
  • Journal scrap, undated: We kept the cracked mug because it knew too much.
  • Journal scrap, winter: I saved a voicemail just to remember the background noise.
  • Journal scrap, summer: The fan turned all afternoon and made the curtains look like boats.

Comforting Warnings

  • COMFORT WARNING: this page may contain traces of old carpet, warm rice, and unfinished errands.
  • SOFT ERROR: the archive attempted to be impressive and became sincere instead.
  • NOTICE: do not stack heavy feelings on the top shelf.
  • LEGACY WARNING: this layout remembers 800x600 and asks you to be respectful.
  • SYSTEM MESSAGE: no achievement unlocked. You were kind anyway.
  • CACHE NOTE: the page kept a copy of the good part.
  • RECOVERY MODE: make tea, rename file, try again.
  • PERMISSION DENIED: the sadness may enter, but it must wipe its feet.

Recurring Dreams

  • Dream 01: a train full of empty mugs waited at a station called Later.
  • Dream 02: the search box became a letterbox and returned every question with a family recipe.
  • Dream 03: a radio under the stairs played tomorrow's weather in a grandparent's voice.
  • Dream 04: the old homepage had a porch, and every link was a moth-wing-soft knock.
  • Dream 05: someone had folded the sitemap into a paper flower and left it in a browser tab.

Cassette Logs

  • CASSETTE A / side 1: You can hear plates, rain, and someone saying, no, leave the light on.
  • CASSETTE A / side 2: Three seconds of silence, then laughter too close to the microphone.
  • CASSETTE B / side 1: Nadir explains backups to a child using rice grains and a spoon.
  • CASSETTE C / side 2: A song with no words, hummed badly, loved completely.
  • CASSETTE D / side ?: The tape label only says for when the house feels far away.

Fake Users

  • sunnydialup88: first!!!! but emotionally
  • auntie-admin: please stop uploading files named newnewnewfinal
  • railway_morrow: platform 3 smells like rain today
  • nettle_mod: moved thread from Bugs to Feelings
  • luma-lamp: does anyone else hear the margins singing
  • guest_000: I signed this once and then grew up

Rare Homepage Takeovers

  • For one rare minute, the homepage believes it is an old family desktop.
  • The dashboard has become a late-night noticeboard with one pin missing.
  • The homepage found its old forum skin in a drawer and is trying it on.

Seasonal Lines

  • Winter: The archive put an extra blanket on the footer.
  • Spring: A pressed flower appeared between two cached pages.
  • Summer: The page opened a window and let the fan turn the silence.
  • Autumn: The old links sound like leaves when the cursor passes.

Secret Room Search Terms

  • radio under stairs -> Radio Room.
  • guestbook 1999 -> Guestbook 1999.
  • do not open -> Do Not Open.
  • cassette -> Cassette Log.
  • return ticket -> Train Platform.
  • unfinished letter -> Forgotten Draft.
  • burnt sugar -> Corrupted Recipe.
  • cupboard -> Terminal Cupboard.
  • patience -> Patience Game.

16. Maintenance Checklist

  • When adding a new hidden page, include #+HIDDEN_PAGE: t.
  • Add the route to the invisible link registry only if accidental discovery is acceptable.
  • Add one lore connection, one emotional reason, and one non-obvious trigger.
  • Keep text short in toasts; move longer writing into hidden rooms.
  • Prefer local state and static pages. Add backend persistence only for explicitly public features.
  • Rebuild with emacs -Q --script build-site.el.
  • Verify secret pages build and do not appear in sitemap.org or recently-updated.org.