{"id":15659249,"url":"https://github.com/suboptimaleng/graphite","last_synced_at":"2025-05-05T17:40:54.572Z","repository":{"id":110362556,"uuid":"373267867","full_name":"SuboptimalEng/graphite","owner":"SuboptimalEng","description":"✍️ A local-first Markdown note-taking app built with Vue.js, Tailwind CSS, and Electron.","archived":false,"fork":false,"pushed_at":"2023-07-12T22:12:41.000Z","size":9847,"stargazers_count":21,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T22:41:32.270Z","etag":null,"topics":["electron","javascript","local-first","markdown","markdown-editor","note-taking","productivity","productivity-app","tailwindcss","vuejs"],"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/SuboptimalEng.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}},"created_at":"2021-06-02T18:33:35.000Z","updated_at":"2024-07-26T11:17:30.000Z","dependencies_parsed_at":"2024-10-23T06:23:10.366Z","dependency_job_id":"18ce7c6e-ed43-4e09-836c-3bdc258cf277","html_url":"https://github.com/SuboptimalEng/graphite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuboptimalEng%2Fgraphite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuboptimalEng%2Fgraphite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuboptimalEng%2Fgraphite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuboptimalEng%2Fgraphite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuboptimalEng","download_url":"https://codeload.github.com/SuboptimalEng/graphite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252544225,"owners_count":21765310,"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","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":["electron","javascript","local-first","markdown","markdown-editor","note-taking","productivity","productivity-app","tailwindcss","vuejs"],"created_at":"2024-10-03T13:15:54.280Z","updated_at":"2025-05-05T17:40:54.531Z","avatar_url":"https://github.com/SuboptimalEng.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### ⚠️ This repo is for demo purposes only ⚠️\n\n### ⚠️ Don't use Graphite to edit local files ⚠️\n\n---\n\n# ✍️ Graphite - [Video Explanation](https://www.youtube.com/watch?v=Z8ufG29c0_A)\n\n### A local-first Markdown note-taking app built with Vue.js, Tailwind, and Electron.\n\n- In 2020, I quit my tech job to focus on creating web development tutorials on [YouTube](youtube.com/SuboptimalEng).\n- After spending a few months playing around with different technologies, I decided to focus on Vue + Tailwind.\n- In order to test how far I've come with the tech stack, I made Graphite, a local-first markdown note-taking app.\n- Note: I built Graphite in ~1 week so don't mind the code quality or lack of tests.\n\n### Demo GIF (takes a few seconds to load)\n\n\u003cimg src=\"/demo/_graphite.gif\" width=\"600\"\u003e\n\n### Images\n\n#### Dracula Theme\n\n\u003cimg src=\"/demo/00_dracula.png\" width=\"600\"\u003e\n\n#### Gruvbox Theme\n\n\u003cimg src=\"/demo/00_gruvbox.png\" width=\"600\"\u003e\n\n#### Monokai Theme\n\n\u003cimg src=\"/demo/00_monokai.png\" width=\"600\"\u003e\n\n#### File Search\n\n\u003cimg src=\"/demo/02_file_search.png\" width=\"600\"\u003e\n\n#### Markdown Preview\n\n\u003cimg src=\"/demo/03_md_preview.png\" width=\"600\"\u003e\n\n### 💻 Tech Stack\n\n- Stack\n  - [Vue.js](https://vuejs.org/)\n  - [Vuex](https://vuex.vuejs.org/) (state management)\n  - [Electron](https://www.electronjs.org/) (desktop apps ftw)\n  - [Tailwind CSS](https://tailwindcss.com/) (UI framework)\n- Libraries\n  - [Marked](https://marked.js.org/) (convert markdown to html)\n  - [CodeMirror](https://codemirror.net/) (builing your own editor is hard)\n  - [Hotkeys](https://github.com/jaywcjlove/hotkeys/) (makes keyboard shortcuts easy)\n\n### Feature Set\n\n- Basic\n  - Add/remove/rename/move files\n  - Markdown preview\n  - CodeMirror editor\n- Keybindings\n  - Open file search -\u003e `command + o`\n  - Close file search -\u003e `esc`\n  - Toggle sidebar -\u003e `command + b`\n- Configurable Themes with CSS Variables\n  - Dracula\n  - Gruvbox\n  - Monokai\n- TODO\n  - WYSIWYG\n  - Add/remove/rename/move folders\n  - Watch for file changes in Electron and persist changes automatically\n  - Actually release a desktop app for Mac/Windows/Linux\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuboptimaleng%2Fgraphite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuboptimaleng%2Fgraphite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuboptimaleng%2Fgraphite/lists"}