Skip to content

Repository files navigation

Jouspace — Your thoughts, connected over time.

Write. Remember. Connect. Reflect.



An open-source, AI-native journal for writing, remembering, connecting, and reflecting across your personal history.

Jouspace brings journaling, contextual memory, mood, and AI-assisted reflection into one continuous space — so what you write today can still be useful months from now.


Stars Forks Issues License

TypeScript React Expo Supabase Pinecone PRs Welcome



divider

📖 Table of Contents

Product

Engineering

Community



🌱 Why Jouspace Exists

The archive problem

Most journals are excellent at storing thoughts.

The problem is that stored thoughts eventually become an archive.

Something you wrote three months ago may perfectly explain what you're thinking today — but conventional journaling software rarely understands that relationship.

The amnesia problem

AI chat has almost the opposite problem.

It can be genuinely useful in the moment, yet without meaningful continuity every conversation risks becoming another isolated interaction.

Yesterday's insight evaporates. The context resets. You start over.

   ┌───────────────────────────────┐          ┌───────────────────────────────┐
   │        TRADITIONAL JOURNAL    │          │        TRADITIONAL AI CHAT    │
   │                               │          │                               │
   │   Jan ▓                       │          │   session ▢ ▢ ▢ ▢ ▢ ▢ ▢       │
   │   Feb ▓                       │          │            ↑                  │
   │   Mar ▓   ← never revisited   │          │            └ no continuity    │
   │   Apr ▓                       │          │                               │
   │   May ▓                       │          │   "Remind me what we…"        │
   │        ↓                      │          │   → context not found         │
   │     the archive               │          │                               │
   └───────────────────────────────┘          └───────────────────────────────┘

                        ╭──────────────────────────────╮
                        │           JOUSPACE           │
                        │                              │
                        │  Jan ▓──┐                    │
                        │  Feb ▓──┼──▶ ⟨ context ⟩ ──┐ │
                        │  Mar ▓──┤                  │ │
                        │  Apr ▓──┘                  ▼ │
                        │  May ▓ ◀────── reflection ──┘ │
                        │                              │
                        │   history that stays useful  │
                        ╰──────────────────────────────╯

Jouspace explores what happens when those two ideas are combined.

It treats your writing, conversations, mood context, and reflections as parts of a growing personal history. Instead of making AI the center of the experience, Jouspace makes your context the center — and the AI exists as a reflective layer over it.



🧭 The Product Thesis

thesis

Jouspace is built around a single conviction:

Personal software becomes more useful when it understands continuity.

📄

A journal entry

should not become irrelevant the moment it leaves the top of a timeline.

💬

A conversation

should not automatically be disconnected from everything that came before it.

🌤

A mood entry

should provide context — not merely become another point on a chart.

Jouspace is designed to make accumulated history useful again.



🔁 The Core Loop

flowchart LR
    A(["✍️ &nbsp;WRITE<br/><sub>capture freely</sub>"]) --> B(["🧠 &nbsp;REMEMBER<br/><sub>persist context</sub>"])
    B --> C(["🔗 &nbsp;CONNECT<br/><sub>surface relations</sub>"])
    C --> D(["🪞 &nbsp;REFLECT<br/><sub>see yourself</sub>"])
    D -. "new perspective" .-> A

    classDef node fill:#0B1020,stroke:#8B5CF6,stroke-width:2px,color:#E9E9FF,rx:14,ry:14;
    class A,B,C,D node;
Loading
✍️ Write 🧠 Remember 🔗 Connect 🪞 Reflect

Capture thoughts freely.

Jouspace is designed around freeform writing first. AI prompts should support the writing process — never turn journaling into a questionnaire.

Preserve useful context across time.

Entries, conversations, and signals contribute to a persistent personal context instead of existing as disconnected records.

Find relationships across your history.

Past ideas, recurring themes, and emotional context become discoverable again exactly when they matter.

Use AI to examine your own context.

The goal is not to outsource thinking — it's to help you look back with more context than memory alone allows.



✨ Core Experiences

Surface What it is Role in the system
📓 Journal A persistent writing space built around freeform thought The primary source of truth
🤝 AI Companion Conversation connected to your broader context User-initiated, context-aware
🧠 Memory Persistent personal memory beyond chat history Retrieval, not accumulation
🔗 Connections Emergent relationships across your history Discovery layer
🌤 Mood Context A contextual signal, not the product itself Enrichment
🪞 Reflection Revisiting history with interpretation Sits above raw storage

