[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73628":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":15,"starSnapshotCount":15,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},73628,"colanode","colanode\u002Fcolanode","Open-source and local-first Slack and Notion alternative that puts you in control of your data","https:\u002F\u002Fcolanode.com",null,"TypeScript",4904,300,28,37,0,7,22,91,21,29.44,"Apache License 2.0",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"chat","chat-application","crdt","editor","electron","knowledge-base","local-first","notion","notion-alternative","realtime-collaboration","self-hosted","slack","sqlite","team-collaboration","wiki","yjs","2026-06-12 02:03:16","\u003Cdiv align=\"center\">\n\u003Cimg alt=\"Colanode cover\" src=\"assets\u002Fimages\u002Fcolanode-github-cover.jpg\">\n\u003Cp>\u003C\u002Fp>\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0\" style=\"background:none\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicene-Apache_2.0-blue\" style=\"height: 22px;\" \u002F>\n\u003C\u002Fa>\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fdiscord.gg\u002FZsnDwW3289\" style=\"background:none\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Colanode-%235865F2\" style=\"height: 22px;\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fx.com\u002Fcolanode\" target=\"_blank\">\n  \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fcolanode.svg?style=social&label=Follow\" style=\"height: 22px;\" \u002F>\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n# Colanode\n\n### Open-source & local-first collaboration workspace that you can self-host\n\nColanode is an all-in-one platform for easy collaboration, built to prioritize your data privacy and control. Designed with a **local-first** approach, it helps teams communicate, organize, and manage projects—whether online or offline. With Colanode, you get the flexibility of modern collaboration tools, plus the peace of mind that comes from owning your data.\n\n### What can you do with Colanode?\n\n- **Real-Time Chat:** Stay connected with instant messaging for teams and individuals.\n- **Rich Text Pages:** Create documents, wikis, and notes using an intuitive editor, similar to Notion.\n- **Customizable Databases:** Organize information with structured data, custom fields and dynamic views (table, kanban, calendar).\n- **File Management:** Store, share, and manage files effortlessly within secure workspaces.\n\nBuilt for both individuals and teams, Colanode adapts to your needs, whether you're running a small project, managing a team, or collaborating across an entire organization. With its self-hosted model, you retain full control over your data while enjoying a polished, feature-rich experience.\n\n![Colanode preview](assets\u002Fimages\u002Fcolanode-desktop-preview.gif)\n\n## How it works\n\nColanode includes a client app (web or desktop) and a self-hosted server. You can connect to multiple servers with a single app, each containing one or more **workspaces** for different teams or projects. After logging in, you pick a workspace to start collaborating—sending messages, editing pages, or updating database records.\n\n### Local-first workflow\n\nAll changes you make are saved to a local SQLite database first and then synced to the server. A background process handles this synchronization so you can keep working even if your computer or the server goes offline. Data reads also happen locally, ensuring immediate access to any content you have permissions to view.\n\n### Concurrent edits\n\nColanode relies on **Conflict-free Replicated Data Types (CRDTs)** - powered by [Yjs](https:\u002F\u002Fdocs.yjs.dev\u002F) - to allow real-time collaboration on entries like pages or database records. This means multiple people can edit at the same time, and the system gracefully merges everyone's updates. Deletions are also tracked as specialized transactions. Messages and file operations don't support concurrent edits and use simpler database tables.\n\n## Get started for free\n\nThe easiest way to start using Colanode is through our **web app**, accessible instantly at [app.colanode.com](https:\u002F\u002Fapp.colanode.com). Simply log in to get started immediately, without any installation. _Please note, the web app is currently in early preview and under testing; you may encounter bugs or compatibility issues in certain browsers._\n\nFor optimal performance, you can install our **desktop app**, available from our [downloads page](https:\u002F\u002Fcolanode.com\u002Fdownloads). Both the web and desktop apps allow you to connect to any of our free beta cloud servers:\n\n- **Colanode Cloud (EU)** – hosted in Europe.\n- **Colanode Cloud (US)** – hosted in the United States.\n\nBoth cloud servers are currently available in beta and free to use; pricing details will be announced soon.\n\n### Self-host\n\nIf you prefer to host your own Colanode server, check out the [`hosting\u002F`](hosting\u002F) folder which contains the Docker Compose file and deployment configurations. For Kubernetes deployments, see the [`hosting\u002Fkubernetes\u002F`](hosting\u002Fkubernetes\u002F) folder which includes Helm charts and additional documentation. Here's what you need to run Colanode yourself:\n\n- **Postgres** with the **pgvector** extension.\n- **Redis** (any Redis-compatible service will work, e.g., Valkey).\n- **Storage backend** for user files. Colanode defaults to local filesystem storage, but you can switch to **S3-compatible**, **Google Cloud Storage**, or **Azure Blob Storage** backends by setting `STORAGE_TYPE`.\n- **Colanode server API**, provided as a Docker image.\n\n#### Configuration model\n\n- The server image now ships with a full `config.json`, so most defaults are ready to go without touching env vars.\n- The config file is the single source of truth. Use `env:\u002F\u002FVAR_NAME` to pull sensitive values from env vars, or `file:\u002F\u002Fpath\u002Fto\u002Fsecret.pem` to inline the contents of a mounted file (append `?` to make either optional). Only `POSTGRES_URL` and `REDIS_URL` are required out of the box.\n- To customize settings:\n  1. Copy `apps\u002Fserver\u002Fconfig.json`, edit it, and mount\u002Fbind it when using Docker Compose (see `hosting\u002Fdocker\u002Fdocker-compose.yaml`).\n  2. For Helm, enable `colanode.configFile.enabled` and pass your file via `--set-file colanode.configFile.data=.\u002Fconfig.json` (details in [`hosting\u002Fkubernetes\u002FREADME.md`](hosting\u002Fkubernetes\u002FREADME.md)).\n  3. Keep secrets as env vars so you don't have to bake them into JSON; the loader resolves `env:\u002F\u002F` pointers at runtime.\n\nEnvironment variables no longer override regular config fields—only values explicitly tagged with `env:\u002F\u002F` are read from the environment. Refer to [`hosting\u002Fdocker\u002Fdocker-compose.yaml`](hosting\u002Fdocker\u002Fdocker-compose.yaml) and [`hosting\u002Fkubernetes\u002FREADME.md`](hosting\u002Fkubernetes\u002FREADME.md) for mounting instructions and the handful of required secrets.\n\n### Running locally\n\nTo run Colanode locally in development mode:\n\n1. Clone the repository:\n\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fcolanode\u002Fcolanode.git\n   cd colanode\n   ```\n\n2. Install dependencies at the project root:\n\n   ```bash\n   npm install\n   ```\n\n3. Start the apps you want to run locally:\n\n   **Server**\n\n   ```bash\n   cd apps\u002Fserver\n\n   # Copy the environment variable template and adjust values as needed\n   cp .env.example .env\n\n   npm run dev\n   ```\n\n   To spin up the local dependencies (Postgres, Redis, and Mail server) with Docker Compose—using filesystem storage\n   by default—run this from\n   the project root:\n\n   ```bash\n   docker compose -f hosting\u002Fdocker\u002Fdocker-compose.yaml up -d\n   ```\n\n   When you prefer an S3-compatible backend locally, enable the optional MinIO service with the `s3` profile:\n\n   ```bash\n   docker compose -f hosting\u002Fdocker\u002Fdocker-compose.yaml --profile s3 up -d\n   ```\n\n   The compose file includes a `server` service. When you want to run the API locally with `npm run dev`, comment\n   out (or override) that service so only the supporting services are started.\n\n   **Web**\n\n   ```bash\n   cd apps\u002Fweb\n   npm run dev\n   ```\n\n   **Desktop**\n\n   ```bash\n   cd apps\u002Fdesktop\n   npm run dev\n   ```\n\n## Testing\n\nColanode includes tests for both server and web.\n\n### Server tests\n\nFrom `apps\u002Fserver`:\n\n```bash\nnpm run test\n```\n\nServer tests use Testcontainers for Postgres and Redis, so Docker must be running. See [`apps\u002Fserver\u002FREADME.md`](apps\u002Fserver\u002FREADME.md) for details.\n\n### Web tests\n\nFrom `apps\u002Fweb`:\n\n```bash\nnpm run test\n```\n\n## License\n\nColanode is released under the [Apache 2.0 License](LICENSE).\n","Colanode 是一个开源且以本地优先的协作平台，可替代Slack和Notion，并让你完全掌控自己的数据。它采用TypeScript编写，核心功能包括实时聊天、富文本编辑、自定义数据库以及文件管理，支持团队在线或离线沟通与项目管理。通过使用CRDT技术（由Yjs提供支持），Colanode能够实现多人同时编辑文档时的数据同步与冲突解决，确保高效协作。适用于需要高数据隐私保护的小型项目组到大型组织之间的各种协作场景，特别适合那些希望在享受现代协作工具便利性的同时还能保持对数据绝对控制权的用户。",2,"2026-06-11 03:46:27","high_star"]