A local-first place for canvases, notes, and files to live together.
Cosmoboard is a project I have been working on for the past 10 years. Initially I was just exploring and taking notes on what my ideal workspace and PKMS would be, after being disappointed in existing tools.
Currently I use a mix of Miro, Obsidian, a small notebook, loose pieces of paper, Notion, and VS Code for all my projects. It works but it ain't pretty. I hope to get this repository to a state where the static version becomes something you go back to and use on a daily basis.
Let me know if it is not there, how it could get there, and what you would like for it to be there.
Try the live prototype →●What it is
It is one big canvas where you can pan around, zoom in, drop images and PDFs onto it, jot markdown notes, and embed other boards inside it. Every board is a plain file on disk. The idea is that the work is mine and yours, not stuck inside someone else's database somewhere.
●What it is not
It is not a cloud-only workspace. It is not me trying to clone Notion or Miro or Obsidian. It is not finished, and it probably will not be for a while. I am building it piece by piece, in public, inside my personal site, on the days I have the energy for it.
●Scope and roadmap
Four rings. The middle is what has to work without thinking. Each ring outward is further from done.
●Principles
These are the rules I keep coming back to when I have to make a call on something.
Local-first
Works offline. Saves locally first. Happy to live on a static site without a backend.
Portable
Markdown and JSON Canvas underneath. If I leave, my notes and boards leave with me.
File-first
Every board is just a file on disk. The filesystem stays the boss, not a hidden database.
Embeddable
Boards inside markdown. Markdown inside boards. Files inside both.
Safe by default
Sandboxed embeds. No silent file crawling. Permissions stay explicit, even when it is annoying.
Gradual collaboration
Solo for now. GitHub recommendations next. Realtime co-editing once the rest is solid.
●Where your stuff stays
By default, your boards, notes, and dropped files autosave to your browser, so editing works fully offline. If you are also running the local dev-server, the same edits sync to plain .canvas and .md files in your project folder.
Nothing leaves your machine unless you click Recommend, which opens a GitHub issue with the canvas attached.
There is no telemetry. No analytics. No silent cloud sync either.
Encryption, portable encrypted shares, and self-hosted sync are part of the plan but not shipped yet. (PLANNED)
●Bringing your stuff in (PLANNED)
The whole point of local-first is that your notes are already yours. If they live somewhere else right now, here is how I plan to walk them in without making you redo years of work. Most of these are not built yet — this is the plan.
Two-way: import once, then keep working in the original tool if you want. Cosmoboard stays in sync with the files it already understands. None of this is about migrating once and forgetting.
●Where it lives
Right now Cosmoboard lives inside evrenucar.com, my personal site. It is the easiest place for me to keep working on it without spinning up a whole separate project around it. Once it grows up a bit, it will probably move to its own home. For now, the personal site is its host and its first real test surface.
●Live preview
This is the actual Cosmoboard, sitting right inside this page in read-only mode. Pan with the hand tool, zoom with the wheel, have a look around. To actually edit anything, open it in its own page.
●What I'm working on right now
The focus right now is making markdown and .canvas files round-trip cleanly with Obsidian, so the same folder opens in both places without any drama. Drag-and-drop imports for images, PDFs, and text files just landed. Next up are a proper onboarding board, a real performance baseline so a couple hundred nodes still pan at 60fps on a 2020 laptop, and the first slice of opt-in encryption so you can share boards privately without needing an account.
It is being built piece by piece, in public, in a single repo.
●How you can help
The most useful thing you can do is try it, push it until something breaks, and tell me what happened.
The board has buttons for that built in:
- Recommend sends a board you would like to see live, with the canvas attached.
- Feature request is for something you want.
- Bug report is for something that broke.
All three open prefilled GitHub issues. No sign-up beyond GitHub itself.
If you want to look under the hood, the repo is open. Issues, pull requests, and stars all work the way you would expect.
One thing I keep getting stuck on: people should be able to share boards with each other. I have not figured out the right way to do that yet, somewhere between capability links, encrypted shares, and a self-hosted node. If you have ideas about how sharing should feel, I want to hear them.
My inbox is open. If something here sparked an idea, write to me.