DumbPad — Self-Hosted, Open-Source

DumbPad is a minimal, modern notepad application built for speed and simplicity. It runs with zero fuss and stores notes as plain files. Key features - Ultra-simple, minimal writing UI with auto-save (near real-time). - Dark/light mode with system preference support. - File-based storage: notes are stored as plain `.txt` files and a `notepads.json` index. - Enhanced Markdown: alert blocks, extended tables, collapsible content, and code syntax highlighting. - Direct notepad linking and copyable shareable URLs. - Fuzzy search across filenames and contents. Why DumbPad? DumbPad is for people who want a distraction-free place to jot things down quick notes, snippets, shopping lists, or code ideas without the overhead of accounts or heavy tooling. It's small, fast, and built to keep your notes available and portable.

DumbPad is commonly used as a self-hosted alternative to Notion, Apple Notes. Replacing a SaaS tool with a self-hosted equivalent lets you avoid recurring subscription fees, keep full control of your data, and continue working even when the original vendor changes pricing, ships limits, or shuts down.

License: GPL-3.0. Built with: JavaScript, CSS, HTML, Dockerfile. Website: https://github.com/DumbWareio/DumbPad. Source: https://github.com/DumbWareio/DumbPad.

Features

Installation

1. Go to http://localhost:3000 2. Start typing - Your notes auto-save 3. Marvel at how dumb easy this was > **⚠️ Note**: If the container crashes with permission errors, see [Docker Permissions](#upgrading-from-previous-versions) section below. ### Option 2: Docker Compose (For Dummies who like customizing) Create a `docker-compose.yml` file: ```yaml services: dumbpad: image: dumbwareio/dumbpad:latest container_name: dumbpad restart: unless-stopped ports: - ${DUMBPAD_PORT:-3000}:3000 volumes: - ${DUMBPAD_DATA_PATH:-./data}:/app/data environment: # The title shown in the web interface SITE_TITLE: ${DUMBPAD_SITE_TITLE:-DumbPad} # Optional PIN protection (leave empty to disable) DUMBPAD_PIN: ${DUMBPAD_PIN:-} # The base URL for the application BASE_URL: ${DUMBPAD_BASE_URL:-http://localhost:3000} # Use ALLOWED_ORIGINS below to restrict cors to specific origins # (OPTIONAL) # Usage: Comma-separated list of urls: http://localhost:port,http://internalip:port,https://base.proxy.tld,https://authprovider.domain.tld # ALLOWED_ORIGINS: ${DUMBPAD_ALLOWED_ORIGINS:-http://localhost:3000} # Comment out to allow all origins (*) # LOCKOUT_TIME: ${DUMBPAD_LOCK_TIME:-15} # Customize pin lockout time (if empty, defaults to 15 in minutes) # MAX_ATTEMPTS: ${DUMBPAD_MAX_ATTEMPTS:-5} # Customize pin max attempts (if empty, defaults to 5) # COOKIE_MAX_AGE: ${DUMBPAD_COOKIE_MAX_AGE:-24} # Customize maximum age of cookies primarily used for pin verification (default 24) in hours # PAGE_HISTORY_COOKIE_AGE: ${DUMBPAD_PAGE_HISTORY_COOKIE_AGE:-365} # Customize age of cookie to show the last notepad opened (default 365 | max 400) in days - shows default notepad on load if expired # MARKDOWN CODE SYNTAX HIGHLIGHTING (only use below if you want to restrict to specific languages): # By default, DumbPad includes support for all ~180 languages supported by highlight.js. # view entire list and usage in /docs/MARKDOWN_SYNTAX_HIGHLIGHTING_USAGE.md # HIGHLIGHT_LANGUAGES=c,csharp,css,dockerfile,go,html,java,javascript,json,kotlin,markdown,perl,php,python,ruby,sql,swift,typescript,xml,yaml

Why self-host DumbPad

Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.

What hardware do you need

Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through DumbPad. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.

DumbPad replaces

Where to go from here