I've been working on a system like this for while, before the buzzword web3 was created, but it's a complex question, but essentially regarding the software architecture you can always approach this to the MVC model ( model view controller), some mechanism to route network request to a function ( controller ) , some model for data ( Model) , and a way to generate the UI / interface / content ( views) .
All of this with the additional feature that identifier on the network must be decentralized using asymetric cryptography instead of centralized login/session, and some way to have also permission that can be stored on the blockchain and checked by any node. Then also a way to store file like images in a decentralized p2p way.
From there normally you already have a good fundation for a decentralised web.
Thanks for your feedback! But how web3 works in MVC model?