MCPSERV.CLUB
Note Mark

Note Mark

Self-Hosted

Fast, minimal web‑based Markdown notes with sharing and asset support

Stale(65)
598stars
0views
Updated Jul 18, 2025
Note Mark screenshot 1
1 / 2

Overview

Discover what makes Note Mark powerful

Note Mark is a lightweight, web‑based Markdown editor designed for speed and minimalism. At its core it serves as a **single‑page application** that renders notes on the client side using WebAssembly (WASM) for GFM parsing, while a Go‑based backend handles persistence, authentication, and asset storage. The application exposes RESTful endpoints for CRUD operations on notes and notebooks, as well as OIDC integration points for enterprise SSO. Its architecture deliberately keeps the server stateless beyond a flat‑file storage layer, enabling effortless scaling through simple replication or container orchestration.

GFM Rendering

Flat‑File Storage

Asset Management

OIDC SSO

Overview

Note Mark is a lightweight, web‑based Markdown editor designed for speed and minimalism. At its core it serves as a single‑page application that renders notes on the client side using WebAssembly (WASM) for GFM parsing, while a Go‑based backend handles persistence, authentication, and asset storage. The application exposes RESTful endpoints for CRUD operations on notes and notebooks, as well as OIDC integration points for enterprise SSO. Its architecture deliberately keeps the server stateless beyond a flat‑file storage layer, enabling effortless scaling through simple replication or container orchestration.

Key Features & Technical Stack

  • GFM Rendering – The editor leverages a WASM‑compiled parser (likely go-micro or similar) to provide near‑native performance for Markdown rendering, eliminating the need for server‑side templating.
  • Flat‑File Storage – Notes are stored as individual Markdown files with metadata (tags, timestamps) in a directory hierarchy. This eliminates database migration overhead and simplifies backup or version control.
  • Asset Management – Binary uploads are stored in a dedicated directory, referenced by UUIDs. The backend serves these assets through secure routes that honor user permissions.
  • OIDC SSO – An OpenID Connect provider can be configured via environment variables; the app issues short‑lived JWTs for session management, keeping the authentication flow stateless.
  • Responsive UI – Built with modern CSS (likely Tailwind or similar) and JavaScript frameworks, the front end is fully mobile‑friendly and supports dark/light themes.

The stack consists of:

  • Backend: Go (1.22+), standard library HTTP server, WASM support for Markdown parsing.
  • Frontend: Vanilla JS or a lightweight framework (React/Vue) compiled to ES6, with WebAssembly modules for rendering.
  • Storage: Native filesystem; optional Docker volumes or NFS mounts for persistence.

Architecture & Deployment

The application is intentionally container‑first. A single Docker image contains the Go binary, static assets, and a small WASM runtime. Deploying on Kubernetes or Docker Compose requires only mounting a persistent volume for the notes directory and configuring OIDC endpoints. Because the backend is stateless, horizontal scaling is trivial: multiple replicas can share a common volume or use a distributed file system. For very large deployments, the flat‑file approach can be replaced with an object store (S3) by swapping the storage layer in code.

Integration & Extensibility

Developers can extend Note Mark through:

  • Webhooks – The API emits events on note creation, update, and deletion. These can trigger CI/CD pipelines or sync services.
  • Plugin System – A simple Go plugin interface allows loading custom processors (e.g., Markdown extensions, spell‑checkers) at runtime.
  • Custom APIs – The REST endpoints support standard CRUD operations, pagination via query parameters, and bulk imports. Authentication is handled via JWTs issued after OIDC login.
  • CLI Tools – A companion CLI (written in Go) can push local files to the server, enabling Git‑based workflows.

Developer Experience

The project follows clean Go conventions and provides comprehensive documentation at notemark.docs.enchantedcode.co.uk. Configuration is driven by environment variables, making it easy to integrate into CI/CD pipelines. The AGPL‑3.0 license ensures that any derivative work remains open source, encouraging community contributions. Active issue tracking on GitHub and a roadmap project board provide transparency into upcoming features.

Use Cases

  • Personal Knowledge Base – Lightweight, offline‑ready notes with optional cloud sync.
  • Team Documentation Hub – Shared notebooks with OIDC SSO for corporate environments.
  • Static Site Generator Input – Use the flat‑file storage as a source for static site generators like Hugo or Jekyll.
  • Educational Platforms – Deploy as a teaching aid for Markdown and web development, with the ability to host multiple notebooks per class.

Advantages Over Alternatives

  • Performance – WASM‑powered rendering outpaces traditional server‑side Markdown libraries.
  • Simplicity – No database schema migrations; a single directory holds all data, easing backups and version control.
  • Scalability – Stateless Go server scales horizontally; Docker images are lightweight (~20 MB).
  • Extensibility – Plugin hooks and webhooks allow integration with existing tooling without modifying core code.
  • Licensing – AGPL ensures any commercial use remains open, fostering a community of improvement.

Overall, Note Mark offers developers a fast, secure, and highly extensible note‑taking platform that can be deployed anywhere from a local laptop to a production Kubernetes cluster with minimal friction.

Open SourceReady to get started?

Join the community and start self-hosting Note Mark today