Esy Text Editor is a minimal, markdown-first desktop workspace built with React, Tailwind CSS, and Electron. It features a sleek monochrome design, multi-document tab controls, and real-time preview rendering.
- Multi-Tab File Management: Work on multiple documents simultaneously. Displays a dirty indicator for unsaved changes and prompts on close to prevent data loss.
- CodeMirror 6 Editor: Includes syntax highlighting, active line highlighting, custom gutters, formatting buttons, and smart line wrapping configurations.
- Debounced Live Preview: Side-by-side rendering using
react-markdownandremark-gfm, optimized with a 150ms keystroke debounce to prevent editing lag. - Find and Replace: Embedded in-editor search tool supporting match indexing, next/previous transitions, and standard replace/replace-all functions.
- Clean Titlebar & Theme Control: Frameless OS-style custom titlebar controls matching a toggleable dark/light monochrome stylesheet.
- Recent Files & History: Sidebar logs recently opened files with options to clear workspace history on demand.
- main.ts: Configures native window parameters, auto-updater handlers, and local filesystem IPC methods.
- preload.ts: Defines secure context isolation boundaries, exposing IPC channels to the renderer.
- App.tsx: Core React component orchestrating the sidebar, settings, tabs, search, and preview controls.
- styles.css: Outlines the monochrome stylesheet, root CSS variables, scrollbars, and markdown preview scaling rules.
Set up dependencies and start the hot-reloading web renderer:
npm install
npm run devTo run the application inside the Electron desktop shell:
npm run dev:desktopGenerate application platform binaries:
# 1. Re-generate icons from SVG source if changed
npm run generate:icons
# 2. Compile renderer code and main processes
npm run build
# 3. Package binaries for target OS (Windows, macOS, Linux)
npm run dist- Auto updates are configured using
electron-updaterpulling from GitHub Releases. - Packaged builds will automatically query the repository, download matching installers, and prompt users to reboot when updates are downloaded.
- Provide
GH_TOKENorGITHUB_TOKENin your environment to deploy release artifacts.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
- CHANGELOG.md
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
- SECURITY.md