# Bangle.io: A Browser-Based WYSIWYG Notes App That Stores Files as Local Markdown

> 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.

**bangle-io/bangle-io** — A web only WYSIWYG note taking app that saves notes locally in markdown format. v2:.

- Repository: https://github.com/bangle-io/bangle-io
- Website: https://bangle.io
- Stars: 1,231 · Forks: 84
- Language: TypeScript
- License: AGPL-3.0
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/bangle-io-bangle-io

## 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:

```bash
pnpm install
```

Then start a development instance:

```bash
pnpm start
```

This starts a development server at localhost:5173. For developers working with parallel git worktrees, the README notes an additional step to assign deterministic ports:

```bash
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.

## 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.

## FAQ

### 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.

## Sources

- [Official documentation](https://bangle.io)
- [Official README](https://github.com/bangle-io/bangle-io#readme)
- [Project repository](https://github.com/bangle-io/bangle-io)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bangle-io-bangle-io
