minecraft-marketplace
> Backend for a creator-driven game-asset marketplace: upload and approval pipeline, community layer (posts, comments, follows), creator dashboard, realtime notifications, and a media pipeline handling large binary asset uploads. Modular monolith on Laravel 11 + Octane + Reverb. NDA, details on request.
End-to-end server-side system for a community UGC marketplace where creators upload game assets (texture packs, shaders, skins, maps, models) and users browse and download them. A single Laravel-based backend serves the web SPA via a versioned REST API (`/v1/...` namespace, OpenAPI 3.1 spec). The architecture is a modular monolith with ~22 bounded contexts (nwidart/laravel-modules) — Asset, Community, CreatorStudio, Market, Notifications, Statistics, etc. — with sharp domain boundaries but a single deploy unit. The request pipeline runs on Octane + FrankenPHP, the realtime wall (new comment, new follower, asset-status changes) is served by a dedicated Reverb WebSocket server. Heavy work (media conversions, asset-approval notifications, follower fan-out, statistics rollups) runs on a Horizon-backed queue. The media pipeline uses Spatie MediaLibrary to handle multi-hundred-MB asset uploads on S3 with on-the-fly image conversions for previews. Authorization is built on Spatie Permission RBAC (admin/moderator/creator/user), and all data mutations are audit-logged via Spatie ActivityLog.
- →Modular monolith with ~22 bounded contexts (nwidart/laravel-modules): Asset, Community, CreatorStudio, Market, Notifications, Statistics, Comment, etc.
- →Horizon-backed event-driven async pipeline: asset state changes, comment notifications, follower fan-out and statistics rollups on dedicated queues
- →Realtime layer powered by Laravel Reverb WebSocket server — live notifications and comment streams, deployed as its own container
- →Media pipeline on Spatie MediaLibrary + S3 (Flysystem) with responsive image conversions for large binary asset uploads
- →OpenAPI 3.1 spec with a separate `/v1/admin/*` surface; Sanctum token auth, Spatie RBAC, Socialite OAuth (Google/Facebook/Discord)