I just made a thread about this on /b/ but it got quickly deleted for some reason...
I've looked into OrbitDB and I think it's very possible.
Here's a general outline of how I think it'd work.
>Post: database with fields: name, body, files, email, etc. file simply points to another docstore database where the actual file is.
>Thread: A list database containing references to posts. Anyone can submit a new post to a thread. Threads are owned by the OP of the thread, and there is some form of consensus or standardized format on the front-end that only loads "valid" posts, meaning it would just not load or display any posts with invalid fields. This spam filter/curation mechanism has to exist outside the "site" itself and instead be something like an agreed-upon standardized script. This is the trickiest part of the whole thing I think.
>Boards: when a new post is made, if it's its own thread (not a reply), it can be submitted to a board, which is a database pointing to a list of threads. Different users (keys) can be given moderation access to different boards, with the ability to delete threads from the board database.
That's my general idea, but things relating to spam prevention and moderation have to be hashed out more.