Using a browser would be quite heavy, especially for one of those meme sites that handle a rather large flow of new content.
It’s not Python 2.
The thing is Google has a big search monopoly and they do like to have Search Console and Analytics plugged in for a website they are indexing.
Not sure if monetization by ads will work no matter the source (aside from very aggressive and very clickbaity ads?). If you want some reliable monetization it would have to be some sort of sponsored cooperation, merchandise, or services.
PHP seems to be getting a lot of positives lately, especially Laravel. Many years ago I moved from PHP to Python and Django to now also use a few other Python frameworks like Flask as well. On the frontend, I’ve used Ember.js for two big SPA dashboards and also Vue 3 for WebSockets and API-based dashboard. With the dashboards bias, I would not pick anything that doesn’t have a good data layer :)
Recently I’m also into static site generators like Astro and 11ty which are kinds of frameworks that generate a static site but the effect can be quite lively edited website through various git based headless CMS systems.
Why do you want to store them? I used socket.io in one app and I used channels to manage who gets what but disconnects/reconnects would happen often so I didn’t use the connection directly, but emitting messages to clients currently subscribed to a given channel.
Agents log into the dashboard - connect and the server subscribes them to the “agents” channel to which ticket list items messages are emitted. Clicks on a ticket - that’s a ticket_id unique channel to which he gets subscribed. Any disconnect/reconnect would create a new connection, the old one is dropped and the agent is once again subscribed to these channels based on where in the dashboard he is in.
% string formatting is still valid and used in Python 3. It’s not removed or deprecated for now.