Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
crayonlu/Mosaic: A digital second brain that combines note-taking with deep emotional visualization.

crayonlu/Mosaic: A digital second brain that combines note-taking with deep emotional visualization.

13 hours ago

Mosaic Icon

Mosaic

简体中文 | English

wakatime

"Reintegrate the scattered fragments of oneself"

A digital second brain that combines note-taking with emotional visualization, helping you record thoughts, track moods, and integrate the scattered fragments of daily life.


Origin

I realized that even though I have memorable moments every day, they gradually fade away over time. So I wanted to develop an app to organize my scattered life fragments, allowing me to recall the scenes and moods of those moments later. That's how Mosaic was born.


Core Features

Smart Note System

  • Rich text editor supporting Markdown and HTML for freer writing
  • AI-powered automatic tag extraction for smarter categorization
  • AI summary generation for quick review of key points in long texts
Mood Diary
  • Daily mood recording to track emotional changes
  • Visualized mood history to discover emotional patterns
Cross-Platform Support
  • Mobile: iOS, Android
  • Cloud data sync, access anywhere
iOS support is tested but pending Apple Developer Program enrollment for distribution. Will do.

Demo

https://github.com/user-attachments/assets/982fb136-55f1-4412-96c6-8d2d3e9937e2


Directory Structure

Mosaic/
├── mobile/      # Expo mobile application
├── server-go/   # Go backend service (production)
├── server/      # Rust backend (reference implementation) + shared admin UI
├── packages/    # Shared packages
│   ├── api/     # API type definitions
│   └── utils/   # Utility functions
└── docs/        # Documentation

Technical Architecture

  • Mobile: Expo React Native
  • Server: Go (chi + pgx) + PostgreSQL + pgvector — the production backend in server-go/
  • Reference: Rust + Actix Web + SQLx in server/. It reads the same schema and serves the same contract, and its tree also holds the shared admin UI that the Go image builds
  • AI Integration: Supports multiple AI service providers

Getting Started

  1. For data security, you first need to deploy your own Mosaic backend service on your own server to manage your private data
1. mkdir mosaic-server 2. cd mosaic-server 3. Create a .env file in this folder, refer to .env.example for content, and modify the configuration items as needed (remember to change the username and password) 4. Also create a docker-compose.yml file in this folder, simply copy docker-compose.yml 5. Go back to the mosaic-server folder and run docker-compose up -d to start 6. Note: If you encounter permission issues with file uploads, run chown -R 1000:1000 ~/mosaic-server/storage ~/mosaic-server/logs to fix directory permissions 7. Afterwards, you can configure reverse proxy to your own domain
  1. Download the client from releases and connect to your own server

API Documentation

The production backend is in server-go/. See the API reference and OpenAPI 3.1 document. The updated Go binary serves the public specification at /openapi.json (GET and HEAD).

License

This project is open-sourced under the AGPL-3.0 license.

Chat with me