Alternatives to surf
A minimal WebKit2GTK web browser from the suckless project, without tabs and configured at compile time. The listings below can replace it for an important use case. Each note says what changes if you switch.
The original
surf
A minimal WebKit2GTK web browser from the suckless project, without tabs and configured at compile time.
Replacements
Listings that take over the same core job as surf.
vimb
A lightweight, keyboard-driven web browser with Vim-style modes, built on WebKitGTK and GTK4.
vimb is also a keyboard-driven WebKitGTK browser, now on GTK4, but adds Vim-style modes, runtime-changeable settings and native tabs, and is open source.
Luakit
A keyboard-driven web browser built on WebKitGTK and GTK, configured and extended with Lua.
Luakit stays on WebKitGTK for Linux but adds tabs, link hints, an ad blocker and runtime configuration in Lua instead of recompiling the source.
BadWolf
A minimalist, privacy-oriented web browser built on WebKitGTK with JavaScript off by default.
BadWolf is a small WebKitGTK browser with JavaScript off by default and isolated ephemeral sessions per tab, and like surf is built from source for Linux-style desktops.
qutebrowser
A keyboard-driven browser with vim-style bindings and almost no interface to click on.
qutebrowser is a GPL-3.0 keyboard-driven browser on QtWebEngine with vim bindings and a Python config file, and runs on Windows and macOS as well as Linux.
GNOME Web
GNOME's browser, built on WebKitGTK, formerly known as Epiphany.
GNOME Web also uses WebKitGTK on Linux but offers a plain graphical interface with tabs and GNOME integration instead of compile-time configuration.
Nyxt
Keyboard-first browser configured and extended in Common Lisp.
Nyxt is a keyboard-first browser configured live in Common Lisp with a fuzzy command prompt, on macOS and Linux, though web compatibility trails mainstream browsers.
Vieb
A Vim-inspired Electron desktop browser built for keyboard navigation, with local ad blocking and strict permissions.
Vieb is an open-source Electron browser with Vim-style keybindings, a built-in ad blocker and window splitting, configured through a viebrc file rather than compiling.
Dillo
Browse lightweight pages with a small graphical browser.
Dillo is a small GPL-3.0 graphical browser with modest resource needs on Linux and macOS, though modern web applications may need a more complete engine.
Also worth comparing
These listings name surf as their own alternative, so the relationship runs both ways.
Glide
A keyboard-focused, extensible web browser configured in TypeScript, currently in alpha.
surf is a minimal WebKit2GTK browser from suckless with no built-in tabs, configured by editing and recompiling the source, and it targets Linux.
NetSurf
A small, fast open-source web browser written in C with its own layout engine.
surf is a minimal suckless browser on WebKit2GTK with no tabs, configured by editing and recompiling the source on Linux.
Similar software
Related functionality, not a direct replacement.