📓  Journal — see the surface
┌──────────────────────────────────────────────────────────────────────────┐
│  Jouspace ▸ Journal                                     ⌘K   ◐   ⚙︎      │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│   Tuesday, 14 March                                    🌤 steady · 6/10  │
│   ────────────────────────────────────────────────────────────────────   │
│                                                                          │
│   I keep circling the same decision about the project scope. It          │
│   feels less like indecision and more like I haven't named what          │
│   I'm actually afraid of yet.▊                                           │
│                                                                          │
│                                                                          │
│   ╭─ 🔗 Related from your history ─────────────────────────────────╮     │
│   │  • 18 Nov — "scope creep and the fear of finishing"      82%  │     │
│   │  • 03 Jan — "I mistake preparation for progress"         74%  │     │
│   ╰────────────────────────────────────────────────────────────────╯     │
│                                                                          │
│   [ Save ]   [ 🪞 Reflect on this ]   [ 🤝 Ask companion ]               │
└──────────────────────────────────────────────────────────────────────────┘

Journal entries are not disposable documents. They become part of the historical context that makes future reflection more useful.

🤝  AI Companion — see the surface
┌──────────────────────────────────────────────────────────────────────────┐
│  Jouspace ▸ Companion                              context: 4 sources ⓘ  │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│   you ▸  why do I keep stalling on this?                                 │
│                                                                          │
│   ◈ jouspace                                                             │
│     You've written about this shape of hesitation three times            │
│     since November. Each time it appeared right before a                 │
│     commitment became public rather than private.                        │
│                                                                          │
│     ╭ drawn from ─────────────────────────────────────────────╮          │
│     │ 📓 18 Nov entry   📓 03 Jan entry   🌤 Mar mood window   │          │
│     ╰──────────────────────────────────────────────────────────╯         │
│                                                                          │
│     Would it help to look at what changed the one time you               │
│     didn't stall?                                                        │
│                                                                          │
│   ▸ type a message…                                          [ send ]    │
└──────────────────────────────────────────────────────────────────────────┘

The companion is primarily user-initiated and cites the context it used.

🧠  Memory & Connections — see the surface
   RELEVANCE MAP ─ query: "fear of finishing"

   18 Nov · scope creep            ████████████████████░░░░  0.82   📓
   03 Jan · preparation ≠ progress ██████████████████░░░░░░  0.74   📓
   27 Feb · companion thread       ████████████░░░░░░░░░░░░  0.51   💬
   09 Mar · mood dip window        ████████░░░░░░░░░░░░░░░░  0.34   🌤
   ─────────────────────────────────────────────────────────────────
   retrieved: 3 · discarded: 1 (below threshold)

Retrieve what matters, when it matters. Not every stored event deserves permanent attention.



🔍 What Makes Jouspace Different?

Jouspace is not simply a journal with an AI chat box attached to it. Its architecture is being developed around longitudinal context.

🗄 Conventional approach ◈ Jouspace approach
Entries Become an archive Contribute to persistent context
AI Reacts to the current prompt Reasons over relevant historical context
Mood Is treated as the product Acts as supporting context
Chat Is the primary experience Exists across the broader product
Memory Means chat history Means useful personal context
Engagement AI constantly tries to engage User agency remains central
Structure Journaling built around prompts Freeform writing comes first

The objective is not more AI. The objective is better continuity.



🪞 Jouspace Intelligence Model

Mirror first · Companion second · Scribe third

flowchart TB
    subgraph L1[" "]
        M["🪞 &nbsp;<b>MIRROR</b> — first<br/><sub>surface patterns, connections,<br/>contradictions, forgotten context</sub>"]
    end
    subgraph L2[" "]
        C["🤝 &nbsp;<b>COMPANION</b> — second<br/><sub>conversation that emerges from context,<br/>not from artificial personality</sub>"]
    end
    subgraph L3[" "]
        S["✒️ &nbsp;<b>SCRIBE</b> — third<br/><sub>organization, recall, summarization —<br/>without replacing the user's voice</sub>"]
    end

    M --> C --> S

    classDef a fill:#1E1B4B,stroke:#8B5CF6,stroke-width:2px,color:#EDE9FE,rx:12,ry:12;
    classDef b fill:#0B1020,stroke:#4F46E5,stroke-width:2px,color:#C7D2FE,rx:12,ry:12;
    classDef c fill:#0B1020,stroke:#22D3EE,stroke-width:2px,color:#A5F3FC,rx:12,ry:12;
    class M a
    class C b
    class S c
    style L1 fill:none,stroke:none
    style L2 fill:none,stroke:none
    style L3 fill:none,stroke:none
