-
-
main dreambase dashboard. here you can see main stats
-
indexed knowledge graph
-
node Shadow Man in focus. from the connections you can gather what emotions, symbols, themes appear in relation to your shadow
-
an agent with 19 tools to query DB and your knowledge graph
-
analytics page pt1. shows different graphs for data extracted from dreams
-
analytics page pt2.
-
dream library, you can click any to open dream detail view
-
view details of each dream
-
modal page for symbol library. shows all the dream appearances and associations across them
-
modal page for character library. shows all the dream appearances and associations across them
-
adding new dream, you can either type it out or use voice input
-
after inputing the dream, AI extracts symbols, characters, etc. you can edit, add your personal associations and interpretations
-
you can also view AI's interpretation
Inspiration
Two years ago I have found myself in a strange situation. Out of nowhere I started having long series of vivid dreams about Apollo (the greek god, yes!) and recurring thoughts about him that I felt I couldn't stop. I know this is a weird beggining of the project description, but bear with me. I knew of the term 'archetype' because I have read about it somewhere and I knew for sure that greek gods didn't concern themselves with visiting dreams of random girls. So I figured Apollo in my dreams was an archetype. I began my investigation and this was the moment I stumbled and fell into a deep rabbit hole of Jungian psychology.
According to Jung, dreams are the primary language through which your unconscious mind communicates to you. Dreams use symbolic language rather than literal and are deeply personal. For one person, water might represent fear and for another, rebirth. It depends on your culture, your life experience, how you grew up. This is why universal dream dictionaries almost never work. Interpreting your personal symbols and building a relationship with your unconscious is what Jung called individuation. This is essentially, a hero's journey into the depths of your own inner world.
After discovering this I started recording and analysing my dreams and I can honeslty say this have transformed me. I had many funny, genuinely scary, synchronistic situations and dreams, which opened my eyes about many things I didn't know about myself. I also discovered why Apollo kept appearing in my dreams. At that time I was 19, though not a child anymore, I was still largely living an unconscious life. Apollo is a god of sun and a symbol of consciousnes. His appearance in my dreams marked the beginning of my adult mind waking up.
However, the process of writing, finding all the symbols and my associations, then synthesizing everything into interpretation is slow. And the real challenge is that many dreams are connected. Characters reappear. Symbols echo across months. There are deeper patterns, but seeing them would mean going back through every dream you've ever recorded and holding all of it in your head at once. That's not something I can do. I had no idea how to solve this, so I kept writing my dreams in Notes and hoped for the best.
Then recently at work I was implementing RAG system and I have accidentally discovered GraphRAG. I instantly thought that this would be perfect for dreams. The knowledge graph can represent the map of your unconscious and the patterns would be seen at hand. Symbols, characters, emotions, archetypes, all connected by meaning, with patterns visible at a glance. And the graph could be queried for insights across every dream you've ever recorded. Then I have stumbled across this hackathon and I realized that this is my chance to build it, so I spent last two weeks doing that.
What it does
Dream Knowledge is a personal dream analysis platform that combines Jungian psychology with AI. It does three things: Record and Extract: You log a dream by typing or speaking it. Gemini analyzes the narrative using structured output with extended thinking and extracts symbols, characters, emotions, themes, and a full psychological interpretation all grounded in Jungian theory. Keep in mind that here, AI extraction is only to save time. However the user could (and should!) edit what AI extracted. Add personal meaning and associations, what emotions they did feel, etc. There is also an option to add everything manually.
Build a Knowledge Graph: Every extracted entity is indexed into a personal knowledge graph powered by GraphRAG and Gemini embeddings. Over time, this graph becomes a living map of your unconscious, showing how symbols connect, which archetypes recur, and where emotional patterns emerge across months of dreams.
Analyze with an Autonomous Agent: A 19-tool analytical agent can query your entire dream history. It searches the knowledge graph, retrieves symbol histories, traces character archetypes across dreams, analyzes emotional trajectories, and cross-references patterns, autonomously deciding which tools to call and how to combine the results. Every claim it makes is grounded in specific dreams with excerpts, dates, and source links.
The platform also includes analytics dashboards for emotion trends, symbol frequencies, and archetype distributions, as well as personal association tracking so you can attach your own meanings to symbols and characters over time.
How we built it
Backend: FastAPI with PostgreSQL. I designed the database schema, wrote CRUD operations, implemented dream extraction services using Gemini's structured output with extended thinking, and built the agent with tools. Knowledge Graphs: I chose fast-graphrag over Microsoft's GraphRAG for a practical reason. With Microsoft's implementation, adding a new dream would require reindexing the entire graph. Fast-graphrag produces slightly lower quality graphs and queries, but it supports incremental indexing, which means each new dream gets added to the existing graph without rebuilding everything. For a journaling app where users add entries daily, this was a non negotiable requirement. Frontend: React. I'm primarily a backend engineer, so the frontend was largely vibe-coded. But it gets the job done with a clean interface for dream entry, knowledge graph visualization, analytics dashboards, and the chat agent. Gemini Integration: Five Gemini 3 capabilities working as one system:
- Extended Thinking: deep reasoning during dream analysis
- Structured Output: precise extraction of symbols, characters, emotions, themes
- Function Calling: agent with 19 tools that plans and executes its own analysis
- Embeddings: per-user GraphRAG knowledge graphs with semantic connections
- Multimodal Input: voice-to-dream recording (because honestly typing out long dreams is sometimes hard)
Challenges we ran into
Fast graph rag was the biggest challenge for me. Early versions produced graphs that were either too sparse or too noisy Tuning the extraction prompts and the graph construction parameters to produce meaningful, queryable structures took significant iteration. At the same time there are some library bugs, when the graph edge id gets broken randomly and the whole indexing crashes afterwards. Im still solving this issue right now. Overall this was my first time working with graphs and first time with a library not that popular or tested. Not being able to read documentation for it was certainly a pain.
Accomplishments that we're proud of
Building the entire application in two weeks as a solo developer (with a fulltime job!), from database design to a working knowledge graph to a 19 tool agent. I honestly thought I wouldn't make it but the app is now deployed (you can see the demo account for yourself in the url i posted here) But also Im proud that the app is actually useful! This is something I would buy and use myself if someone else made it. And I certainly plan to enhance and use it myself now.
What we learned
GraphRAG is genuinely powerful for domains where entities have rich, interconnected relationships and dreams are a perfect use case. The knowledge graph representation maps naturally onto Jungian psychology's model of the psyche, where symbols, archetypes, and emotions are all in relationship with each other. Also, Jungian psychology and AI are a surprisingly natural fit. Jung spent his career trying to map the structure of the unconscious mind. A knowledge graph is, in some sense, exactly the tool he needed but didn't have.
What's next for Dream Knowledge
There are honeslty many things I didnt have time to do. In the nearest future I will be implementing these things so that the user experience and the pattern discovery is enhanced. These include: Imrpove the graph: I want to reduce the entity types in the future versions and be ablle to open dreams/symbols/character pages upon clicking on nodes. This would enhance the user experience and graph readability. Dream pattern alerts: proactive notifications when the system detects a significant recurring pattern or a new clusters forming in the graph. Individuation tracking: a structured view of psychological growth over time, mapping how your relationship with key archetypes (Shadow, Anima/Animus, Self) evolves across months of dreams. Analytics: add new tables and more statistical analysis for the analytics page
Built With
- fast-graphrag
- fastapi
- gemini-3
- postgresql
- railway
- react
- tailwind-css
- typescript
- vite
Log in or sign up for Devpost to join the conversation.