This is a submission for the Sanity Challenge, Path Two: Vibe-Code Something Strange.
A few days later, I was walking through a giant library filled with real DEV articles, debugging floating bookshelves, building spatial authoring tools, and learning how to teach Sanity to remember which shelves were alive.
That escalation probably tells you most of what you need to know about how this project went.
Instead of browsing DEV as a feed, grid, or search page, Oniria turns it into a place. You walk through rooms. Articles become books. Topics occupy shelves. Search physically restocks part of the library. Parts of the archive can evolve over time based on activity. Sanity remembers what previously occupied that physical space.
Repository: github.com/miflow13/Oniria Agent sessions: Public Oniria development transcripts Sanity project: Oniria Archive Control
| Room | Purpose | | --- | --- | | Featured | Popular and curated writing | | New Arrivals | Recently published DEV articles | | Topics | Tag-driven collections | | Creators | Authors and their writing | | Search | A physical card catalogue | | Archive | Deeper exploration and long-tail content |
Sanity tells Oniria what the world means, where things belong, and what happened there before.
A first visit is intentionally simple: Enter the library and explore Featured or New Arrivals. Approach a shelf and target a book. Open the real DEV article represented by that book. Return to the library and land back at the same physical location. Visit Search, query DEV, and watch that room restock around the query. Explore Topics, Creators, and the deeper Archive.
The goal was to make the underlying technology complicated while keeping the mental model simple.
The visitor shouldn't need to understand data graphs, procedural systems, lifecycle state, or spatial indexes.
The main stack is: Next.js 16 React 19 TypeScript Three.js Sanity next-sanity DEV / Forem API Vercel GLB environment and architectural assets
The building itself is assembled through code, configuration, reusable assets, and structured world data rather than a traditional 3D level editor.
It changed direction repeatedly because actually walking through what the agents produced exposed problems that were impossible to understand from code alone. It Started as a Dream Journal
I built a Sanity-backed dream journal where dreams referenced recurring symbols, mood, and other structured information.
I was interested in whether structured information could have: space distance landmarks relationships physical context geography
I briefly experimented with using that same structure to explore files and codebases.
Articles already have natural relationships: tags authors recency popularity search recommendations
I used Codex heavily during development, with ChatGPT helping me think through architecture, UX, debugging, and the direction of the project.
