Created
Viewed
35 times

It has been a little over a year since my last update, and quite a bit has changed on Ozzu during that time. Some of the work is immediately visible, while a large portion has taken place behind the scenes to modernize the platform, improve performance, make moderation more consistent, and prepare Ozzu for future development.

The largest visible addition is the new real-time community chat. Ozzu has always been built around longer-form discussions, questions, answers, tutorials, and other content that remains useful over time. Chat adds a faster and more casual way for members to communicate without trying to turn every conversation into a permanent thread.

Ozzu Real-Time Chat

The chat system supports multiple rooms, real-time messages, typing indicators, reactions, mentions, Markdown, image uploads, link previews, saved messages, and notifications. It also includes reporting, muting, message editing, moderator controls, and room-specific preferences. The message editor was further refined for smaller screens, and a Markdown help window was added to make the available formatting easier to understand.

Another major focus has been moderation and abuse prevention. Staff now have improved tools for reviewing banned users, banning accounts, and creating IP address, network, and country-based access restrictions. IP location data can be resolved in the background so that moderation pages remain responsive without repeatedly relying on an external service.

The post review system also received a substantial amount of work. First and late post notifications are now held until the content is approved, rather than being permanently skipped. Moderator formatting changes no longer incorrectly reset an existing review. Suggested edits now have a five-minute grace period so an editor can continue making improvements before the edit becomes available to reviewers. If an edit is still pending, the editor can continue from it or discard it instead of accidentally creating conflicting edits.

Actions that can be quickly reversed, such as voting, now wait five minutes before related reputation, badge, privilege, and notification changes are finalized. This prevents someone from repeatedly performing and undoing an action to create unnecessary notifications or other side effects. Users whose reputation falls below the configured limit will now also be automatically banned; the initial limit is below -200 reputation. Existing posts are left in their current state so that staff can still review them normally.

There has also been a significant effort to improve performance. Ozzu now has its own application performance monitoring system that records page-loading time, database activity, Blade rendering time, cache usage, and other measurements while keeping guest, member, staff, web, and test traffic distinguishable. The reporting page makes it possible to compare visitor types, find slow routes, identify frequently repeated SQL queries and expensive Blade views, chart performance over time, filter the samples, and download the underlying report data for deeper analysis.

That monitoring has already led to several improvements. Guest homepage thread listings are now cached with automatic invalidation when relevant content changes. Chat moderator lookups are cached and invalidated when roles, privileges, or user details change. Frequently used user and post queries received new database indexes, unread notification counts were optimized, and the performance reporting system itself was reworked so it can remain useful as its dataset grows.

Members can now choose a preferred time zone in their website settings. UTC remains the default, but fixed times in areas such as chat can now be displayed in the member's selected time zone. The desktop and mobile account navigation also now share the same underlying markup, reducing duplicated HTML while retaining the existing layouts.

Displayed Time Zone can now be configured

Behind the scenes, Ozzu was upgraded to PHP 8.5 and Laravel 13. The validation system, activity logging, web push notifications, structured data, Composer dependencies, deployment hooks, database schema, development tools, and automated tests were all updated to support the newer platform. Several formerly external packages that Ozzu depends on are now maintained directly with the application where upstream support was no longer sufficient.

The legal pages were reviewed and refreshed as well, including the Terms of Use, Privacy Policy, Acceptable Use Policy, and Cookie Policy. Development and deployment tooling also received improvements such as a local development configuration, safer Git hooks, simulated inbound IMAP mail for local testing, standardized formatting with Laravel Pint, and better project-specific development guidance.

With all of that said, here is the complete list of changes since the previous update:

Full List of Changes

  • Added configurable reputation autobanning below -200 reputation
  • Fixed flag outcomes and notifications when staff ban a user and delete their posts
  • Prevented conflicting suggested edits while an earlier edit is awaiting approval
  • Shared the user navigation markup between the desktop and mobile menus
  • Added a configurable number of days to Google Search Console analytics synchronization
  • Fixed invalid structured data value types reported by Google Search Console
  • Added a five-minute grace period for reversible reputation, badge, privilege, and notification actions
  • Added a grace period for suggested post edits and allowed editors to continue their pending changes
  • Added database indexes for frequently used user, post, privilege, and role queries
  • Cached and optimized chat moderator lookups with automatic invalidation
  • Cached guest homepage thread listings with automatic invalidation
  • Improved the speed and scalability of application performance reports
  • Optimized performance report queries and standardized form select fields
  • Clarified and compacted the application performance report filters
  • Optimized performance monitoring and several common request queries
  • Added application performance monitoring, charts, filtering, downloadable reports, and administrative reporting
  • Preserved pending review decisions when a moderator edits a post
  • Removed the obsolete reverse last-activity timestamp from posts
  • Added a preferred time-zone setting and applied it to chat times
  • Delayed first and late post notifications until the post is approved
  • Modernized all custom validation rules for Laravel 13
  • Updated the production deployment hook to prime Composer's cache from matching dependency files
  • Removed the unused bounce mailer configuration reference
  • Upgraded Schema.org and the remaining Composer dependencies to their current compatible releases
  • Upgraded activity logging to version 5 and updated the related activity and reputation behavior
  • Upgraded web push notifications to version 12 and expanded push subscription endpoint support
  • Improved the chat message composer and responsive formatting for smaller devices
  • Fixed chat message editing and added a reusable Markdown help modal
  • Added real-time community chat with rooms, reactions, mentions, typing indicators, link previews, saved messages, notifications, and moderation tools
  • Added a command to resolve missing or stale country information for banned-user IP addresses
  • Added administrative Banned Users and Network Bans sections with account and access restriction tools
  • Excluded PostHog from PHPUnit tests so test activity does not pollute analytics
  • Improved Git deployment hooks for safer updates and closer production alignment
  • Fixed a PostHog compatibility issue introduced during the framework upgrade
  • Added simulated inbound IMAP mail for local development and testing #2720
  • Installed Laravel Pint and standardized the PHP codebase formatting #2719
  • Upgraded Ozzu to Laravel 13 and PHP 8.5 #2718
  • Recompiled frontend assets using the Linux toolchain and documented the Node version #2717
  • Updated the development certificate to include cdn.dev.ozzu.com #2720
  • Added a local Docker development configuration #2721
  • Refreshed the database schema, pruned obsolete migrations, and improved development seed data #2718
  • Updated the bundled Composer executable #2717
  • Brought unsupported dependencies into the Ozzu codebase for continued maintenance #2716
  • Corrected the Cookie Policy review date #2715
  • Reviewed and refreshed the Cookie Policy #2715
  • Tightened development documentation and removed the unused Vite configuration #2711
  • Reviewed and refreshed the Acceptable Use Policy #2714
  • Updated Privacy Policy disclosures and review information #2717
  • Reviewed and refreshed the Terms of Use #2713
  • Added project-specific development and testing guidance #2710
  • Updated the Facebook authentication modal sizing #2703
  • Replaced GeoPlugin with IPinfo for location data #2692

This has been one of the larger modernization and reliability pushes Ozzu has had in quite some time. The goal is not only to keep the existing community features working, but to make the platform faster, safer, easier to maintain, and better positioned for the next set of features.

add a comment
0

0 Replies

  • Votes
  • Oldest
  • Latest

User

Community

Market

Help Center

Legal

Company

Connect