I’ve just done a bunch of work on making the actual backend for my web filter. I haven’t really tested it at all, but I’ve put in the basic layout, set up the DB (I decided on PostgreSQL because of the native enum and jsonb types) and created a bunch of code that matches new sites to predefined “signatures,” or patterns in known site types. For instance, WordPress sites typically send the “X-Powered-By” header, which can be recognised and the system will infer that the site is likely an article or blogging site.
I also decided to split the code into several different repositories, since having it all in one repository was beginning to get confusing.