Skip to content

roschlau/catana

Repository files navigation

Catana Logo

Catana

Important

This project is in very early stages of development, with lots of core functionality still missing. This readme is currently more of an aspiration than a reality, and the software is missing a lot of stuff to be considered production-ready. If you still want to give it a try, read Testing Catana.

What is Catana?

Catana was born from my desire to have a note-taking software that works similar to Tana, but able to interface with my local files better and without having to put all my data into yet another web service that I don't control.

Catana aspires to be the central hub for your personal, digital life, without making you give up control over your data. That includes being:

  • A place to put and link all your notes, thoughts, etc. (Some people call this a "Second Brain", even though I don't particularly like that term)
  • A personal journal
  • A management tool for your personal tasks and projects
  • A file manager (possibly. Let's see if we get there)

Catana is not:

  • A markdown-first or plain-text-first tool. Catana has its own open, but custom file format. You can read more on why below. That being said, I do plan to add seamless file system integration in the future so that you can reuse existing Obsidian Vaults or Logseq Graphs with some caveats.
  • A collaboration tool. I want this to work for me and my personal life. Adding any kind of collaboration functionality would be a cross-cutting concern that massively complicates every aspect of how Catana works and needs to be developed. You might find ways to make it work well enough for you, but it's not going to be a primary concern for the foreseeable future.

Why not use Obsidian or Logseq?

I tried. Neither of them really clicked for me the way that Tana did, although Logseq came close. I attribute most of their shortcomings to being not only local-first, but markdown-first. I care about the former, but not that much about the latter. Going markdown-first forces them into compromises that I don't agree with:

  • Pages and blocks within those pages (and folders in the case of Obsidian) are separate concepts. Constantly having to manage that distinction when working with my graph, deciding whether to either create a new block or link a new file instead, and converting between them causes too much friction and frustration. I want a flexible data model where everything is a node that can easily be moved, linked and transcluded anywhere in my knowledge graph, and hierarchy is created purely by nesting nodes.
  • Consequence of the previous point: Editing a linked page requires you to open that page. Just unfolding it in-place like you can with any Node in Tana is super convenient.
  • Managing semi-structured data is a pain. Supertags in Tana are awesome and make tags and properties in Obsidian and Logseq feel like crude workarounds.
  • You can't link other pages in page names. This makes working with linked atomic notes that might only consist of a single sentence annoying.
  • In the case of Obsidian, I can't use special characters in page names.

Granted, some or even all of these could probably be overcome even with a markdown-first approach, but Obsidian and Logseq haven't, and it would be more complicated than I'm willing to deal with. With Catana, I am explicitly not making markdown-compatibility a goal, in exchange for getting the more structured and flexible internal model that I liked so much about Tana.

I still want Catana to have a file system integration so that any kind of file, including markdown files, can be linked to and made part of your knowledge graph. It's just not going to be the core persistence mechanism. I'm still fleshing out my thoughts around this at the current time.


Testing Catana

If you want to test Catana in its current state, here are some things to keep in mind:

  • Download the latest version from the Releases Page. The Windows build will auto-update, but if you're on macOS or Linux, the best way to stay up to date is subscribing to release notifications on this repository. You can also follow me on Bluesky or Mastodon for dev updates!

Important

For Apple users: macOS doesn't trust unsigned DMG files downloaded from the internet. After installing, if you get a message that Catana is damaged and should be moved to the trash, you need to locate the app in your Applications folder, and run this command on it:
xattr -c Catana.app
Afterwards, the app should start up normally. You likely need to repeat this after every update.

  • The UI is very barebones, a lot of actions are available only via keyboard shortcut and/or the command prompt. If in doubt, press Ctrl/Cmd+K and search for what you're looking for, but there's a high chance that it might not be implemented yet.
  • No guarantees on backwards-compatibility. Your workspaces might need manual intervention to keep working with newer versions of the app.
  • Bugs might happen. Save early, save often, back up your data. Here's what you need to know about how Catana saves your data and tries to keep it safe:
    • To open a workspace, you chose a directory on your PC. Catana will create a .catana file in that directory. Currently, this file contains all content you create in Catana, although that might change in the future. It is using plain JSON, so manually editing it is possible if necessary. Refer to workspace-file-schema.ts for the arktype schema.
    • If something goes wrong, the first thing to try is Ctrl/Cmd+Z. Almost all application state is captured in the undo history, so that's your first way out.
    • There is currently no auto-save. Catana only saves when you explicitly request it via Ctrl+S. If something seems entirely messed up, you can close the window, chose "Discard and Close" when asked if you want to save, and you'll be back to the last time you saved.
    • If you have git installed, Catana will automatically initialize a git repo in any workspace that you open, and add a commit whenever you save. This way you can access any previously saved state easily in case the .catana file becomes corrupted or stuff got accidentally deleted.

Roadmap

Here's a non-exhaustive list of the bigger things I have planned for the future, in no particular order:

  • Markdown formatting and inline http links
  • Supertags and Node Properties
  • Inline links to other nodes
  • Dedicated Journal page
  • Templates
  • Filesystem integration

About

Privacy-first hub for your digital life.

Resources

Stars

Watchers

Forks

Contributors