Loading


🔬 Anatomy of a Reflection

What actually happens between "help me understand this" and a grounded answer:

sequenceDiagram
    autonumber
    participant U as 🧑 User
    participant UI as 🖥 Experience Layer
    participant CA as 🧩 Context Assembly
    participant RT as 🔎 Retrieval
    participant VDB as 🧠 Vector Memory
    participant DB as 🗃 Application Data
    participant AI as ◈ AI Runtime

    U->>UI: Writes an entry / asks a question
    UI->>CA: Submit intent + current surface state
    CA->>DB: Fetch structured context (recent, mood, threads)
    CA->>RT: Request semantically relevant history
    RT->>VDB: Similarity search (scoped to user)
    VDB-->>RT: Candidate memories + scores
    RT-->>CA: Filtered, thresholded, ranked set
    CA->>AI: Minimal, relevant, attributable context window
    AI-->>UI: Response + source attribution
    UI-->>U: Reflection with visible provenance
    Note over CA,RT: Selective retrieval — not the entire history
Loading


🏛 System Architecture

Jouspace deliberately separates the product experience from the intelligence and persistence layers.

flowchart TB

    subgraph Experience["🖥 &nbsp;EXPERIENCE LAYER"]
        direction LR
        JOURNAL["📓 Journal"]
        CHAT["🤝 AI Companion"]
        MOOD["🌤 Mood Context"]
        REFLECTION["🪞 Reflection"]
    end

    subgraph Intelligence["◈ &nbsp;INTELLIGENCE LAYER"]
        direction LR
        RUNTIME["AI Runtime"]
        CONTEXT["Context Assembly"]
        RETRIEVAL["Context Retrieval"]
        MEMORY["Personal Memory"]
    end

    subgraph Data["🗃 &nbsp;DATA LAYER"]
        direction LR
        SUPABASE["Supabase<br/><sub>app data · auth</sub>"]
        PINECONE["Pinecone<br/><sub>vectors · semantics</sub>"]
        STORAGE["Persistent<br/>Application Data"]
    end

    JOURNAL --> CONTEXT
    CHAT --> RUNTIME
    MOOD --> CONTEXT
    REFLECTION --> CONTEXT

    RUNTIME --> CONTEXT
    CONTEXT --> RETRIEVAL
    RETRIEVAL --> MEMORY

    MEMORY --> PINECONE
    CONTEXT --> SUPABASE
    JOURNAL --> STORAGE

    RETRIEVAL --> RUNTIME
    RUNTIME --> CHAT
    RUNTIME --> REFLECTION

    classDef exp fill:#0B1020,stroke:#22D3EE,stroke-width:2px,color:#A5F3FC,rx:10,ry:10;
    classDef intel fill:#0B1020,stroke:#8B5CF6,stroke-width:2px,color:#DDD6FE,rx:10,ry:10;
    classDef data fill:#0B1020,stroke:#10B981,stroke-width:2px,color:#A7F3D0,rx:10,ry:10;

    class JOURNAL,CHAT,MOOD,REFLECTION exp
    class RUNTIME,CONTEXT,RETRIEVAL,MEMORY intel
    class SUPABASE,PINECONE,STORAGE data

    style Experience fill:#0B102055,stroke:#22D3EE44,stroke-width:1px
    style Intelligence fill:#0B102055,stroke:#8B5CF644,stroke-width:1px
    style Data fill:#0B102055,stroke:#10B98144,stroke-width:1px
Loading

The important distinction: memory, retrieval, and generation are separate concerns. This makes it possible to retrieve relevant context selectively, instead of treating every previous interaction as permanent prompt baggage.



🧠 Memory Architecture

A useful personal AI system needs more than a long chat transcript. Conceptually, Jouspace treats memory as a pipeline.

