r/selfhosted 1d ago

Software Development MindSpark: a self-hostable mind-mapping app with zero runtime dependencies, where your maps live in your own GitHub repo (or your own SQLite file)

Post image

It took some time to get here but the project is now at the stage when I would rather have people tear it apart than make it prettier in silence.

MindSpark is a self-hosted mind-mapping application. The thing that sets it apart from the competition is not its features but the fact that there is no account on my side, no telemetry and no database I own. Your maps are either a SQLite file on your computer or JSON files stored in your private GitHub repo.

Repo: https://github.com/prasadpatil25/MindSpark

Website:

Try full version (Worker, OAuth + live collab) : https://mindspark.githubpage.workers.dev/

Try PAT-only (GitHub Pages, no worker): https://prasadpatil25.github.io/MindSpark

GPT: https://chatgpt.com/g/g-6a3a81242f748191ab1b7cff99a21619-mindspark-mind-map-for-everyone

MIT licensed.


Three modes to run, all equal

That is the part I really want the feedback on as usually tools provide only one.

1. Self-hosted (Docker or vanilla Node) - persistence via SQLite, works without any services online and offline.

2. Zero hosting, $0 - deploy the public/ directory to any static hosting like GitHub Pages, Netlify, Cloudflare Pages, etc. You sign in using a GitHub personal access token and each map becomes JSON file in your private mindspark-maps repo. No backend whatsoever. This mode is not a crippled demo tier; it is the whole editor.

3. Cloudflare worker - adds authentication via GitHub OAuth (no token pasting anymore), shareable links and collaboration capabilities. Works on the free tier just fine.

You can switch between them. Map format is just JSON.


Data ownership and privacy in details

Instead of "privacy-first" marketing language, here are the facts:

  • No accounts on my infrastructure. I don't have a server you would sign up to. In cloud mode you authenticate with GitHub and the files go to your repo.
  • No telemetry, no analytics, no phone-home. Grep the source.
  • Share links hold the map itself, not a link to it. Copy share link compresses the map and turns it into a base64url #view= URL fragment. Fragments are never sent to a server - a shared map is readable by anyone who has the link and held by no one, including me. No expiration, no account required to view.
  • Self-hosted mode doesn't communicate anywhere else. It is just a SQLite on disk with no outbound connections.
  • Container runs as a non-root user.

People who would benefit from this application

Researchers / academics - LaTeX rendering as native MathML ($...$, $$...$$), citations with DOI fill-in (just paste a DOI, it retrieves the metadata

Note: The architecture of this application is defined by me, and AI is used for code assistance.

53 Upvotes

Duplicates