@Joykiller Not sure if you're around anymore but I thought I'd respond anyway.
The problem with maintaining a plugin and theme directory is the maintenance aspect. We simply don't have the time to make sure everything is compatible, especially since every plugin created is a community contribution.
So we automate. We rely on plugin developers to report plugin compatibility, and serve only those plugins that are marked compatible. There is one downside, however, and that is plugins will quickly disappear in successive revisions of NodeBB unless the authors keep them up to date.
So there's definitely space for crowdsourcing as well. If a plugin is not marked compatible by the developer directly, multiple reports of compatibility by the plugin users should also count, and if enough votes come in, then the plugin should automatically be reintroduced.
☝ that part isn't in yet, but it's on the wish list.
var meta = module.parent.require('./meta');. Then, meta.config may have the configuration (might need to double-check that). var nconf = module.parent.require('nconf'); will allow you to hook into the configuration utility we use: nconf.get('url') returns the full url.
Unfortunately not -- our hooks are designed to keep the information passed in to a minimum.
The posts.parse hook is called whenever a piece of content needs to be "parsed like a post". It is not strictly a hook that is called whenever a topic is loaded. Perhaps you can look into filter:post.getPosts?