flowchart LR
    A["🧑 User Activity<br/><sub>entries · chats · mood</sub>"] --> B["⚙️ Context Processing<br/><sub>normalize · chunk · embed</sub>"]
    B --> C["🗃 Persistent Data<br/><sub>structured, queryable</sub>"]
    B --> D["🧠 Retrievable Memory<br/><sub>semantic vectors</sub>"]
    C --> E["🧩 Context Assembly"]
    D --> F["🔎 Semantic Retrieval"]
    E --> G["◈ AI Runtime"]
    F --> G
    G --> H["🪞 Contextual Response<br/>/ Reflection"]

    classDef n fill:#0B1020,stroke:#8B5CF6,stroke-width:1.6px,color:#E9E9FF,rx:10,ry:10;
    class A,B,C,D,E,F,G,H n;
Loading

How context budget is allocated

pie showData
    title Illustrative context window composition
    "Semantically retrieved history" : 38
    "Recent journal entries" : 24
    "Active conversation" : 18
    "Mood / temporal signals" : 12
    "System framing" : 8
Loading

Retrieve what matters, when it matters.

Not every stored event deserves permanent attention.



🎨 Design Language

The Jouspace surface is intentionally quiet: ink-dark canvas, low-noise typography, one accent of intelligence.

Ink Indigo Violet Cyan Mint Paper

Principle In practice
Quiet canvas Nothing competes with the sentence you're writing
Provenance visible Whenever AI uses your history, the source is shown
Motion with meaning Transitions signal continuity, never decoration
Type as texture A single serif/mono pairing carries the whole surface
Accessible by default Contrast, focus rings, and reduced-motion are requirements


🛠 Technology

Jouspace is being built as a full-stack AI product, not a thin interface around a model API.

tech stack
🖥 Application 🧠 Data & Intelligence 🧪 Engineering
  • React 19 — primary web UI
  • React Native — cross-platform architecture
  • Expo — native tooling
  • TypeScript — type-safe development
  • Vite — dev server & production builds
  • NativeWind / Tailwind — UI styling
  • Zustand — client state
  • TanStack Query — server-state
  • Supabase — application data & auth
  • Pinecone — vector retrieval & semantic memory
  • LLM runtime — contextual generation & reflection
  • RAG — selective retrieval of relevant context
  • Vitest — unit & integration testing
  • Zod — runtime validation
  • GitHub — source control & collaboration
  • Incremental, verify-before-commit workflow


🗂 Repository Structure

The project is evolving, but the repository broadly separates product surfaces, shared logic, backend infrastructure, AI services, and supporting scripts.

Jouspace/
│
├── 📁 src/                 # Web application and shared product code
├── 📁 app/                 # Application routes / experiences
├── 📁 components/          # Reusable interface components
├── 📁 backend/             # Backend and AI infrastructure
├── 📁 scripts/             # Development and infrastructure utilities
├── 📁 docs/                # Technical and product documentation
├── 📁 public/              # Public assets
│
├── 📄 package.json
└── 📄 README.md

ℹ️ The exact structure may evolve as the Jouspace migration and architecture continue to mature.



🚀 Getting Started

Step 1 Step 2 Step 3 Step 4 Step 5

Prerequisites

Node npm Git

node --version   # v20+
npm --version
git --version

1 · Clone the repository

git clone https://github.com/datascyther/Jouspace.git
cd Jouspace

2 · Install dependencies

npm install

3 · Configure the environment

Jouspace relies on external services for parts of its data and intelligence infrastructure. Create your local environment configuration from the templates and documentation in the repository.

⚠️ Never commit secrets or API keys to source control.

4 · Run the web application

npm run dev        # start the Vite development server
npm run build      # create a production build
npm run preview    # preview the production build
📱  Running the native app (Expo)
npm run dev:expo   # start the Expo development environment
npm run android    # run on Android
npm run ios        # run on iOS
npm run web:expo   # Expo web target
🧠  Initializing memory & retrieval infrastructure
npm run rag:ingest          # run the RAG ingestion workflow
npm run pinecone:describe   # inspect Pinecone configuration
npm run pinecone:stats      # inspect index statistics


⚡ Available Scripts

