Show HN: Colanode, open-source and local-first Slack and Notion alternative

github.com

136 points by hakanshehu 2 days ago

Hey HN,

I'm Hakan, the founder of Colanode (https://github.com/colanode/colanode), an open-source, local-first collaboration app combining the best of Slack-style chats and Notion-style note-taking, fully self-hostable for complete data control. Here's a quick demo: https://www.youtube.com/watch?v=wp1hoSCEArg

As a heavy Notion user, I often found it tough to get my teams fully onboard since people naturally gravitate toward chat for quick interactions. Maintaining context between chat apps like Slack and documentation apps like Notion became increasingly frustrating. Switching contexts, losing track of information, and managing data across multiple tools created unnecessary friction.

This frustration led me to build Colanode, a single platform integrating structured notes and knowledge management with real-time chat. After building the first version, early feedback highlighted a critical issue: teams/organizations want full control over sensitive data, especially conversations. That's why I decided to open-source Colanode under an Apache 2.0 license, making it fully self-hostable so you can retain complete ownership and privacy over your data.

Colanode is built with simplicity and extensibility in mind, using only open-source tools and avoiding any vendor or cloud lock-in. It features a local-first architecture offering complete offline support. From a technical perspective, Colanode consists of a Node.js server API and an Electron desktop client, with mobile apps coming soon. Everything in Colanode is represented as a node (e.g., message, file, folder, chat, channel, database, record), each with specific attributes and permissions. All reads and writes performed by the desktop client happen locally within a SQLite database, and changes sync seamlessly via a synchronization engine built on top of SQLite, Postgres, and Yjs—a CRDT library for conflict resolution. The server then propagates these changes to other collaborators. You can self-host the server in any environment using Docker, Postgres, Redis, and any S3-compatible storage, and connect using the official desktop client, which supports simultaneous connections to multiple servers and accounts. This local-first approach also prepares us for future integrations with fully local LLMs, further enhancing privacy and performance.

I'd love your feedback and suggestions on Colanode. What features would you like to see? What would you change?

Thanks, looking forward to your thoughts!

mdaniel 2 days ago

Congratulations on your launch, the animation makes it seem like a neat product!

I don't think I've ever seen a "coming soon" pricing page before <https://colanode.com/pricing/>

For my curiosity, your readme mentions Valkey but the docker compose uses Redis - is that on purpose? https://github.com/colanode/colanode/blob/v0.1.3/docker-comp...

You will also almost certainly want to either use the Apache 2 version of Minio[1] or label that dependency as AGPLv3 to ensure folks are aware. I would also recommend always pinning image versions, because you don't control what that project does or doesn't do in releases

1: https://github.com/minio/minio/blob/RELEASE.2021-04-22T15-44...

  • hakanshehu 2 days ago

    Thank you! We're still working on the hosted offering, hence the "coming soon" pricing page.

    Regarding Valkey, I included it as an example of a Redis compatible alternative, but you're right, it's probably better to use it in our Docker Compose file as well. Thanks also for pointing out the licensing considerations around Minio, will definitely look into that.

    • mdaniel a day ago

      I tried booting it up and two things:

      - this is just evil. Pure. evil. https://github.com/colanode/colanode/blob/v0.1.3/apps/deskto...

      If that's the kind of error handling that you believe in, one should have religious backups of any data placed into this

      - It seems to actually puke if one doesn't provide it a live, TLS enabled, SMTP server[2] which (a) WTF (b) isn't present in the docker-compose

      Thankfully replacing .verify with return new Promise(() => true) at least let the server start

      2: https://github.com/colanode/colanode/blob/v0.1.3/apps/server...

      • yencabulator 17 hours ago

        Here an example of it taking arbitrary input and blindly casting it to a type; anything after this point can blow up. There seems to be no input validation anywhere.

          const input = req.body as SyncMutationsInput;
        
        https://github.com/colanode/colanode/blob/9e69f29858a2ced6b1...

        And the database use looks racy, sometimes not using transactions at all but having a read-modify-write cycle, no GET FOR UPDATE seen anywhere in transactions. Somebody is going to figure out how to do nasty things to the data.

      • hakanshehu a day ago

        Thank you for taking the time to test it and call these issues out. Both points slipped through our refactor/cleanup checklist.

        - We’ll replace the current error handling for server sync with something safer and more graceful.

        - We’ll make SMTP optional, expose TLS verification as a configurable setting and update the docker-compose.

        We’ll make these improvements soon, thanks again for the heads-up.

regnerba 2 days ago

Do you have plans for mobile app? It looks really useful but the two places I would use it would both require I mobile app before I could switch to it.

  • hakanshehu 2 days ago

    Hi, thanks for the question! Yes, we do plan to implement mobile apps, but we don't have a concrete timeline yet. It depends on the limitations and challenges we might face when we implement the same local-first approach as we did in desktop (full offline support, background syncing etc).

