- **Composer-driven extension architecture.** All extensions are Composer packages installable via Packagist.
- **Backend codebase & API refactoring.** Classes, namespaces, and events systematically tidied up.
### Improved internationalization
> A huge thanks to @dcsjapan for the countless hours he put in to make this stuff happen. You're amazing!
- New systematic translation key naming scheme.
- Make many hardcoded strings translatable, including administration UI and validation messages.
- More powerful pluralization via use of Symfony's Translation component instead of a proprietary one.
### New moderation tools
- **Hide/restore discussions.** Discussions can be soft-deleted by moderators or by the OP if no one has replied.
- **Flags.** New bundled extension that allows posts to be flagged for moderator review.
- **Approval.** New bundled extension that hides/flags new posts to be approved by the moderation team.
- **Akismet.** New bundled extension that checks new posts for spam with Akismet.
- **IP address logging.** IP addresses are stored with posts for use by extensions (e.g. Akismet).
- **Flood control.** Users must wait at least ten seconds between consecutive posts.
### Other features
- **Social login.** New bundled extensions that allow users to log in with Facebook, Twitter, and GitHub.
- **More compact post layout.** All controls are grouped over to the right.
- **Improved permissions.** The admin Permissions page has been improved with icons and other tweaks.
- **Improved extension management.** The admin Extensions page has a new look and is easier to use.
- **Easier debugging.** The "oops" error message has a Debug button to inspect a failed AJAX request.
- **Improved JavaScript minification.** Minification is done by ClosureCompiler only when debug mode is off, resulting in easier debugging and smaller production assets.