evi
Blog

Announcement·Evi team·

Hello, Evi

Why we built another Discord client mod, and what we wanted it to get right from day one.

Evi started with a simple annoyance: Discord got slow. With hundreds of servers, scrolling stuttered and typing felt heavy. Existing mods could fix things, but every fix came with trade-offs, and too many of them broke after Discord updates.

Fast first

Evi’s first plugins were about feel, and every one of them was measured on a real account before it shipped.

Slowest frames scrolling the server list (p95)
6.7 → 3.7 ms
Compositor layers in the server list
132 → 39
Worst frames while typing (p90)
40 → 20 ms

Fast Lists

With 185 servers, Discord keeps every one of them fully rendered, even the ones far off screen. Fast Lists tells the browser to skip the work for rows that are far out of view. They aren’t removed or emptied, just not drawn, so nothing jumps and nothing goes missing.

On screen
Drawn as usual.
Within the render distance
Two screens either way by default, drawn so scrolling never shows a gap.
Far away
Still there, same size, never removed. The browser just skips its style, layout and paint.
Rows far outside the view keep their place and size, but the browser skips their style, layout and paint.

It doesn’t rewrite any of Discord’s code, either. It works from the list markup Discord already has, so an update can’t silently break it.

Smooth Typing

Every keystroke in Discord saves your draft, and every save wakes up parts of the app that don’t need to know yet. Smooth Typing waits a quarter of a second and saves once. The text box itself is untouched, so what you type shows up exactly as fast as before; the rest of Discord just stops redrawing along with it.

Yours, live

Plugins and themes in Evi apply the moment you save them. No restart, even for plugins that rewrite parts of Discord’s own code.

01
You save a plugin
02
Evi stops it and undoes everything it added
03
Loads the new code and starts it again

When a plugin changes how a piece of Discord works, Evi re-runs just that piece with the new version and swaps it in, so everything that uses it switches over at once. The few parts of Discord that can’t safely run twice get a clear “Reload to apply” instead of a half-applied change.

Hard to break

Discord updates all the time, and each update can move the code a plugin depends on. After every update, Evi checks each of those changes and tells you which ones still fit:

12 source patches, 1 needs attentionCheck again
AppliedRunning as written.
WaitingIts code loads later, when you open that part of Discord.
Partly appliedSome replacements matched nothing.
BrokenNo code matches anymore. Discord probably changed it.
The patch health check in Evi’s settings. Anything that no longer matches is flagged instead of failing silently.

It also starts in safe mode when something crashes, and uninstalls cleanly. Here’s how that works. You should never have to wonder what it did to your Discord.

Try it

Evi is a single program. Run it to install, and again whenever you want the latest version:

Terminal

evi install     # adds Evi to Discord (stable by default)
evi update      # checks for a new Evi and verifies the download
evi uninstall   # puts Discord back exactly as it was

Once it’s in, press Ctrl+Shift+D in Discord to open Evi’s settings. It’s free, it’s open source, and it’s just getting started. Give it a try.

Next post

Evi 1.0