alok-g a day ago

Looks nice! Would wait for the documentation to learn more.

How does this compare to Notesnook? I have found that to be the best in terms of getting the details right (However, the last I checked, the documentation for self-hosting was unclear, and there were bugs in data exporting).

https://notesnook.com/

  • hakanshehu a day ago

    Thank you! I haven’t used Notesnook personally, but from their description it focuses mainly on note-taking. Colanode, by contrast, also includes collaboration features such as chat, file sharing, and databases. One other difference is that Notesnook offers end-to-end encryption, whereas Colanode does not (at least for now).

esperent 2 days ago

This looks great, it's a crowded field but there's still a lot of room for improvement.

The most important question before I'd try this is, do real time cross platform notifications work? If yes, how did you solve this for people self hosting?

  • hakanshehu 2 days ago

    That's a great question! We didn't come to it yet, because we are focused only in desktop app for now. This is definitely one of the challenges we need to solve once we start working on the mobile apps. The self-hosting use case makes it tricky (and probably fun challenge to solve).

    • esperent a day ago

      Having used several real time self hostable apps with chat (Nextcloud, Odoo, Rocket chat) this is the hard problem to solve.

      Rocketchat uses it as a way to funnel you into paying. You'll get a low number monthly for free. They say 10k month but with a team of 5 people lightly using it we used that in 4 days. Or you can do it yourself, but you'll need to register your own version of the app in both the Apple Store and Play Store. For Apple apparently this is close to impossible so I didn't try.

      Nextcloud runs their own server for free, but you have to accept that you'll be sending data via their server. But I've spent the last week hacking away at setting up a Nextcloud in my spare time. Got it mostly set up in a day, then the rest of the time has been trying to get notifications working on mobile. Still not working.

      Odoo, I don't think I ever got notifications working.

      I have researched other apps: Mattermost does something similar to Rocketchat, using notifications as a sales funnel. Element is similar to Nextcloud, they host their own free server, although I think you can self host that too.

      From this experience, I would never try a new app until they have this feature solved, clearly documented, and with proof that it works and isn't a sales funnel.

      • pcthrowaway a day ago

        > I have researched other apps: Mattermost does something similar to Rocketchat, using notifications as a sales funnel

        Can you elaborate on this? I manage a Mattermost instance and there are some features missing from the OSS self-hostable community edition, but notifications seem to mostly work, even on mobile where notification delivery does rely on their gateway

        • esperent 5 hours ago

          When hosting and using their free notifications service, you're basically using their test server with no uptime guarantees. I agree that there's only so much you can expect from a free service, but unreliable notifications make a chat app 100% useless for any serious work.

          If you pay, it's $10/user/month for the basic service. Where I live that's about 3x Ms Teams, 2x Slack. And you still have to self host.

          Self hosting the service has the same issue as Rocketchat: you need an Apple dev account, a firebase account and an endless amount of free time. It's going to be far harder and more time consuming than just hosting the app.

itomato 2 days ago

These products are neat, but what about the data?

Notion is a tragedy when it comes to export or migration.

I didn’t see any bragging about the exportability of content from this one, but that’s the main thing I look for now.

  • hakanshehu 2 days ago

    Hi, thanks for bringing this up! We don’t have export or migration features in place yet, but we are planning to add them. Which export formats would be most useful to you? And when you mention migration, are you thinking about moving data from similar tools into Colanode or vice-versa? If so, which specific tools would you like to be able to migrate to/from?

    • 3np a day ago

      Different person but my prios for export:

      1. Versioned export/backup which will be guaranteed to work with current Colanode version

      2. ..., well-documented

      3. ..., with migrations so it's always future-compatible

      4. ..., human-readable

      I think integrations with any specific other tools should be ezpz if the fundaments are solid!

      For import/insert, I guess some cli API with similar properties would be a nice fit.

      (Coincidentally I think the above is also what would facilitate LLMs to do a decent job for anyone trying that)

    • sameasiteverwas a day ago

      The first export type implemented should be as minimal and human readable as possible (text files for most content, maybe w/ minimal markup). If that's not possible for all data, then standard formats like html or pdf.

      After that, go after your biggest competitor. If people know they have a path back to a familiar shore they're less scared to swim in new waters.

nashashmi 2 days ago

Is there a name for this new-age method of notes/webpage/data productivity genre? They all seem to have "write with /" to insert "block" content.

I am trying wrap my head around what they are. The seem to be "docs" on the web. Then they also have this "inline page" feature which is a fancy include. Then have a table insert with a relation feature. Then they have a dynamic view layout engine on a table.

  • omneity 2 days ago

    Block-based editors maybe?

    • nashashmi 2 days ago

      Could be. That seems to bring up many search results.

ThinkBeat 2 days ago

