Skip to content

miladnia/technote

Repository files navigation

TechNote

TechNote — your Markdown notes, beautifully organized.

TechNote is a self-hosted, distraction-free Markdown-based note-taking app built with Flask and React. Lightweight, fast, and customizable — designed for developers who prefer to keep their notes in plain text and under their control.

TechNote preview

Features

  • 📂 Local Files, Your WayOpen any folder of Markdown (.md) notes directly, no import or sync required.
  • 🛡️ Own Your NotesFiles are standard Markdown, stored locally — no vendor lock-in, no surprises.
  • 🧭 Effortless NavigationBrowse folders, jump between notes, and navigate through headings with ease.
  • 🔍 Fast Full-Text SearchQuickly search across all your notes.
  • 🖥️ Responsive InterfaceClean, distraction-free design that works beautifully on desktop and mobile.

🚀 Get Started

Installation

git clone https://github.com/miladnia/technote.git
cd technote
make install

Requirements: Python >= 3.10, Node >= 18.20, and pipx.

Run the server

Start the TechNote server:

technote

By default, the server runs on http://localhost:8087.
Customize with:

technote --host=0.0.0.0 --port=PORT

Tip

To prevent the browser from opening automatically, add the --no-browser flag.

🖥️ Usage Tips

Use the Open Directory button in the sidebar to open a directory containing your Markdown (.md) files. If you don't have one yet, you can create an empty directory (e.g., ~/Documents/notes/tech_notes) and open it. Once opened, you’ll see an option next to the directory name to create new notes.

Tip

No Markdown notes yet? Click "Try with example notes" after launching!

✨ How It Works

  • Rendering: TechNote aims to keep everything explicit and transparent. It simply renders your existing Markdown files as HTML documents. No hidden metadata. No extra files. No surprises. You have full control over your content.
  • Caches: To improve performance, notes are cached as HTML and updated automatically when you edit them.
  • The database: TechNote uses a lightweight SQLite database to store minimal metadata — such as unique IDs and display names for notes — and the paths to selected directories. Deleting the database will not affect your notes.

🛠 Built With

  • Flask — Powers the back end with a lightweight and flexible Python framework.
  • Gunicorn — Serves the app efficiently in production environments.
  • SQLite — Stores meta data about notes and directories in a single lightweight file.
  • Pandoc — Converts Markdown into beautiful, structured HTML.
  • Pypandoc — A Python wrapper around Pandoc for seamless integration.
  • React — Enhances the web interface with dynamic, interactive components.
  • Bootstrap — Provides a clean, responsive foundation for the UI.

💡 Creators

Milad Abdollahnia

⚖️ License

TechNote is an open-source software licensed under the MIT License.
See the LICENSE file for details.