Inspiration
At home, I have a bunch of software that I use on a regular basis. One of those primary softwares would be a DNS Ad-Blocker, where I can block certain domains (cname), ips(A,AAAA) from contacting the internet. However, one of the primary issues with these platforms (such as Pi-Hole, Adguard, etc.) is that there is no good balance between technically capable and user-friendly. With Pi-Hole, for example, it is very user friendly. However, it is a little difficult to add more plugins beyond that. So for this project, we came up with the idea of DNSThing.
What it does
DNSThing is exactly what it sounds like. Its a DNS Thing, where it can download blocklists in a database, etc.
How we built it
Challenges we ran into
Overall, one of the primary things that was difficult was getting a working frontend working. We were able to get databases, file managment, and more working. However, we found it difficult to make an API that is callable from a browser.
Accomplishments that we're proud of
We feel accomplished for having a semi-working terminal interface (for managing the database, downloading files, and verifying the daemon.)
What we learned
Overall, we learned react.js, plenty of different C libraries (libjson, libcurl, libbson, libmongoc), and how to overall work with DNS platforms. Dnsmasq was a good idea for us, as it had plenty of different settings to manage what to block, how to manage via a DHCP server, and much more.
What's next for DNSThing
Overall, it would be interesting to develop a viable alternative to common local DNS solutions. I am interested in continuing this project into the future.
Log in or sign up for Devpost to join the conversation.