Building Onyx: Why I'm Creating an Open Source Alternative to Big Tech's AI Productivity Tools

Big Tech wants to lock your productivity into their AI platforms and mine your data. I'm building the alternative. Onyx: encrypted notes, Nostr sync, open source, AI skills library. Your data stays yours.

I started a new career path at the beginning of this year and immediately felt the need for an AI-powered productivity tool to help manage my daily workflow—an executive assistant of sorts for task management, scheduling and meeting reminders, content writing and social management, general prioritization, and project management.


I had recently started using Obsidian to organize all my notes, so my initial thought was to throw Claude Code at my Obsidian vault and see what would happen. The results were amazing, but I knew I could do better. I started creating skill after skill, refining my workflow with each iteration. I integrated open source tools like Taskwarrior, Khal, and Khard. I pulled down all of my tasks, issues, and merge requests from GitHub and GitLab. The system was becoming genuinely powerful.


Then, in the first week of January, I discovered OpenCode and everything changed.


I decided to build an OpenCode plugin for Obsidian. Being able to accomplish all of this without switching between applications was incredibly productive and powerful. I showed it to a few friends and they were floored. We discussed it at length, and that’s when I had my realization: this was the future. This was AI for non-technical people. My friends don’t code, but they could all benefit from personal assistants and productivity suites.


But I had doubts. My very technical, command-line-based, Obsidian-centric approach wasn’t going to work for most people. And as I dug deeper, I realized I wanted to be *truly* open source—and Obsidian isn’t. I wanted a polished interface for syncing. I wanted a free (or at least cost-effective) and simple method for synchronization that non-technical users could actually set up and use.


I started working on a solution. Then, two days later, Anthropic announced Claude Cowork.


And that’s when it truly hit me.


This was the billion-dollar idea—and every major tech company would be racing to implement their own version. They would mine user data and lock users into their platforms. This would be terrible for user choice and freedom. We needed an open source alternative, and we needed it fast.


(And then I had to disappear for a week due to work commitments, but my team did win $25K in an AI Hackathon, so it’s not all bad.)


Now that I’m done with the backstory, let’s get to the app.


---


## Introducing Onyx


**Onyx** is a private, encrypted note-taking app with Nostr sync.


Onyx lets you write markdown notes locally and sync them securely across devices using the Nostr protocol. Your notes are encrypted with your Nostr keys before being published to relays, ensuring only you can read them.


This is the foundation of what I’m building—a truly open, user-controlled productivity platform where your data belongs to you and syncs through decentralized infrastructure rather than corporate servers.