Anything that starts as Open source but is clearly meant to be a for profit product makes me sceptical.

The page has a link "Pricing" that takes to a page that says its coming up.

Well I will wait and see what and how the pricing structure will be revealed.

It is a product that easily lends itself to being a "little vit free and open source" and then all the for profit add ons are $$$$$ and not open sourced .

  • Rooster61 2 days ago

    Wouldn't surprise me if it's just cloud hosting and maintenance for a fee. Might not be an indicator of dark patterns.

plextoria 2 days ago

I'm excited to try this out! (seems to have some bandwidth issues, currently downloading at 24KB/s)

Is SSO implemented or planned in the near future? I feel that colanode would be a great fit for our start-up

  • hakanshehu 2 days ago

    Thank you! Will look into the download speed issue. As for SSO, we don't have immediate plans, but we'll certainly consider it for the future.

  • plextoria 2 days ago

    sadly, app doesn't run on Intel Macs

    • mdaniel a day ago

      Maybe the pre-built one doesn't, but $(npm ci && npm run -w '@colanode/desktop' dev) boots up just fine on my 12.7 2015 MBP

    • hakanshehu a day ago

      Thanks for pointing it out. Will check our build and release process to fix it.

badmonster a day ago

Have you thought about adding programmable logic or automations between nodes?

  • hakanshehu a day ago

    We have been thinking for some automation/workflows to be executed on specific events. Do you have any example/use case that you might be interested in?

    • savolai 17 hours ago

      My 2c: A particular thing about notion that bugs me is that hn page content get imported as simple. tables and in notion there is no automated way to delete all empty cells of all tables on page, that make it unreadable, or just to convert tables automatically into text

  • 3np a day ago

    With a sane local API and some examples, there shouldnt be need for a DSL or in-app integration logic.

eterps 2 days ago

> Colanode consists of a Node.js server API and an Electron desktop client

Is the Electron app a necessity or is using a browser possible as well?

  • hakanshehu 2 days ago

    Hi! For now, Colanode is available only as a desktop app (Electron). The primary reason is that we wanted to implement some local-first features, which are currently more complex to achieve in the browser.

    • apitman 2 days ago

      Curious which features? I'm starting a local-first project and would love to make a PWA, but I just don't think the platform is ready yet.

      • hakanshehu 2 days ago

        Mainly using SQLite and having access to native file system for reading and writing files. We wanted to provide a full offline functionality. While it's possible to achieve that in browser as well it seemed quite complicated for now (we might consider it in the future).

        • 9dev 2 days ago

          It’s actually fairly straightforward using the OPFS API; I used it to build an upload queue a while ago, so the user can drag arbitrary files on the browser, they get copied into the OPFS as regular files, and then I can upload them at my own leisure, even after browser restarts. The SQLite WASM build even has support for it AFAIR.

          Can recommend, it’s a fun challenge :)

handfuloflight 2 days ago

Would it be possible to allow us to set our own custom fonts and color scheme (without having to fork it)?

  • hakanshehu 2 days ago

    That's an interesting idea. Didn't plan it, but we could implement some kind of custom theme functionality.

frizlab 2 days ago

Hello! How does this compare to Huly?

  • hakanshehu 2 days ago

    Hi, thanks for the question! I haven’t used Huly extensively to provide a detailed comparison, but from a quick look (and a test I did some time ago) it seems to take a more opinionated approach: features such as issues, projects, and overall layout are pre-defined. Colanode, by contrast, works like Notion, giving you flexible building blocks so you can model your own workflows and knowledge structures. Huly may be quicker to get started with, while Colanode offers greater adaptability over time (this comes down to personal preference). Another key distinction is tech architecture: Colanode is built around a local-first design, providing full offline support with background syncing. I haven’t found equivalent offline capabilities documented for Huly, even though they may have them.

    • frizlab a day ago

      Nice!

      An issue I’ve had with Huly self-hosted is upgrading, which is very hard because it is not documented (as far as I know).

      How are upgrades handled on your project?

drcongo 2 days ago

This looks very interesting purely because I can just about see from the very fast gif on the README that it has tasks in there, how much of a first class citizen they are of the app could be really important. It blows my mind that both Slack and Notion have such half-arsed task implementations - every time I need to introduce better, asynchronous task assignments at work I get pushback over "people won't use yet another app" - and sure enough, getting people to assign me something rather than @ notifying me while I'm nose deep in code of something that needs doing in a few days time has been impossible. A single app that lets a team manage work without constant interruptions would be the dream.

  • lelanthran 2 days ago

    > A single app that lets a team manage work without constant interruptions would be the dream.

    I can see how it can work, using a native application client to interface to something like develops or jira and then bolt on instant messaging (or the reverse).

    The question is, can I get a company to open their wallets for this? From experience, I think not, but i am open to being convinced.