Have you ever wanted your Neovim rendered at a glorious 120FPS? Now you can!
https://github.com/elcritch/neonim
All in a tiny 1.3M binary (macos, release mode). However, don't be surprised if it crashes. You're living on the cutting edge my dude. PRs welcome!

v0.5.10 now supports system font paths thanks to support added in FigDraw. Meaning you can run it outside the project folder now!
I added binaries. Of course MacOS didn't want to run it, so there's work to be done there. But there's builds for Linux, MacOS, and Windows now.
It now also just prints a warning for missing character glyphs rather than crashing. I've been able to move development to using Neonim itself.
build is still a bit broken for me. I'm on Manjaro and have installed basic Vulkan libs. system info:
$ nim --version
Nim Compiler Version 2.2.6 [Linux: amd64]
Compiled at 2025-10-31
Copyright (c) 2006-2025 by Andreas Rumpf
git hash: ab00c56904e3126ad826bb520d243513a139436a
active boot switches: -d:release
$ nim build
Hint: used config file '/home/luci/.asdf/installs/nim/2.2.6/config/nim.cfg' [Conf]
Hint: used config file '/home/luci/.asdf/installs/nim/2.2.6/config/config.nims' [Conf]
Hint: used config file '/home/luci/projects/nim/neonim/nim.cfg' [Conf]
Hint: used config file '/home/luci/projects/nim/neonim/config.nims' [Conf]
.....................................................................................................................................................................................................................................................................
FigNode SIZE: 232
....................
/home/luci/projects/nim/neonim/deps/figdraw.elcritch.github.com/src/figdraw/vulkan/vulkan_context.nim(7, 11)
Error: cannot open file: pkg/vulkan
stack trace: (most recent call last)
/home/luci/.asdf/installs/nim/2.2.6/lib/system/nimscript.nim(427, 18)
/home/luci/projects/nim/neonim/config.nims(6, 7) buildTask
/home/luci/.asdf/installs/nim/2.2.6/lib/system/nimscript.nim(264, 7) exec
/home/luci/.asdf/installs/nim/2.2.6/lib/system/nimscript.nim(264, 7) Error: unhandled exception: FAILED: nim c -o:bin/neonim src/neonim [OSError]nah, let's blame asdf and the way it handles its Nim version/release. Got this error run-time. Will halt spending too much time now:
/home/luci/projects/nim/neonim/src/neonim.nim(449) neonim
/home/luci/projects/nim/neonim/src/neonim.nim(437) runWindyFigdrawGui
/home/luci/projects/nim/neonim/src/neonim.nim(431) runWindyFigdrawGuiWithTest
/home/luci/projects/nim/neonim/src/neonim.nim(292) stepGui
/home/luci/projects/nim/neonim/src/neonim.nim(140) redrawGui
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/figrender.nim(529) renderFrame
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/figrender.nim(509) renderRoot
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/figrender.nim(496) render
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/figrender.nim(467) render
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/figrender.nim(151) renderText
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/vulkan/vulkan_context.nim(2035) drawImage
/home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/vulkan/vulkan_context.nim(1953) drawUvRect
/home/luci/.asdf/installs/nim/2.2.6/lib/std/assertions.nim(41) failedAssertImpl
/home/luci/.asdf/installs/nim/2.2.6/lib/std/assertions.nim(36) raiseAssert
/home/luci/.asdf/installs/nim/2.2.6/lib/system/fatal.nim(53) sysFatal
Error: unhandled exception: /home/luci/projects/nim/neonim/deps/figdraw/src/figdraw/vulkan/vulkan_context.nim(1953, 3) `ctx.quadCount < ctx.maxQuads` [AssertionDefect] First off, great project! Huge thank you for putting it together.
Trying to build it locally (Nim 2.2.6, Nimble 0.20.1, Windows 11), getting this error:
Downloading https://github.com/elcritch/figdraw using git
Building neonim/neonim.exe using c backend
Info: compiling nim package using C:\Users\moigagoo\AppData\Local\grabnim\current\bin\nim.exe
Nim Output FigNode SIZE: 232
... C:\Users\moigagoo\.nimble\pkgs2\figdraw-0.18.8-735ab8c77b92aca03ca75604fe81873cbb67ff2c\figdraw\vulkan\vulkan_context.nim(289, 21) Error: expression cannot be cast to 'HINSTANCE'
Tip: 682 messages have been suppressed, use --verbose to show them.
nimble.nim(419) buildFromDir
Is it not supposed to be built with Nimble? Or am I missing something?
I tried reproducing your failure and haven't been able to. Updating the CI tests to force compiling with Vulkan also didn't reproduce it.
It's possible Nimble is using an outdated repo. You could try building it with Atlas and seeing it it works (just make sure to update your Atlas first).
Neonim has become a daily driver for me! Mostly on MacOS though.
On Linux/FreeBSD while Neonim runs there's annoying gotchas with Windy text input and not picking up user prefs. I'm porting Neonim to work with Siwin as well. Sigh both Windy and Siwin have issues on Linux/FreeBSD but Siwin supports Wayland as well. Also Siwin now works well on MacOS using Darwin. Surfer seems Wayland only, so I haven't tried it.
... C:Usersmoigagoo.nimblepkgs2figdraw-0.18.8-735ab8c77b92aca03ca75604fe81873cbb67ff2cfigdrawvulkanvulkan_context.nim(289, 21) Error: expression cannot be cast to 'HINSTANCE'
Vulkan is a ... fun backend. It's incredibly flexible and powerful, and also a pain. I've been doing some work improving Vulkan support in FigDraw and Siwin. Seems Vulkan is picky and has multiple incompatible configurations. It's likely this is the case here. I have access to a Windows box so I'll have to do some testing with it.
However if anyone has Windows and some Codex/GPT5 or Claude Code credits it's pretty easy to get them fixing up issues. Essentially use atlas to install, then prompt run 'nim test' and fix it and they'll dig in. ;)