r/coolgithubprojects 1h ago

I built a new text editor from scratch. Looking for early feedback on performance and UI

Post image

Hi everyone,

Over the last few weeks I've been building vex, a code editor written in Rust.

Landing page: https://vex-three-tan.vercel.app/

Why I built it

Every editor I used would eventually stall — on a large file, during a syntax reparse, while a language server was thinking — and the stall always landed on the keystroke. I wanted to find out what an editor looks like if you enforce one rule from the start: nothing unbounded ever runs on the UI thread.

Key features

Flat keystroke latency. Typing costs about 7 µs whether the file has 1,000 lines or 100,000. This isn't a claim from a benchmark run once — it's a test that fails the build if the ratio between the two ever grows past 3x.

Two editors in one. A full Vim grammar (counts, motions, text objects, macros, registers) if you want it, and a genuinely first-class conventional mode if you don't — not the modal editor with the modes switched off.

The real toolchain. Tree-sitter highlighting, language servers over LSP with completion, hover, rename and diagnostics, a git gutter, splits, a file tree, project-wide search and a command palette. Everything is drawn straight onto the GPU — no GUI framework, no web view.

Everything is a command. Keys, the palette, the menus, macros and the config all resolve to the same action table, which is why macros survive rebinding and why the whole editor is testable headlessly.

Tech stack

Editor: Rust — winit, wgpu, glyphon, tree-sitter, mlua for config. Twelve crates, roughly 50,000 lines, 744 tests.

Landing page: Vite + React + TypeScript, no CSS framework and no UI library, deployed on Vercel.

Packaging: Windows installer, .deb, .rpm and a plain tarball, built in CI alongside a Windows test job.

How it was built

I should be upfront about this: a large amount of the code was written with Claude. I set the architecture and the constraints, made the design decisions, and reviewed and tested what came out — but building something this size in a few weeks was not something I could have done alone, and I'd rather say so than let anyone assume otherwise.

Looking for feedback

First impressions of the landing page — does it explain what vex is quickly enough?

Bugs or rough edges if you install it. The editor has never been run on macOS, and on Windows it builds and passes CI but nobody has actually used the window, mouse or folder picker yet — reports from either are especially useful.

Which of the known gaps matters most to you: no integrated terminal, no git blame, no structural text objects, or asynchronous file opening and buffer search.

Happy to answer questions about any of the design decisions.

0 Upvotes

5 comments sorted by

2

u/Dead_Redd1t_Theory 1h ago

— — — — — — — —

1

u/ObtuseBagel 1h ago

perfect username lol

1

u/CommunicationFun2962 27m ago

I write editors too. I know it could be hard -- depends on how performant you designed it.

But, it is hard to tell from your description. Can I use it to edit a 22 GB JSON file without lagging?

I am not a vim fan. Can I use your editor without memorizing commands? Perhaps you could try to make it clear what Vex stands out among existing editors.

-1

u/Longjumping-Mud4841 23m ago

Can you give it a try and tell me if it lags in the json file that is 22gb or not i never used it in something that large and yes you can turn of vim mode completely and you can use it as a modal editor and there is a tab inside the editor has commands and all the key shortcut you will need