Case Study

DreamSeek

Most dream apps are dream-dictionary slop. DreamSeek is the opposite: a research-grade interpretation engine drawing on twelve overlapping traditions, captured at the moment of waking, structured so the dream is treated as a relationship rather than a lookup.

Status Launched (Web Alpha) · Native Mobile In Development
Role Solo Developer
Stack Expo · React Native · Postgres · Prisma · Claude API

A category error dressed as a market

The dream app market is mostly dream-dictionary content disguised as software. Dreaming of water means anxiety. Dreaming of falling means insecurity. The format is reductive in a way that working analysts and serious lay practitioners have spent a century explicitly arguing against. There's an entire shelf of clinical and academic literature on why a single-symbol gloss is the wrong primitive — and almost none of it is built into the apps people actually use.

DreamSeek's design stance was shaped at the intersection of three frames: a psychology major's training in academic dream research, a Jungian's habit of treating the unconscious as an interlocutor, and a brief work-study with a traditionally trained Native medicine teacher. Across all three, one conviction recurs: dreams are communications, and treating them as content to be consumed instead of as relationships to be entered is the category error the rest of the market is built on.

The serious alternative — cracking open Jung, James Hillman, Ann Faraday, the depth-psychology lineage, the alchemical and Hermetic symbolic systems, the contemporary neuroscience of sleep, the 19th-century French dream science that pre-figured Freud — is real and it works. It also requires reading half a library, owning a translator's shelf, and having two free hours after waking up. Most people have access to none of those, and the apps that could deliver them at the right scale and the right time don't exist.

12

Interpretive Traditions

~100

Analysis Operations Per Dream

2

Capture Modes (Quick & Deep)

E2E

Encrypted Dream Content

3

Surfaces (Web · iOS · Android)

$0

Free Tier

1

Sister Project Spawned

100+

Yrs of Untranslated Canon Targeted

Twelve traditions, layered as lenses, on the dream you just had

DreamSeek runs roughly a hundred analysis operations across twelve interpretive traditions every time a dream is logged. Each tradition is treated as a lens, not as the answer. Where the lenses agree, the synthesis is high-confidence. Where they disagree, the disagreement itself is informative — and surfaced, not papered over. The user reads a layered interpretation that names which lens is producing which observation, and what to do with it.

Capture is mobile-first because the moment of waking is when dreams are most accessible and least retrievable, in that order. A quick capture mode preserves the trace before it fades. A deep capture mode invites the dreamer to add the felt sense, the affective tone, the residue, the figures, the spatial geography — all of which the engine then reads. The friction is calibrated for 3:47am, not for noon.

Every dream is encrypted at rest and stays the dreamer's property in every architectural sense. Dreams are diaries the dreamer didn't choose. The system is designed so the intimacy is held with the same seriousness it was offered with.

Twelve traditions, treated as twelve overlapping instruments

The interpretive stack leans heavily on the depth-psychological lineage and its symbolic adjuncts. Jungian analytical psychology for archetypal pattern, complex theory, and individuation arc. Object relations (Winnicott, Klein) for the relational dynamics between dream figures and the dreamer. Archetypal psychology in the Hillman lineage for image-as-soul rather than image-as-symptom. Contemporary cognitive neuroscience of sleep and dreaming for the physiological substrate. Hermetic Qabalah and alchemical symbolism as structural correspondence systems — not as religious doctrine but as the symbolic vocabularies the modern depth-psychological tradition explicitly inherited from.

The full twelve include the 19th-century French dream science tradition that pre-figured all of this — Maury's 1865 Le sommeil et les rêves, Saint-Denys' 1867 Les rêves et les moyens de les diriger, the work of Pierre Janet, Yves Delage's Le Rêve — texts which have been substantially out of reach for English-only readers for more than a century. That gap is what spawned the sister project described below.

The synthesis layer is the actual product. Twelve traditions can't blur into a soup — each is preserved as the distinct lens it is, and synthesis is an explicit final step rather than the default. Reading the output should feel like reading a letter from your own psyche, with marginalia from twelve different scholars, not like reading a horoscope.

Calibrated for 3:47am, not for noon

A dream that isn't captured within minutes is mostly gone. Most dream-journaling tools are built like productivity apps, which means they implicitly assume a desk, a clear head, and a schedule — the exact opposite of the conditions in which dreams are actually accessible. DreamSeek is built for the body that just woke up.

Quick capture is voice-first, eyes-half-shut compatible, and finishes in under thirty seconds. Just enough to anchor the trace. Deep capture is invited later, with prompts pulled from the engine's analytical needs — the felt sense, the affective tone, the figures, the geography, the residual emotion at waking. The dreamer is filling out structured fields without realizing the structure is itself an interpretive instrument.

The longitudinal layer is where the engine compounds. A single dream is one signal. A series of dreams over weeks is a conversation the psyche is having with itself, and the engine is built to read the conversation, not just the sentences. Dream series analysis — recurring figures, evolving motifs, archetypal arcs across time — is first-class.

