Mall World
Catalog and explore the impossible places thousands of people visit in their dreams.
Mall World is a community archive for the recurring dreamscapes people share without ever having met — endless mall corridors, pool labyrinths, staircase voids, the spaces that show up in enough independent journals to feel like real geography. Users upload images, trade journal entries, and collaboratively map locations across themed sub-worlds. PHP 8.3 / MariaDB / vanilla JS, passkey-only auth.
- PHP 8.3
- MariaDB
- Apache
- WebAuthn
- Composer
- Lucide
- Vanilla JS
Mall World is a community archive for the places that shouldn't exist but everyone keeps describing the same way — the impossible mall, the endless pool complex, the staircase that goes nowhere and somehow keeps going. The project started as a "wait, you've been there too?" thread and grew into a structured archive: themed sub-worlds, image galleries, dream journals, and a slow-building shared map of geography that exists only because enough independent dreamers keep stumbling into it.
How the site is organized
- Sub-worlds — each impossible place gets its own section: Mall World, Pool World, Staircase World, plus utility sections (Meta, News, Off-Topic). Each is a self-contained image board + thread space with its own moderators.
- Dream journals — long-form posts where users record what they remember. Cross-linked when descriptions match, so independent witnesses to the same location surface together.
- Shared mapping — collaborative tagging of locations within each sub-world. Two people who stumbled into the same broken food court can find each other and stitch the corner of the map between them.
Tech choices
Server is PHP 8.3 on MariaDB 10.11 behind Apache, no framework — vanilla request routing, plain SQL, plain HTML templating. Frontend is vanilla JavaScript with CSS custom properties; Lucide for icons, Inter and Space Grotesk for type. Auth is passkey-first via WebAuthn / FIDO2 — no passwords to lose, no resets to engineer. The whole site runs on a single Ubuntu 24.04 box.
Why this exists
The shared-dream phenomenon is a real, weird thing — Reddit threads, podcast episodes, the "Backrooms" lineage. Most of that lives in fragmented social posts that get buried within a week. Mall World is the attempt to give it an archive that survives — structured enough to be searched, loose enough that weird new sub-worlds can be added the moment someone realises they're in one. Whether you treat the whole thing as folklore, psychology, or sincere reportage, the dataset is interesting on every reading.
Straight from the source
The project's own README.
Rendered in place — every link, image, and code block carried over from the repo. The page below is what a contributor would see opening the project for the first time.
Mall World
Cataloging and exploring the shared dream spaces thousands of people visit in their sleep.
What is Mall World?
Many people independently report visiting the same vast, impossible mall in their dreams — fluorescent lights, endless corridors, stores that don't exist, escalators to nowhere. This phenomenon extends to related spaces like Pool World (endless pool complexes and waterpark labyrinths) and others yet to be documented.
Mall World is a community platform for cataloging, mapping, and discussing these shared dreamscapes. Users can upload images, share dream journals, link related content, and help map dream locations.
Tech Stack
- Backend: PHP 8.3, Apache 2.4, MariaDB 10.11
- OS: Ubuntu 24.04 LTS
- Auth: WebAuthn/FIDO2 (passkey-first, no passwords)
- Frontend: Vanilla JS, Lucide Icons, CSS custom properties
- Fonts: Inter, Space Grotesk
Setup
# Install dependencies
composer install --optimize-autoloader
# Configure environment
cp .env.example .env
# Edit .env with your database credentials and app settings
# Run database migrations
php bin/migrate
# Set up Apache virtual host pointing DocumentRoot to public/
# Restart Apache
systemctl restart apache2
Contributing
Contributions welcome. Please follow the existing code conventions (PSR-12, BEM CSS, no frameworks).
License
All rights reserved.
Build something like this
Want a tool like this for your shop?
We've shipped this kind of thing before. Twenty-minute intro call, no slides.