Mosaic
简体中文 | English
"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
- Daily mood recording to track emotional changes
- Visualized mood history to discover emotional patterns
- 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
- For data security, you first need to deploy your own Mosaic backend service on your own server to manage your private data
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
- 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.