Introducing Adji – a Decisive and Joyful Internet browser

If you’re someone who spends a significant amount of time browsing the internet, you understand the importance of having a reliable, secure, and efficient web browser. Adji, a web browser named after my wife, aims to provide just that, with a touch of joy and decisiveness.

Image adji.png

The idea of developing Adji came from my desire to move away from the bloated web browsers. While popular browsers like Brave have their advantages, I found myself frustrated with the constant updates, sluggishness, and lack of customization options. I began to seek out a more minimalist alternative that would provide the essential features I need without the bloat.

Having used vimb, a lightweight and customizable browser that uses a minimalist interface and keyboard-driven navigation, I was convinced that I wanted a browser with keyboard-driven navigation. However, as much as I liked vimb, I found that it was still lacking in certain areas and too bloated for my taste.

That’s when I had the idea to create Adji. I wanted to develop a browser that took the core principles of minimalist browsers and expanded upon them, providing additional features and customization options to make the browsing experience even better. I wanted a browser that would be catered to my specific needs while still remaining simple and easy to use.

Having built smaller WebKit-based browsers using Python, I still felt the need for a better understanding of how to implement WebKit using C. Fortunately, I stumbled upon lariza, a simple web browser that uses GTK+ 3, GLib, and WebKit2GTK+. By studying the source code of lariza and the documentation for GTK, GLib, and WebKit2GTK, I was able to gain a deeper understanding of how to implement WebKit in C and how to build my own browser that met my specific needs. While Adji is unique in many ways, the inspiration and knowledge gained from examining other browser’s code and documentation was an essential part of its development.

Adji is designed to be user-friendly, fast, and customizable, making it an ideal choice for anyone who values simplicity and efficiency. The browser’s minimalist design allows for a distraction-free browsing experience, while its powerful features ensure that you have all the tools you need to surf the web efficiently.

Adji allows you to route every HTTP request through a designated proxy URI, which is especially useful when you want to keep your browsing activities anonymous. The browser also supports customizable environment variables, which you can set up using your ~/.profile file. This ensures that Adji works seamlessly with your system, providing a smooth browsing experience.

Adji’s interface is simple and intuitive, with easy-to-use navigation tools that allow you to move seamlessly from one page to another. The browser also supports multiple tabs, which makes it easy to manage and switch between multiple web pages at once.

The browser comes with built-in ad-blocker functionality using regex powered redirection, preventing annoying pop-ups and trackers from following your every move online. You can adjust the aggressiveness of your regex patterns according to your preferences. You can search the web for regex patterns specifically designed for blocking ads. Here is a sample of the patterns I use:

# ad and tracking blockers 
,.*(/|.)(?:page)?ad(s)?(/|.).*,, 
,.*(?:static)?.ads-.*,, 
,.*unityads.*,, 
,.*media.net.*,, 
,.*xiaomi.com.*,, 
,.*miui.com.*,, 
,.*hicloud.com.*,, 
,.*facebook.com.*,, 
,.*pinterest.com.*,, 
,.*tiktok.com.*,, 
,.*linkedin.com.*,, 
,.*google-analytics.com.*,, 
,.*googleanalytics.com.*,, 
,.*app-measurement.com.*,, 
,.*afs.googlesyndication.com.*,, 
,.*hotjar.(com|io).*,, 
,.*adcolony.com.*,, 
,.*mouseflow.com.*,, 
,.*yahoo.com.*,, 
,.*freshmarketer.com.*,, 
,.*bugsnag.com.*,, 
,.*apple.com.*,, 
,.*doubleclick.net.*,, 
,.*luckyorange.(com|net).*,, 
,.*stats.wp.com.*,, 
,ˆhttps?://ad.*,, 
,ˆhttps?://pagead2.*,, 
,ˆhttps?://advert.*,, 
,ˆhttps?://metrics.*,, 
,ˆhttps?://analytic.*,, 
,ˆhttps?://.*.advertising.com/,, 
,ˆhttps://d.reddit.com.*,, 
,ˆhttps://rereddit.com.*,, 
,ˆhttps://events.reddit(?:media)?.com.*,, 
,.*browser.sentry-cdn.com.*,, 
,.*app.getsentry.com.*,, 
,.*realme.com.*/,, 
,.*realmemobile.com.*/,, 
,.*yandex.*/,, 
,.*oneplus.*/,, 
,.*samsung.*/,, 

In conclusion, Adji’s a Decisive and Joyful Internet browser that lives up to its name, providing a browsing experience that is both decisive and joyful. Try Adji today and see for yourself. You can find the source code and more here.