Dreams are communications, not content. Treat them like a relationship and they will teach you. Treat them like a lookup and they will resent you. The whole engine is built on that distinction.

A research-grade instrument for taking the unconscious seriously. That's the design philosophy.

Half the canon hasn't been translated

Building a research-grade dream interpretation engine surfaced a problem the larger field has been quietly carrying for a hundred and fifty years: most of the foundational texts aren't available in English. Maury's 1865 Le sommeil et les rêves, Saint-Denys' 1867 Les rêves et les moyens de les diriger, the corpus of Pierre Janet's work on dissociation and dream content, Yves Delage's Le Rêve — canonical, cited forward by Freud and Jung, and substantially untranslated. German precursors and Arabic and Egyptian dream-temple materials are even further behind.

DreamSeek can't responsibly cite a tradition whose source texts the user can't verify. Treating the canon as a black box defeats the entire claim of being research-grade. So a parallel project was started: a reading and translation workbench for public-domain dream-science texts in languages most users don't read — with confidence visualization, alternative-rendering surfacing, and reader-side annotation. The translation isn't presented as final. It's presented with its uncertainty visible, which is the only honest way to translate philosophical and scientific prose a century-and-a-half old.

The current working slice is the 19th-century French dream-science anthology. German texts, Arabic dream-tradition materials, and Egyptian dream-temple records are on the roadmap, in some cases requiring licensing in addition to translation. The dream interpretation engine and the translation workbench will eventually share infrastructure, but they are deliberately separate products: each serves an audience the other doesn't.

What made this difficult

  • ~100 analysis operations without fatiguing the dreamer The engine runs roughly a hundred operations per dream — archetypal scoring, complex detection, figure relation analysis, motif tracking, alchemical-stage mapping, symbolic correspondence checks, neuroscientific contextualization, longitudinal pattern matching, and a dozen more. Surfacing that depth as a readable, layered narrative — rather than a forensic report — is the core UX problem. Reading the output should feel like a long letter from a patient analyst, not like a dashboard.
  • Cross-tradition synthesis without dilution Twelve traditions can't blur into a soup. Each is structured as its own lens with its own vocabulary, its own primitives, and its own confidence model. Synthesis is an explicit final step that names which lenses contributed which observations — preserving disagreement when it exists, rather than averaging it away. The data model treats each tradition as a first-class subsystem, not as a tag.
  • Wake-time capture UX for a body that just woke up The capture flow has to work in the dark, with one eye open, voice-first, in under thirty seconds, while the dream is still loading-bearing and unfading. Most journaling apps are built for productive daytime users; almost none of their assumptions transfer. Building a flow that's actually frictionless at 3:47am required treating the moment of waking as the primary platform constraint, not as an edge case.
  • Privacy architecture for the most intimate possible content Dreams are not chosen content. The dreamer didn't decide what to confess. That makes the privacy bar higher than for any other category of personal app. Column-level encryption of dream content, application-layer encryption before the database sees anything, isolation between dream content and the analytical surface, and deliberate limits on what the AI layer is permitted to retain — all of it is non-negotiable architecture, not a checklist item.
  • An entire untranslated canon as a build-time blocker Half of the canonical dream-science texts aren't available in English. A serious instrument can't cite a tradition whose primary sources the user can't verify. Solving this responsibly required spawning a sister project — a reading and translation workbench with confidence visualization, alternative-rendering surfacing, and reader-participation in disambiguation — rather than asking users to trust an opaque AI translation. Building a translation app to support a dream app was not in the original plan. It is now.

How it's built

Expo and React Native through expo-router give a single TypeScript codebase that ships to web, iOS, and Android — the same screens, the same flows, the same data model on every surface. NativeWind for styling, React Native Reanimated for the longitudinal series visualizations. Backend is a Node service in TypeScript, with shared types between client and server so the analytical contract can't drift.

Persistence is PostgreSQL with Prisma as the ORM. Dream content is encrypted at the application layer before it ever reaches the database; Redis handles session state and caching. The analytical pipeline composes Claude calls behind a structured set of tradition-specific prompts — every operation narrowly scoped, every output schema-validated — and response caching keeps cost discipline tight enough that the free tier survives sustained use.

Expo React Native TypeScript expo-router NativeWind Reanimated Node PostgreSQL Prisma Redis Claude API App-Layer Encryption

From single dream to evolving instrument

Web alpha is live. Native iOS and Android builds are in development through Expo, with the wake-time capture experience as the priority surface. The engine's longitudinal layer — dream series analysis, recurring-figure tracking, motif-evolution detection — sharpens with every dream a user logs, which means the product gets better the longer it's used.

The translation workbench advances in parallel. The 19th-century French anthology is the working slice. German precursors are next, then Arabic and Egyptian dream-tradition materials where licensing allows. As each canon comes online, the interpretation engine gains a new layer of citable depth.

Most dream apps treat the unconscious like a content library. DreamSeek treats it like a correspondent. The instrument is live now. The conversation can begin.

Back to Portfolio