The API-First Note-Taking Solution: Why Engineers are Switching to Memos
Memos is essentially a "lightweight self-hosted micro-blogging" platform. Think of it as a private, open-source version of Twitter (X) or Google Keep, but built with a modern tech stack that we love
React, Go, and SQLite.
Here is a breakdown of why this belongs in your dev toolkit.
From an engineering perspective, Memos isn't just a note app; it's an elegant solution to "information fragmentation."
Privacy & Ownership
Since it's self-hosted, your proprietary logic or API keys (though you should still be careful!) stay on your hardware.
The Tech Stack
It uses Go (Golang) for the backend, making it incredibly fast and memory-efficient. The frontend is a snappy React SPA (Single Page Application).
API-First Design
It has a RESTful API. You can programmatically send notes to your Memos from your own scripts or CI/CD pipelines.
Markdown Support
It handles code blocks and syntax highlighting natively.
As engineers, we prefer containers. The easiest way to deploy Memos is using Docker Compose. This ensures your data is persisted and the environment is isolated.
mkdir memos && cd memos
services:
memos:
image: neosmemo/memos:latest
container_name: memos
ports:
- "5230:5230"
volumes:
- ~/.memos/:/var/opt/memos
restart: always
docker-compose up -d
Now, just hit localhost:5230 in your browser, and you're the admin!
Since Memos has an API, you can automate your note-taking. Let’s say you want to send a summary of your Git commits to your Memos daily.
Here is a simple Node.js snippet using the Memos API to post a new "memo"
const axios = require('axios');
const MEMOS_API_URL = "http://your-server-ip:5230/api/v1/memo";
const ACCESS_TOKEN = "your_access_token_here"; // Generated in Settings -> Members
async function postDevNote(content) {
try {
const response = await axios.post(MEMOS_API_URL, {
content: content,
visibility: "PRIVATE" // Keep it for your eyes only
}, {
headers: { 'Authorization': `Bearer ${ACCESS_TOKEN}` }
});
console.log("Memo saved successfully!");
} catch (error) {
console.error("Error saving memo:", error.message);
}
}
postDevNote(" Fixed the race condition in the auth service. Note: Check the mutex logic again tomorrow.");
Memos is perfect if you want a low-friction way to document your journey without the "bloat" of Notion or the "closed-off" nature of Apple Notes. Because it’s open-source, you can even contribute to the codebase if you find a bug or want a new feature!