OK, a little more information on what changed, and things to look out for now that I'm not literally on my way to bed.
When I say I "rewrote TRF", this time around I truly mean a full rewrite. This is TRF version6, and it's all-custom. No ezBoard, vBulletin, LDU, Sedito, or Cotonti (all things that TRF has used in the past). I authored every piece of functionality you see. The hard part about maintaining the v5 codebase (old.rebelfaction.com) is it's written in PHP, using a framework called Cotonti which is maintained by a group of Slavs. I no longer professionally write PHP and Cotonti is basically dead in terms of development, so security updates were few and far between and my willingness to work on that code has diminished substantially over the years. The language gap between myself and the bilingual Slavs made debugging hard as half the help topics online aren't in english.
Rewriting TRF into a language I use daily will help a lot in making sure features and fixes are performed in a timely manner. Because this thing is now all-custom, there are no hidden features. For example, I can't move threads at the moment because I haven't written that functionality (I have added a ToDo for that gap). I'll be writing new functionality as things come up -- I'm treating this project as if it was one of the projects I maintain for my day job. It runs on much the same infrastructure, and I'm using the same tools that I use for my professional clients.
The biggest part of this change was the data migration. We have nearly 20 years of text content in our database, and that content has gone through many, many migrations. When it comes to data integrity it's ... not the greatest. Lots of missing user IDs (from spam cleanups in the past I think). I spent the vast majority of my development time working on a 16-step import process to preserve and fix this data as much as possible. The migration itself takes a little over an hour, and I re-ran it about a hundred times over the last 3 years as I ironed out as many problems as I could.
That said -- if you notice that any of your Identities are missing historical content, please let me know ASAP. I preserved as much data as possible, the old database is still available and the new one contains a lot of intentionally kept legacy data with the hope that I'd be able to reconstitute missing data if necessary.
New Features
I'm pleased to announce a few awesome new features that I'm very happy with!
- Accounts & Identities. You should have already noticed this, but now you sign in with an email address and a password, not an account username. That is because now, Accounts are used to sign in, and Identities are used every where else to identify you. You can create as many Identities as you want, and you can switch between them at-will (hit the little Group of People icon in the upper-right). Hopefully all your old Accounts have been transitioned to Identities and are under a singular account, but if you used multiple email addresses you'll just need to sign in with every email address you used to claim all your old Accounts. I will eventually make an "Account Merge" functionality so all your Identities can be held under a singular Account.
- Custom Factions! You can create a Faction now! Factions have nearly ever feature that this site does, a Wiki, Forums, custom CSS, and gated Memberships. Technically "www.rebelfaction.org" is just a blessed Faction that knows its the main site. Custom Factions get their own subdomain and act as a full site. I really really wanted to do a data migration here and bring back old group data from vBulletin, but I wasn't able to pull that off. I settled for enabling people to start fresh.
- A better Wiki. It's called the Codex. It's pretty basic, it's a collection of Pages under Categories that can be edited by any Member of the site or faction.
- Much improved Private Messages. The new system acts more like email and properly supports groups of users in the same persistant PM.
- Better Post Rendering. With all the migrations we've done over the years we've got posts with HTML markup, BBCode, EZBoard custom markup, and some Markdown. Now every post in a Forum or page in a Codex has a toggle for what renderer to use. You can switch it to plain text to clean things up, or switch rendering modes and let TRF handle it. If you find posts with really bad rendering let me know, I might need to update the parsers to handle special codes.
Planned Features
In the near future there's some stuff coming down the pipe that I'll sketch out briefly here.
- Topic Moving
- Double-post blocking
- CAPTCHA validation for new Accounts
- Daily Email Delivery of Subscriptions (you can subscribe to topics now but it doesn't do anything other than give you a list of subscriptions)
- Better Responsive mode, this thing should be useable on Mobile