**GitHub Repository:** [https://github.com/derekross/onyx](https://github.com/derekross/onyx)


---


## Features


### Core


- **Markdown Editor** — Write notes with full markdown support and live preview

- **Local-First** — Your notes are stored locally as plain markdown files and work offline

- **Nostr Sync** — Encrypted sync across devices via Nostr relays

- **Secure Storage** — Private keys stored in your OS keyring (Keychain, libsecret, Credential Manager)

- **Cross-Platform** — Linux, macOS, and Windows


### Document Sharing


- **Share with Nostr Users** — Send encrypted documents to any Nostr user via npub, NIP-05, or hex pubkey

- **Notifications Panel** — See documents shared with you, with sender profiles and timestamps

- **Import Shared Docs** — Import received documents directly into your vault

- **Revoke Shares** — Remove shared documents you’ve sent to others


### Publishing


- **Publish as Articles** — Post markdown notes as NIP-23 long-form articles

- **Draft Support** — Publish as drafts (kind 30024) or published articles (kind 30023)

- **Auto-generated Tags** — Suggests hashtags based on document content


### Privacy & Security


- **End-to-End Encryption** — All synced content encrypted with NIP-44

- **Block Users** — Block bad actors using NIP-51 mute lists

- **Secure Previews** — XSS protection and URL sanitization for shared content

- **Private Mute Lists** — Blocked users stored encrypted so only you can see them


### File Management


- **File Info Dialog** — View local file details and Nostr sync status

- **NIP-19 Addresses** — See naddr identifiers for synced files

- **Sharing Status** — See who you’ve shared each file with


### AI Skills Integration


- **Integrated Skills Library** — Browse and install AI skills directly from [skills.sh](https://skills.sh), a curated library of productivity-enhancing capabilities

- **One-Click Installation** — Add new skills to your workflow without any technical setup or configuration

- **Easy Management** — Enable, disable, and update skills from within the app

- **Community-Driven** — Access skills created by the community, from document creation to task automation to specialized workflows

- **Extensible** — Build and share your own skills to help others boost their productivity


---


## How Sync Works


Onyx uses custom Nostr event kinds for encrypted file sync:


| Kind | Purpose | Encryption |

|——|———|————|

| 30800 | File content | NIP-44 (self) |

| 30801 | Vault index | NIP-44 (self) |

| 30802 | Shared documents | NIP-44 (recipient) |

| 30023 | Published articles | None (public) |

| 30024 | Draft articles | None (public) |

| 10000 | Mute list | NIP-44 (self, optional) |


All synced content is encrypted using NIP-44 with a conversation key derived from your own public/private key pair. This means only you can decrypt your notes—relays only see encrypted blobs.


Shared documents are encrypted to the recipient’s public key, so only they can decrypt them.


---


## Tech Stack


- **Tauri 2.0** — Rust-based desktop framework

- **SolidJS** — Reactive UI framework

- **CodeMirror 6** — Text editor

- **nostr-tools** — Nostr protocol library


---


## Installation


Pre-built binaries are available for Linux, macOS, and Windows on the [Releases page](https://github.com/derekross/onyx/releases).


For macOS users: The app isn’t currently signed with an Apple Developer certificate. To install, open Terminal and run:


```bash

xattr -cr /Applications/Onyx.app

```


---


## What’s Next


This is just the beginning. Onyx represents the foundation of an open source, privacy-first productivity suite that puts users in control of their data. The goal is to prove that we don’t need to sacrifice our privacy and freedom to benefit from AI-powered tools.


If you’re interested in contributing or following a

long, check out the repository and give it a star. Let’s build the future of open productivity tools together.


**License:** MIT


Okay, I figured something like that was the case. I will go compare my installed version. Thanks as always!

Hey Jody. I’m not sure what version you’re on, but dragging and dropping between folders does work. Perhaps your version is older and not supported.

Thanks for the feedback.

I have a new version out there from yesterday that should add tons of new features. Check it out when you can.

So far so good, but having multiple folders within Onyx is a little confusing. I had to open my file explorer on the computer to move a file I created to be under my ‘personal’ folder. (It wouldn’t let me drag it within Onyx to the folder I wanted. Maybe it’s just something with my computer?

My only other thought is adding some sort of guide within the app itself as to what each section is for/does. Just the ‘i’ with links out to the github explanation, or something? I know you’ll come up with something brilliant!

Installation was easy Interface is clunky and doesn’t resize At a few thousand notes, the app jams when trying to generate the graph Absolutely no productivity features (calendar, kanban, reminders) Nearly no customization (except highlight color, but that doesn’t change hyperlink color, which persists as Obsidian purple) AI feature is gimmicky, I can think on my own. Definitely need on boarding / instructions for how this is supposed to be useful

This project/app is in its infancy. Not usable now but may be going places as it is open source. If we can migrate Obsidian features and plugins, that would give this a big lift.

Will keep testing

Understood. Also not the same thing, and, less of an excuse. Differentce of opinion here but gits for apps must have readmes and screenshots as a quality metric

I posted a 10 minute video demo yesterday on Nostr and I’ve been posting screenshots.

No screenshots on your github?

I use a lot of different skills with this to manage my workflow throughout the day. AI skills with the opensource tools handle all of this for me.

I’d like to eventually add plugin support so that people could add their own plugins. And a kanban core tool for this would be great. I like the idea.

Yes, checkbox is supported. I needed to have that too.

This is amazing Derek, exactly what Obsidian is missing, a nostr sync feature. Or even better, something like Obsidian bit with nostr file sync instead. Exactly what I was trying to do with Obsidian and self hosted remote git repos, which was uncomfortable to use on android. But, how is Onyx a productivity suite? When I hear “productivity” I think task manager, like can be done in markdown in Obsidian. Is the “checkbox” (e.g. ‘[ x ] - GTD’ ) supported by Onyx? Any chance Onyx could also support something like a json task/todo schema as a separate plugin document type that is compatible with meiso? There is a chasm between task management in “productivity tools”, CRMs, and code developers. I wonder if there is a way to unify them, for example a kanban tool that uses a base data format that works across all three “views”?

Let me know what pain points you have. The goal is to make installation and getting started easy. I don’t have onboarding yet, but I’d like to have that to help you pick and choose skills, so let me know what you think this far.

Love it. Installing on my Linux Mint setup here in a few. Will take it for a spin and let you know how it goes!

This is for you Jody! Non technical people are the target. I’m early today, but I’m excited!

YESSS! Been waiting for something like this. Thank you Derek!