Command Purpose
npm run dev Start the Vite development server
npm run build Create the production web build
npm run preview Preview the production build
npm run test Run the test suite
npm run test:integration Run backend integration tests
npm run dev:expo Start the Expo development environment
npm run android Run the Android application
npm run ios Run the iOS application
npm run web:expo Start the Expo web target
npm run rag:ingest Run the RAG ingestion workflow
npm run pinecone:describe Inspect Pinecone configuration
npm run pinecone:stats Inspect Pinecone index statistics


🧱 Product Principles

Seven constraints that shape both product and engineering decisions.

01 · Journal first Writing should remain useful without requiring an AI interaction.

02 · Context over conversation volume A system that remembers meaningfully doesn't need to talk constantly.

03 · User agency The AI should not manufacture engagement merely because it can.

04 · Memory should be selective More stored information does not automatically produce better intelligence. Relevant retrieval matters more than maximum retrieval.

05 · AI should support reflection Jouspace should help you think with your own history — not attempt to think for you.

06 · Mood is context Mood can enrich understanding without turning Jouspace into a mood-tracking product.

07 · Privacy is architectural Personal context is unusually sensitive data. Privacy, ownership, retrieval boundaries, and secure handling are engineering concerns, not marketing copy.



🚫 What Jouspace Is Not

Not a therapist Not medical Not diagnostic Not crisis care Not healthcare Not autonomous Not dependency

Jouspace is an experimental open-source AI product focused on journaling, personal context, memory, and reflection. If you are in crisis, please contact local emergency services or a qualified professional.



📊 Project Status

Jouspace is under active development. The project is evolving from an earlier product direction into the Jouspace architecture and identity.

CONVERSATIONAL AI          ████████████████████░░░░   built · refining
CONTEXTUAL RETRIEVAL       ██████████████████░░░░░░   built · refining
PERSONAL MEMORY            ██████████████░░░░░░░░░░   in progress
JOURNALING SURFACE         ████████████████░░░░░░░░   in progress
MOOD HISTORY               ██████████████████░░░░░░   foundation done
AUTHENTICATION             ██████████████████████░░   stable
APP INFRASTRUCTURE         ████████████████████░░░░   stable
CROSS-PLATFORM UI          ████████████░░░░░░░░░░░░   maturing
AI ORCHESTRATION           ████████████████░░░░░░░░   in progress
IDENTITY MIGRATION         ██████████░░░░░░░░░░░░░░   underway

Current work focuses on integrating existing systems around the new product thesis — not rebuilding the application for the sake of a rebrand.

⚠️ APIs, interfaces, architecture, and product behavior may change while the project matures.



🗺 Roadmap

gantt
    title Jouspace — outcome-oriented roadmap
    dateFormat  YYYY-MM-DD
    axisFormat  %b

    section Foundation
    Product thesis & journal-first direction   :done,    f1, 2024-11-01, 60d
    Conversational AI foundation               :done,    f2, 2024-12-01, 75d
    Contextual retrieval infrastructure        :done,    f3, 2025-01-01, 70d
    Persistent data infrastructure             :done,    f4, 2025-01-15, 60d
    Mood history foundation                    :done,    f5, 2025-02-01, 45d

    section Jouspace Identity
    Identity migration                         :active,  i1, 2025-03-01, 70d
    Journal experience refinement              :active,  i2, 2025-03-15, 80d

    section Continuity
    Journal history → contextual memory        :         c1, 2025-05-01, 70d
    Longitudinal retrieval quality             :         c2, 2025-06-01, 70d
    Connection discovery                       :         c3, 2025-07-01, 80d
    Expanded reflection experiences            :         c4, 2025-08-01, 70d

    section Trust & Scale
    Privacy and data controls                  :         t1, 2025-06-15, 90d
    Automated evaluation & testing             :         t2, 2025-07-15, 90d
    Mature cross-platform experience           :         t3, 2025-09-01, 90d
Loading
✅  Roadmap as a checklist
  • Establish Jouspace product thesis
  • Define journal-first product direction
  • Build conversational AI foundation
  • Build contextual retrieval infrastructure
  • Establish persistent data infrastructure
  • Implement mood history foundation
  • Complete Jouspace identity migration
  • Refine journal experience
  • Connect journal history to contextual memory
  • Improve longitudinal retrieval
  • Develop connection discovery
  • Expand reflection experiences
  • Strengthen privacy and data controls
  • Expand automated evaluation and testing
  • Mature cross-platform experience

The roadmap is intentionally outcome-oriented. Features may change as the underlying product model is tested.



