Inspiration
Most journaling asks people to sit down, summarise a day, and already know what it meant. Most social products ask them to perform that day for other people. I wanted the opposite: a place where someone can keep tiny moments without judgement, discover a story only when they choose, and feel less alone without surrendering their identity.
That became Asteriumos: a private constellation for ordinary days. Each moment becomes a star. At the end of the day, GPT-5.6 can connect those stars into a Day Card. If the user chooses to release one moment, Asteriumos transforms it into a privacy-safe anonymous Echo and connects it to emotionally similar stars in a shared Universe.
What it does
Notice
The user saves short moments, emotions, details, or things almost missed. They become stars in an interactive Three.js constellation that can be rotated, panned, zoomed, recoloured, and surrounded with a custom dual-tone nebula.
Chronicle
When the day feels complete, the user chooses one or two voices — Gentle, Playful, Honest, or Wild — plus a story world and ending. GPT-5.6 uses every saved star to create a concise Day Card with a title, narrative, closing line, underlying thread, symbolic motif, grounded star roles, and a procedural constellation badge. The user can keep the card, reforge its badge from a chosen 3D viewpoint, or export it as PNG.
Remember
Accepted Day Cards build a compact encrypted Memory Capsule. GPT-5.6 can notice genuinely recurring characters, places, symbols, emotional weather, and continuing threads across days without pretending that repetition exists. The user can select which Day Card anchors their mythology and exclude or restore individual memories.
Resonate
A private moment never enters the shared Universe directly. A release uses two deliberate stages: moderation and GPT-5.6 transform the moment into a short anonymous Echo; then the user reviews the exact public wording and explicitly approves it. Names, handles, contact details, precise locations, institutions, account details, exact times, identity, and the Constellation Key are not attached. The approved Echo alone is embedded and matched to semantically similar Echoes, including across languages.
Connect
The shared Universe presents public Echoes as distinct nebulae rather than profiles or a feed. A user can answer another Echo with the preset response “I felt that too,” causing both stars to pulse without revealing either person. GPT-5.6 can also read one user's focal Echo with its connected public neighbours and form a short, grounded, surreal Universe Weather reading.
How I built it
Asteriumos is a Next.js 16 and React 19 application written in TypeScript. Three.js renders the private constellation and shared Universe as navigable 3D spaces with procedural stars, connections, badges, nebula palettes, and persistent atmosphere controls.
The private experience uses an account-free Constellation Key. Browser-held moments and Day Cards are encrypted before cross-device storage. Protected Next.js server routes keep the OpenAI key and database secret off the client.
GPT-5.6 Sol is used through the Responses API with strict JSON schemas and store: false:
- Daily Reveal: converts all supplied moments and the user's creative controls into a grounded Day Card and updated Memory Capsule. The server verifies that every source star appears exactly once in the grounding contract.
- Anonymous Echo: rewrites one private moment into a short public abstraction after a private moderation check. The generated Echo is moderated again and shown to the user before release.
- Universe Weather: interprets a user's focal Echo alongside only the Echoes already connected by semantic matching. The output must explicitly ground itself in the focal label and at least one surrounding label.
After approval, text-embedding-3-small converts only the anonymous Echo into a semantic vector. Postgres vector matching finds nearby Echoes; no original private wording is stored in the public Universe. omni-moderation-latest, identifier checks, report/hold controls, strict length limits, timeouts, in-flight request guards, and no automatic retries provide additional safety and cost boundaries.
Supabase/Postgres stores encrypted vaults and approved public Echo data. Netlify hosts the application and protected server functions. Vitest covers storage, encryption, AI contracts, resonance policy, mythology evolution, and runtime gates; the final build passes 81 tests, ESLint, TypeScript checking, and a production build. How Codex was used
I directed the product concept, emotional boundaries, privacy model, visual language, and milestone decisions. Codex served as an implementation partner: converting sketches and feedback into components, building the Three.js scenes and protected API routes, shaping and validating GPT-5.6 structured-output contracts, writing migrations and automated tests, debugging browser and provider failures, explaining each dependency and paid service in plain language, and preparing the Netlify release.
The work was deliberately iterative. I tested each milestone, supplied screenshots and product feedback, and decided what should change — including the simplified landing page, persistent camera state, stronger celestial depth, user-controlled narration, exact Echo approval, anonymous Constellation Keys, personal mythology controls, and the removal of effects that felt artificial. Codex made those iterations fast enough to reach a coherent production experience during Build Week. The dated commit history documents that progression from an empty repository to the deployed app.
Challenges I ran into
The hardest design problem was creating connection without turning private writing into public content. We separated the system into a private encrypted constellation and a public world containing only reviewed abstractions. The release pipeline moderates both sides of the transformation and never publishes automatically.
The hardest visual problem was making multiple procedural 3D nebulae feel like one continuous universe. Camera movement, depth, line visibility, cloud detail, star scale, and click interactions all had to remain coherent at very different zoom levels. We repeatedly tested screenshots and tuned the scene while preserving camera state across interface actions.
The hardest AI problem was allowing literary surprise without losing grounding. Strict response schemas, complete source-star role checks, focal-Echo validation, conservative prompts, explicit user controls, and refusal states keep GPT-5.6 imaginative but accountable to supplied material.
Account-free cross-device continuity was another constraint. The Constellation Key had to be understandable to nontechnical users while acting as the only route back to the same encrypted sky.
Accomplishments that I am proud of
- A complete emotional journey — private noticing, creative reflection, long-term memory, optional anonymous release, and human connection — rather than a single AI-generation screen.
- A live GPT-5.6 product with three distinct grounded model experiences, not a mocked demo.
- A privacy architecture where exact public wording is previewed before release and private source text never enters the shared Universe.
- An evolving Personal Mythology that remains user-controlled instead of silently deciding what a person's life means.
- A navigable 3D visual identity where constellations, badges, and nebula palettes are derived procedurally from the user's sky.
- An isolated fictional demo that judges can explore without modifying real data or spending API credit.
- A production build backed by 81 automated tests, linting, type checking, and explicit runtime/cost guards.
What I learned
Privacy can be part of the interaction design, not only a policy page. Showing the private original beside the exact anonymous Echo, and requiring a separate approval, makes the boundary tangible.
Creative AI feels more respectful when users control the transformation. Voice blends, story worlds, endings, accepted Day Cards, and mythology exclusions turn GPT-5.6 into a creative instrument rather than an authority on the user's feelings.
Grounding and imagination do not have to be opposites. A strict machine-verifiable contract can require every source star while still leaving the model room for metaphor, rhythm, humour, and surprise.
Anonymous connection needs restraint. A single preset response and a shared pulse can feel more meaningful than profiles, follower counts, comments, or engagement metrics.
What's next for Asteriumos
- User research on whether Day Cards and anonymous Echoes feel accurate, comforting, and easy to control.
- Stronger abuse operations: reviewer tooling, rate limits, retention rules, appeal flows, and adversarial safety testing.
- Accessibility and performance tuning across lower-powered phones and reduced-motion settings.
- More expressive but efficient procedural nebulae as the real shared Universe grows.
- Optional reminders that never trigger an AI request automatically.
- Private export and import of a full constellation archive.
- Continued refinement of Personal Mythology so users can compare, branch, or retire interpretations over time.
Built With
- codex
- gpt-5.6
- netlify
- nextjs
- openai-api
- postgresql
- react19
- responses-api
- supabase
- tailwind-css
- three.js
- typescript
- webgl

Log in or sign up for Devpost to join the conversation.