{"id":22489690,"url":"https://github.com/nico-martin/markdown-editor","last_synced_at":"2025-06-30T02:37:50.394Z","repository":{"id":39564437,"uuid":"319973688","full_name":"nico-martin/markdown-editor","owner":"nico-martin","description":"An on-device AI powered markdown editor web app based on the File System Access API","archived":false,"fork":false,"pushed_at":"2024-12-02T20:47:11.000Z","size":5574,"stargazers_count":43,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-02T21:34:49.889Z","etag":null,"topics":["ai","filesystemaccess","postcss","preact","pwa","webai","webllm","workbox"],"latest_commit_sha":null,"homepage":"https://md.nico.dev/","language":"TypeScript","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/nico-martin.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":"2020-12-09T14:00:49.000Z","updated_at":"2024-12-02T20:47:16.000Z","dependencies_parsed_at":"2022-09-08T06:11:17.835Z","dependency_job_id":"654e0f71-3b1d-47eb-9ebf-1f9b2d36b3e5","html_url":"https://github.com/nico-martin/markdown-editor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nico-martin/markdown-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nico-martin%2Fmarkdown-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nico-martin%2Fmarkdown-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nico-martin%2Fmarkdown-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nico-martin%2Fmarkdown-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nico-martin","download_url":"https://codeload.github.com/nico-martin/markdown-editor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nico-martin%2Fmarkdown-editor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262700271,"owners_count":23350445,"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":["ai","filesystemaccess","postcss","preact","pwa","webai","webllm","workbox"],"created_at":"2024-12-06T17:20:25.857Z","updated_at":"2025-06-30T02:37:50.365Z","avatar_url":"https://github.com/nico-martin.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# \\[md.edit\\]\n\n\\[md.edit\\] is a web based markdown editor that uses modern progressive web app features to provide a great, cross-platform editing experience.\n\n[md.nico.dev](https://md.nico.dev/)\n\n## File System Access API\n\nThe main goal of this project is to showcase the **[File System Access API](https://wicg.github.io/file-system-access/)**.\n\nThis API allows a web app to access local files. That means files can be opened and saved directly in the browser.\n\n[https://web.dev/file-system-access/](https://web.dev/file-system-access/)\n\n## File Handling\nTo make it even more convenient to open and save files, this app also uses the **[File Handling API](https://web.dev/file-handling/)**. If installed the app can register itself as a handler for markdown files. That means markdown files can be opened directly in the app from the file explorer.\n\n## Installable PWA\nThis webapp is a [Progressive Web App](https://web.dev/progressive-web-apps/) and can be installed on your device.  \nIt uses a webapp manifest (generated by [Vite PWA Plugin](https://vite-pwa-org.netlify.app/)) to present itself as an installable PWA to the browser.\n\n## Offline support\nIt also comes with a service worker (generated by [WorkboxJS](https://developer.chrome.com/docs/workbox/)) to cache all assets and make the app available offline.  \nFurthermore, all downloaded audio files are cached and can be used offline.\n\n## AI\nThis app uses a couple of AI models to provide additional features. All the models run directly in the browser and don't require any server communication.\n\n### Translation\nSections of the markdown can be translated to other languages using AI models.  \nIt therefore uses [Transformers.js](https://huggingface.co/docs/transformers.js/index) to run the model in a web worker and then pipes the translated output back to the editor.\n\n### Speech to Text\nInstead of writing paragraphs yourself, md.edit offers a speech to text feature. You can now record whatever you want to say and the app will transcribe it. It uses different versions of [https://huggingface.co/openai/whisper-base](Whisper) that again run in a web worker using [Transformers.js](https://huggingface.co/docs/transformers.js/index).\n\n### Text generation / LLM\nIn addition to the smaller translation and speech to text models, the app also uses large language models to generate or improve sections of the file.\n\nmd.edit therefore uses LLMs, like the [Mistral 7B Instruct](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2), compiled for the web using [MLC LLM](https://github.com/mlc-ai/mlc-llm). Everything runs in a web worker while the calculations are done on the GPU using [WebGPU](https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API).\n\nSpecial thanks to the team behind [WebLLM](https://github.com/mlc-ai/web-llm) where most of my MLC-adapter is based on.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnico-martin%2Fmarkdown-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnico-martin%2Fmarkdown-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnico-martin%2Fmarkdown-editor/lists"}