🧭 Engineering Philosophy

flowchart LR
    O["🎯 Objective"] --> I["⌨️ Implement"] --> V["🔍 Verify"] --> T["🧪 Test"] --> C["📦 Commit"] --> N["➡️ Continue"]
    N -.-> O

    classDef s fill:#0B1020,stroke:#22D3EE,stroke-width:2px,color:#A5F3FC,rx:12,ry:12;
    class O,I,V,T,C,N s;
Loading

Large architectural rewrites are avoided when existing engineering can be evolved safely.

The repository is intended to document not only the final product, but also the engineering decisions required to build a context-aware AI application responsibly.



🤝 Contributing

Contributions, technical discussion, bug reports, and thoughtful product feedback are genuinely welcome.

Development workflow
# 1 · Fork, then branch
git checkout -b feature/your-feature

# 2 · Make your changes, then verify
npm run test
npm run build

# 3 · Commit with a clear, conventional message
git commit -m "feat: describe your change"

# 4 · Push and open a Pull Request
git push origin feature/your-feature

Your PR description should explain:

What changed
Why it changed
How it was tested
Impact any architectural implications

Contribution principles

correctness privacy maintainability accessibility type%20safety testability clear%20behavior minimal%20complexity

For substantial architectural changes, please open an issue for discussion before implementation.



🔐 Security

Do not report security vulnerabilities through public GitHub issues.

  • Sensitive credentials, API keys, private user information, environment files, and production secrets must never be committed.
  • When working with Jouspace's memory and context systems, assume that stored personal information is sensitive and design accordingly.
  • Retrieval must always be scoped to the owning user. Cross-user leakage is treated as a critical defect.


⚖️ Responsible AI

Jouspace deals with personal writing and contextual information, which creates responsibilities beyond ordinary application development.

  • AI-generated output should not be presented as objective truth
  • Historical context can be incomplete or misinterpreted
  • Retrieved memories should remain attributable to user context where practical
  • AI should avoid pretending to possess human memory or emotions
  • User control takes priority over artificial engagement
  • Sensitive personal context should be retrieved only when relevant
  • The product should remain transparent about what AI can and cannot infer
  • Reflection is offered, never imposed

The objective is not to create an artificial person.

It is to build better software for working with personal context.



⭐ Star Growth

If Jouspace is useful to you, starring the repository helps other developers discover the project — and gives us a pleasantly primitive but highly effective signal that someone on the internet cared.

Jouspace star history over time



📈  More star & growth visualizations

Cumulative stargazers (Starchart)

Jouspace cumulative star chart



Repository pulse — commits, issues, PRs & contributors

Repobeats analytics for Jouspace — commits, issues, pull requests and contributors



Contribution activity graph

Jouspace commit activity graph

Star Jouspace


📡 Repository Activity

Stars Forks Issues Pull Requests

Last commit Commit activity Code size Top language Contributors


👥 Contributors

Jouspace contributors


❓ FAQ

Is my journal data sent to an AI model on every request?
No. Context is assembled selectively. Retrieval is thresholded and ranked, and only relevant, scoped context reaches the model. Maximum retrieval is explicitly an anti-goal.
Can I use Jouspace purely as a journal, with no AI?
Yes — that is principle #1. Writing must remain useful without any AI interaction. AI is a layer over your context, never a gate in front of it.
How is this different from an AI chatbot with long-term memory?
Chat is one surface, not the product. Jouspace's center of gravity is your writing and the accumulated context around it — journal, mood, reflections, and connections — with chat as one of several ways to interrogate that history.
Is mood tracking required?
No. Mood is a contextual signal that enriches retrieval and reflection. Jouspace is deliberately not a mood-tracking product.
Is Jouspace production-ready?
Not yet. It is under active development and migrating from an earlier product direction. Expect interfaces and behavior to change.


📜 License

This project is licensed under the terms provided in the repository's LICENSE file.

Please review the license before redistributing, modifying, or incorporating Jouspace into another project.



divider

Jouspace

✍️ Write → 🧠 Remember → 🔗 Connect → 🪞 Reflect

Your thoughts should become more useful with time — not disappear into an archive.


Repository Issues Pull Requests Discussions


Built in public as an open-source exploration of AI, memory, personal context, and reflective software.


footer

Releases

Packages

Used by

Contributors

Languages