I forked flarum/core and flarum/flarum and I intend to work on several things:
- Change folders structure of flarum/flarum to separate server-side code from public code, like in Laravel. The assets folder, index.php, api.php and admin.php will go in the public folder, while the other files will stay somewhere behind, in a folder that you could call however you like (which you will include in index.php). I see that some paths are hard-coded, so I get errors now (the installer is initiated because it doesn't find the configuration file). Working on that. I will also change the scripts that build the production version
- Multi-tenancy support in flarum/core, instead of an extension, which just doesn't feel right. IMHO, extensions should provide front-end features and widgets, not "ring 0" capabilities that run during the booting process. The configuration file will contain an array of settings per domain / subdomain / folder and a default one, giving the possibility to connect to a master / fallback database and at the same time to a tenant's database. The master database could contain users and common data, while the tenant's database should provide posts, comments and everything related. Languages can also be specified for each tenant. If a tenant's database is empty, installer should start when that tenant is accessed for the first time
- Custom routes and slugs rules. We should be able to customize the routes and, again, I don't like this to be an extensions. In almost any CMS out there it is an essential setting in the administration area
- Tenant and route based extensions. This means that administrators should be able to specify for which tenant or route will an extension be enabled
- Themes. Right now, you can change the look of Flarum through extensions. I don't like it. I want to be able to create themes and styling settings that, again, could be applicable to a specific tenant or route
- Separated translation files. I would also try to separate them from the rest of the extensions, as these files should be just lists of words and nothing else. Also, maybe we could use them in the installer, too (users can choose to install Flarum in their own language by clicking on a flag). This way we can also specify the language for the current tenant (something that will also be possible in the administration area)
I don't want all this to affect or crucially change the current direction of this wonderful project. I want to keep everything it has and just provide much more possibilities for those who don't want just a forum as part of their website, but a bigger, more advanced community. At the same time, users who like it simple should have it their way, just like now, and none of these changes must complicate their life.
I wrote this down just for suggestions, critics and help in case I have questions. Maybe some of it is work in progress or conflicting with current features