Memos vs Flatnotes: Quick Notes Apps Compared

Quick Verdict

Memos and Flatnotes solve the same itch — quick note capture — but they disagree about what a note is. Memos treats notes like tweets: short, tagged, timestamped, searchable through an API. Flatnotes treats notes like files: each one is a plain .md file on disk, no database, no lock-in. Pick Memos if you want fast microblog-style capture with tagging and an API. Pick Flatnotes if you want your notes as portable markdown files you can open in any editor.

Overview

Memos is a lightweight, self-hosted memo hub built with Go and React. It looks and feels like a personal Twitter timeline — you type a thought, tag it, and it lands in a reverse-chronological feed. Behind the scenes, it stores everything in SQLite (or optionally PostgreSQL/MySQL) and exposes a full REST API. It has grown a sizable community since launching in 2022 and ships frequent updates.

Flatnotes is a no-frills markdown note-taking app built with Python (Flask). Its defining feature is the storage model: every note is a plain .md file in a folder. No database. No proprietary format. You can browse your notes with Flatnotes, edit them in VS Code, or sync them with Syncthing — they are just files. It includes both a WYSIWYG editor and a raw markdown editor, plus full-text search.

Feature Comparison

FeatureMemosFlatnotes
ArchitectureGo + React SPAPython (Flask) + JS frontend
Storage backendSQLite / PostgreSQL / MySQLFlat .md files on disk
Note formatShort-form memos (tweet-style)Full markdown documents
EditorInline composer with markdown shortcutsWYSIWYG + raw markdown toggle
TaggingBuilt-in tag system with #tag syntaxTag support via YAML frontmatter
SearchFull-text search + filter by tag/dateFull-text search across all notes
APIFull REST + gRPC APIBasic REST API
AuthenticationBuilt-in user accounts, SSO supportUsername/password, TOTP 2FA
Multi-userYes — multiple accounts with visibility controlsSingle-user by design
Mobile experienceResponsive PWA, third-party mobile appsResponsive web UI
AttachmentsImage and file uploadsNo native attachment support
Data portabilityExport required (JSON/API)Notes are already plain files — just copy the folder
LicenseMITMIT
Docker image size~80 MB~120 MB
RAM usage (idle)~50 MB~30 MB

Docker Compose Setup

Memos

Create a docker-compose.yml:

services:
  memos:
    image: neosmemo/memos:0.24.4
    container_name: memos
    ports:
      - "5230:5230"
    volumes:
      # Stores SQLite database, uploaded assets, and config
      - memos_data:/var/opt/memos
    environment:
      # Metric collection — disable if you prefer
      - MEMOS_METRIC=false
    restart: unless-stopped

volumes:
  memos_data:

Start it:

docker compose up -d

Open http://your-server:5230. The first user to register becomes the admin. That is the entire setup — Memos ships with an embedded SQLite database so there are no dependencies to configure.

Flatnotes

Create a docker-compose.yml:

services:
  flatnotes:
    image: dullage/flatnotes:5.4.2
    container_name: flatnotes
    ports:
      - "8080:8080"
    volumes:
      # Your notes live here as plain .md files
      - flatnotes_data:/data
    environment:
      # REQUIRED: set a username and password for login
      - FLATNOTES_AUTH_TYPE=password
      - FLATNOTES_USERNAME=admin
      - FLATNOTES_PASSWORD=changeme          # Change this immediately
      - FLATNOTES_SECRET_KEY=supersecretkey   # Used for session signing — generate a random string
    restart: unless-stopped

volumes:
  flatnotes_data:

Start it:

docker compose up -d

Open http://your-server:8080 and log in with the credentials you set. Notes are stored as .md files inside the /data volume. You can mount a host directory instead of a named volume if you want direct file access:

    volumes:
      - /path/to/your/notes:/data

This lets you edit notes from the command line, sync them with Syncthing, or back them up by copying a folder.

Installation Complexity

Both are single-container deployments with no external dependencies. Memos requires zero configuration — launch it and register. Flatnotes requires setting a username, password, and secret key via environment variables, but nothing else.

Edge to Memos on initial setup simplicity. Edge to Flatnotes on long-term simplicity — there is no database to maintain, back up, or migrate.

Data Portability

This is the most important difference between these two apps, and likely the deciding factor.

Flatnotes stores every note as a standalone .md file. There is no database, no proprietary schema, no export step. Your notes directory is your backup. You can:

  • Open notes in any text editor
  • Sync them across machines with Syncthing or rsync
  • Search them with grep
  • Version-control them with Git
  • Switch to a different app without any migration

Memos stores everything in a SQLite database (or PostgreSQL/MySQL if configured). To get your notes out, you use the API or the built-in export feature. The data is accessible, but it requires a deliberate export step — your notes are not individual files on disk.

If data portability and vendor independence matter to you, Flatnotes wins decisively. If you prefer the convenience of a database-backed app with richer querying, Memos is the stronger choice.

Performance and Resource Usage

Both apps are lightweight enough to run on a Raspberry Pi.

MetricMemosFlatnotes
Idle RAM~50 MB~30 MB
CPU at idleNegligibleNegligible
Disk footprint~80 MB (image) + DB size~120 MB (image) + note files
Startup time~2 seconds~3 seconds

Neither app will stress any hardware made in the last decade. Flatnotes uses slightly less memory. Memos has a smaller image. In practice, both are invisible on a server running anything else.

Community and Support

AspectMemosFlatnotes
GitHub stars36,000+1,300+
Release cadenceFrequent (multiple releases per month)Moderate (every few months)
Contributors100+Small team (primarily one developer)
DocumentationOfficial docs site, community guidesREADME + basic docs
Third-party ecosystemMobile apps, browser extensions, integrationsMinimal

Memos has a significantly larger community, faster development velocity, and a broader ecosystem of integrations. Flatnotes is a focused, stable tool maintained by a smaller team. If you want active development and community support, Memos leads. If you want simplicity and stability, Flatnotes delivers.

Use Cases

Choose Memos If…

  • You want a personal Twitter-style feed for capturing thoughts, links, and snippets
  • You need multi-user support with visibility controls (public/private memos)
  • You want an API to integrate with other tools or automation workflows
  • You prefer tagging and filtering over organizing notes into folders
  • You want image and file attachment support
  • You want a mobile-friendly PWA or third-party app

Choose Flatnotes If…

  • You want your notes stored as plain markdown files with zero lock-in
  • You already have a workflow around .md files (VS Code, Obsidian vault, Git)
  • You want to sync notes with Syncthing, rsync, or any file-based tool
  • You prefer a single-user, no-frills experience
  • You want the simplest possible backup strategy (copy a folder)
  • You care more about long-term portability than features

Final Verdict

These apps target different philosophies more than different use cases. Memos is a capture tool — optimized for speed, short-form input, and retrieval through tags and search. It feels like a private microblog. Flatnotes is a file-first note tool — optimized for portability, transparency, and integration with file-based workflows.

For most people who just want a quick self-hosted scratchpad, Memos is the better experience. The timeline interface is fast, tagging is intuitive, and the API opens up automation possibilities. The database backend is a reasonable trade-off for the richer feature set.

If you have strong opinions about owning your data as plain files, Flatnotes is the obvious pick. No export needed, no migration headaches, no database to corrupt. Your notes are files. That simplicity is worth more than any feature comparison table.

Pick the one that matches how you think about notes — as entries in a feed, or as files in a folder.