{"id":29980973,"url":"https://github.com/miladnia/technote","last_synced_at":"2026-04-05T23:03:15.340Z","repository":{"id":280671381,"uuid":"912511057","full_name":"miladnia/technote","owner":"miladnia","description":"Self-hosted, Markdown-based note-taking app built with Flask and React","archived":false,"fork":false,"pushed_at":"2025-07-30T17:15:37.000Z","size":1045,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T20:15:46.762Z","etag":null,"topics":["flask","markdown","markdown-editor","markdown-previewer","markdown-to-html","markdown-viewer","note-taking","note-taking-app","notes","python","python3","react","reactjs","self-hosted","web-app"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miladnia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-05T19:17:20.000Z","updated_at":"2025-07-30T17:44:19.000Z","dependencies_parsed_at":"2025-03-04T18:19:42.512Z","dependency_job_id":"e09dc0bc-0c73-4969-97a3-9efc20eae7ff","html_url":"https://github.com/miladnia/technote","commit_stats":null,"previous_names":["miladnia/technote"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/miladnia/technote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miladnia%2Ftechnote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miladnia%2Ftechnote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miladnia%2Ftechnote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miladnia%2Ftechnote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miladnia","download_url":"https://codeload.github.com/miladnia/technote/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miladnia%2Ftechnote/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273948115,"owners_count":25196393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","markdown","markdown-editor","markdown-previewer","markdown-to-html","markdown-viewer","note-taking","note-taking-app","notes","python","python3","react","reactjs","self-hosted","web-app"],"created_at":"2025-08-04T16:00:33.019Z","updated_at":"2025-12-30T21:29:01.027Z","avatar_url":"https://github.com/miladnia.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TechNote\n\n**TechNote** — your Markdown notes, beautifully organized.\n\nTechNote 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.\n\n![TechNote preview](./docs/technote_note_preview.png)\n\n### Features\n\n- 📂 **Local Files, Your Way** — _Open any folder of Markdown (`.md`) notes directly, no import or sync required._\n- 🛡️ **Own Your Notes** — _Files are standard Markdown, stored locally — no vendor lock-in, no surprises._\n- 🧭 **Effortless Navigation** — _Browse folders, jump between notes, and navigate through headings with ease._\n- 🔍 **Fast Full-Text Search** — _Quickly search across all your notes._\n- 🖥️ **Responsive Interface** — _Clean, distraction-free design that works beautifully on desktop and mobile._\n\n## 🚀 Get Started\n\n### Installation\n\n```bash\ngit clone https://github.com/miladnia/technote.git\ncd technote\nmake install\n```\n\n\u003e **Requirements:** Python `\u003e= 3.10`, Node `\u003e= 18.20`, and pipx.\n\n### Run the server\n\nStart the TechNote server:\n\n```bash\ntechnote\n```\n\nBy default, the server runs on `http://localhost:8087`.  \nCustomize with:\n\n```bash\ntechnote --host=0.0.0.0 --port=PORT\n```\n\n\u003e [!TIP]\n\u003e To prevent the browser from opening automatically, add the `--no-browser` flag.\n\n\n## 🖥️ Usage Tips\n\nUse 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.\n\n\u003e [!TIP]\n\u003e No Markdown notes yet? Click **\"Try with example notes\"** after launching!\n\n\n## ✨ How It Works\n\n- **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.\n- **Caches:** To improve performance, notes are cached as HTML and updated automatically when you edit them.\n- **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.\n\n\n## 🛠 Built With\n\n- [**Flask**][flask] — Powers the back end with a lightweight and flexible Python framework.\n- [**Gunicorn**][gunicorn] — Serves the app efficiently in production environments.\n- [**SQLite**][sqlite] — Stores meta data about notes and directories in a single lightweight file.\n- [**Pandoc**][pandoc] — Converts Markdown into beautiful, structured HTML.\n- [**Pypandoc**][pypandoc] — A Python wrapper around Pandoc for seamless integration.\n- [**React**][react] — Enhances the web interface with dynamic, interactive components.\n- [**Bootstrap**][bootstrap] — Provides a clean, responsive foundation for the UI.\n\n\n## 💡 Creators\n\nMilad Abdollahnia\n\n- \u003chttps://github.com/miladnia\u003e\n- \u003chttps://twitter.com/xmiladnia\u003e\n\n\n## ⚖️ License\n\nTechNote is an open-source software licensed under the [MIT License][mit].  \nSee the [LICENSE](./LICENSE) file for details.\n\n\r\n[mit]: https://opensource.org/licenses/MIT\r\n[flask]: https://github.com/pallets/flask\r\n[gunicorn]: https://github.com/benoitc/gunicorn\r\n[react]: https://github.com/facebook/react\r\n[pandoc]: https://github.com/jgm/pandoc\r\n[pypandoc]: https://github.com/JessicaTegner/pypandoc\r\n[pandoc_install]: https://pypi.org/project/pypandoc/#Installing-pandoc\r\n[sqlite]: https://github.com/sqlite/sqlite\r\n[bootstrap]: https://github.com/twbs/bootstrap/\r\n[make]: https://www.gnu.org/software/make/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiladnia%2Ftechnote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiladnia%2Ftechnote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiladnia%2Ftechnote/lists"}