Files
colanode/README.md

59 lines
4.0 KiB
Markdown
Raw Normal View History

2024-12-08 20:17:23 +01:00
<p align="center">
Web version (#43) * Create client package * Create the UI package * Init web app * Use isomorphic 'ws' for web sockets * File and asset implementations * Use Opfs SAH version of sqlite in browser * Generate Svg sprites for emojis and icons * Include emojis sprite * Improve and refactor assets * More assets improvements * Implement emoji and icons db import as readonly * Improve import paths * Handle concurrency limits for sqlite * Fix event broadcast in web * Pass windowId for subscribe and unsubscribe queries in desktop * Remove asset context * Implement avatar upload/download with the new structure * Improve file handlings * Move the necessary dependencies to client and ui packages * Update packages * Improve open file dialog * Make sure database files are deleted in browser * Improve avatar loading * Improve file loading * Fix some assets * Implement asset caching for offline access * Small fixes and improvements * Use server instead of pre signed urls for file upload/download * Cleanup some client related metadata * Switch Axios with ky * Refactor mutation results * Minor concurrency fix * Refactor web sockets * Improve file uploading * Handle connection close on server * Use stream for downloading the file * Add config options for cors * Update document in all tabs on local change * Include necessary icons for web * Update docker compose * Implement server upgrade required component * Use correct client type and platform in web and desktop * Improve service worker * Improve versioning * Fix an import * Minor fixes * Update some user endpoints * Minor endpoint changes * Enable app badge for desktop * Add error handling in some database operations * Update mutation naming convention * Update query naming convention * Update event and some metadata naming conventions * Update event and job naming conventions in server * Update Github workflow files * Restructure assets directory * Update packages * Upgrade to Zod v4 * Upgrade to react 19 * Upgrade to tailwind v4 * Minor ui improvements * Fix some cursor pointers * Add browser not supported message in web * Enhance server create flow, allow insecure connections and custom api paths * Execute electron-rebuild as postinstall command * Update docker compose
2025-06-11 00:14:17 +02:00
<img alt="Colanode cover" src="assets/images/colanode-cover-black.png">
2024-12-08 20:17:23 +01:00
</p>
2024-12-08 20:03:48 +01:00
2024-11-10 01:39:49 +01:00
# Colanode
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
### Open-source & local-first collaboration workspace that you can self-host
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
Colanode 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.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
### What can you do with Colanode?
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
- **Real-Time Chat:** Stay connected with instant messaging for teams and individuals.
- **Rich Text Pages:** Create documents, wikis, and notes using an intuitive editor, similar to Notion.
- **Customizable Databases:** Organize information with structured data, custom fields and dynamic views (table, kanban, calendar).
- **File Management:** Store, share, and manage files effortlessly within secure workspaces.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
Built 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.
2024-12-08 20:03:48 +01:00
Web version (#43) * Create client package * Create the UI package * Init web app * Use isomorphic 'ws' for web sockets * File and asset implementations * Use Opfs SAH version of sqlite in browser * Generate Svg sprites for emojis and icons * Include emojis sprite * Improve and refactor assets * More assets improvements * Implement emoji and icons db import as readonly * Improve import paths * Handle concurrency limits for sqlite * Fix event broadcast in web * Pass windowId for subscribe and unsubscribe queries in desktop * Remove asset context * Implement avatar upload/download with the new structure * Improve file handlings * Move the necessary dependencies to client and ui packages * Update packages * Improve open file dialog * Make sure database files are deleted in browser * Improve avatar loading * Improve file loading * Fix some assets * Implement asset caching for offline access * Small fixes and improvements * Use server instead of pre signed urls for file upload/download * Cleanup some client related metadata * Switch Axios with ky * Refactor mutation results * Minor concurrency fix * Refactor web sockets * Improve file uploading * Handle connection close on server * Use stream for downloading the file * Add config options for cors * Update document in all tabs on local change * Include necessary icons for web * Update docker compose * Implement server upgrade required component * Use correct client type and platform in web and desktop * Improve service worker * Improve versioning * Fix an import * Minor fixes * Update some user endpoints * Minor endpoint changes * Enable app badge for desktop * Add error handling in some database operations * Update mutation naming convention * Update query naming convention * Update event and some metadata naming conventions * Update event and job naming conventions in server * Update Github workflow files * Restructure assets directory * Update packages * Upgrade to Zod v4 * Upgrade to react 19 * Upgrade to tailwind v4 * Minor ui improvements * Fix some cursor pointers * Add browser not supported message in web * Enhance server create flow, allow insecure connections and custom api paths * Execute electron-rebuild as postinstall command * Update docker compose
2025-06-11 00:14:17 +02:00
![Colanode preview](assets/images/colanode-desktop-preview.gif)
2025-01-09 18:56:35 +01:00
2025-01-08 22:18:07 +01:00
## How it works
2024-12-08 20:03:48 +01:00
2025-06-11 20:07:12 +02:00
Colanode 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.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
### Local-first workflow
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
All 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.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
### Concurrent edits
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
Colanode relies on **Conflict-free Replicated Data Types (CRDTs)** - powered by [Yjs](https://docs.yjs.dev/) - 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 everyones updates. Deletions are also tracked as specialized transactions. Messages and file operations dont support concurrent edits and use simpler database tables.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
## Get started for free
2024-12-08 20:03:48 +01:00
2025-06-11 20:07:12 +02:00
The easiest way to start using Colanode is through our **web app**, accessible instantly at [app.colanode.com](https://app.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._
For optimal performance, you can install our **desktop app**, available from our [downloads page](https://colanode.com/downloads). Both the web and desktop apps allow you to connect to any of our free beta cloud servers:
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
- **Colanode Cloud (EU)** hosted in Europe.
- **Colanode Cloud (US)** hosted in the United States.
2024-12-08 20:03:48 +01:00
2025-06-11 20:07:12 +02:00
Both cloud servers are currently available in beta and free to use; pricing details will be announced soon.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
### Self-host with Docker
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
If you prefer to host your own Colanode server, simply use the Docker Compose file in the root of this repository. In the near future, well provide more detailed instructions for other environments, including Kubernetes. For now, heres what you need to run Colanode yourself:
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
- **Postgres** with the **pgvector** extension.
- **Redis** (any Redis-compatible service will work, e.g., Valkey).
2025-06-13 00:31:09 +02:00
- **S3-compatible storage** (supporting basic file operations: PUT, GET, DELETE).
2025-01-08 22:18:07 +01:00
- **Colanode server API**, provided as a Docker image.
2024-12-08 20:03:48 +01:00
2025-01-08 22:18:07 +01:00
All required environment variables for the Colanode server can be found in the docker-compose file.
## License
Colanode is released under the [Apache 2.0 License](LICENSE).