Bangle.io: A Browser-Based WYSIWYG Notes App That Stores Files as Local Markdown
A web only WYSIWYG note taking app that saves notes locally in markdown format. v2:.
At a glance
- What is it?
- Bangle.io is a web-only note-taking application that saves notes in human-readable Markdown files stored directly on the user's local filesystem, with no server or sync account required. It presents a WYSIWYG rich-text interface while keeping the underlying format portable and readable outside the application.
- Who is it for?
- Writers and developers who want a WYSIWYG editing experience over plain Markdown files stored on their own machine will find Bangle.io useful at bangle.io. Those who need notes synced across multiple devices, accessible from mobile, or integrated with a backend service will find that the browser-local-only storage model is a hard boundary: there is no sync mechanism documented in the README.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 10 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Bangle.io Stores and Where
Bangle.io stores notes as Markdown files on the user's local filesystem, accessible directly through the browser's File System Access API. The README describes the design goal as keeping notes in a human-readable format that is not locked into the application. A user can open the same Markdown files in any text editor, version-control them with git, or read them without the application.
The README draws an explicit comparison to Notion but positions Bangle.io as local-only. Unlike cloud note-taking tools that store data on their own servers, Bangle.io's data layer is the user's filesystem. The README states the application saves things in Markdown format and enriches the visual presentation with rich-text formatting, meaning what the user sees while editing is formatted prose while what gets saved to disk is plain Markdown.
The top-level repository layout shows a pnpm workspace with packages/ containing multiple sub-packages. The wrangler.toml and Cloudflare Pages deploy scripts indicate the hosted version at bangle.io is served from Cloudflare Pages, but the underlying notes stay on the user's machine regardless of where the application code is served from.
The Editor Technology: bangle.dev and ProseMirror
The README credits a sister project, bangle.dev (hosted at github.com/bangle-io/bangle.dev), as the editor framework underpinning Bangle.io's rich-text capabilities. The README describes bangle.dev as what enables building a powerful editor comparable to Notion or Dropbox Paper, and lists real-time collaboration as a capability this foundation provides.
ProseMirror is the underlying editor library that bangle.dev builds on, though this is inferred from the architecture rather than stated explicitly in the README text. The packages/ directory at the root of the monorepo contains the sub-packages that make up the editor and application logic, suggesting a modular structure where editor capabilities are separated from the storage and workspace management layers.
The package.json lists TypeScript 7.0.0-dev and React 19 as dependencies, with Vitest 4.1.10 for testing and Playwright for browser-driven end-to-end tests. The biome.json configures the Biome formatter and linter. The presence of Cloudflare Wrangler in the devDependencies confirms the Cloudflare Pages deployment for the hosted version.
Running Bangle.io Locally
The README documents two development commands for running the application locally. First, install dependencies:
pnpm installThen start a development instance:
pnpm startThis starts a development server at localhost:5173. For developers working with parallel git worktrees, the README notes an additional step to assign deterministic ports:
eval "$(node scripts/dev-ports.js --env)"This assigns consistent ports for the dev server, Storybook, preview server, and Playwright tests across worktrees so that multiple concurrent development sessions do not conflict. The README links to CONTRIBUTING.md for more detail. The application is built with a standard pnpm workspace and runs in any modern browser that supports the File System Access API for local file access.
Where Bangle.io Falls Short
The browser-local storage model is the central trade-off. Notes are stored on the machine where the browser is running; there is no synchronization, no cloud backup, and no way to access notes on a different device unless the underlying folder is also shared via some external mechanism such as a network drive or file sync service configured independently. The README does not document this as a planned feature or a current limitation; it describes the local model as the design intent.
Mobile support is not documented in the README. The application is described as a web app running in the browser, but the File System Access API is not supported in all mobile browsers, which limits the practical scope to desktop environments.
The README mentions that real-time collaboration is possible based on the bangle.dev foundation, but the hosted version at bangle.io does not document a built-in collaboration or sharing flow. The README says "Think Notion, but local only", which frames the lack of sharing and sync as a deliberate boundary, not an oversight.
Bangle.io vs. Obsidian
Obsidian is a popular local-first note-taking application that also stores notes as Markdown files. The key architectural difference is that Obsidian is a native desktop application, while Bangle.io runs entirely in the browser with no Electron or native component. The README flags "No Electron: heart for web and speed" as a design choice, meaning Bangle.io is a pure web application with no installer.
Obsidian has an established plugin ecosystem, sync and publish services, and a large community of users sharing workflows and templates. Bangle.io's README describes extensibility as a goal but notes that community extensions are coming soon, suggesting the ecosystem is still early. For users who need a mature plugin library or the Obsidian sync service, Obsidian is the more developed option. For users who want a web-only solution with no native app install and WYSIWYG editing over local Markdown, Bangle.io is a direct alternative.
License and Development Activity
Bangle.io is licensed under AGPL-3.0 or later. This copyleft license requires that anyone who distributes or runs a modified version of the software as a network service must make the source available. For personal or internal use this has no practical impact, but organizations building a product on top of Bangle.io should review the license terms.
The repository version in package.json is 1.0.1. The last push to the main branch was on 2026-09-20. The repository has no GitHub releases tagged. The monorepo uses pnpm workspaces and shows active development tooling including Biome, Knip for unused-export analysis, and vitest for testing. The presence of RANT.md alongside standard files suggests the maintainer documents design decisions and frustrations in writing, which can be useful context for contributors.
Editorial conclusion
Writers and developers who want a WYSIWYG editing experience over plain Markdown files stored on their own machine will find Bangle.io useful at bangle.io. Those who need notes synced across multiple devices, accessible from mobile, or integrated with a backend service will find that the browser-local-only storage model is a hard boundary: there is no sync mechanism documented in the README. The project is AGPL-3.0 licensed and under active development, with the last push on 2026-09-20.
Frequently asked questions
Where does Bangle.io store notes?
Bangle.io stores notes as Markdown files on the user's local filesystem, accessed through the browser's File System Access API. No data is stored on Bangle.io's servers.
Can I sync Bangle.io notes across multiple devices?
The README does not document a sync mechanism. Bangle.io is designed as a local-only application; notes live on the machine where you edit them. Syncing across devices would require an external file sync solution configured separately.
How do I run Bangle.io locally from source?
Run pnpm install to install dependencies, then pnpm start to launch the development server at localhost:5173. The README also documents eval "$(node scripts/dev-ports.js --env)" for developers working with parallel git worktrees.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/bangle-io-bangle-io)