Kreacorp is a browser-based sci-fi economic empire: trading, research, sabotage, fleet combat, espionage, clans, and world events across around 44 dedicated domain services. Available as an installable PWA and, via Capacitor, also as a native Android/iOS app.
Gallery
Case Study
Situation
Kreacorp started as a solo project: a browser-based strategy game simulating a full economic empire, rather than repeating a narrow mechanic.
Challenge
A real production incident illustrates the challenge of real-time expectations on a polling design: Laravel’s default throttle key for authenticated requests doesn’t distinguish between routes — it counts per user across all roughly 24 throttled routes in a group. The 5-second poll against the central status endpoint was exhausting the checkout endpoint’s limit as a result — every payment attempt failed with a rate-limit error. The fix: a dedicated rate-limit bucket per route instead of a shared counter.
Approach
Laravel 13 with PHP 8.5 under Laravel Octane and RoadRunner, instead of the classic PHP-FPM request model. Frontend as a Vue 3.5 SPA with TypeScript, Vite, Pinia, and vue-i18n; PixiJS for the interactive map, Three.js for 3D elements. Auth via Sanctum, Fortify, and WebAuthn passkeys, payments via Cashier/Stripe, admin via Filament 5. Deliberately no WebSocket layer — a central tick endpoint bundles status, notifications, and messages.
Decisions
A central tick endpoint bundles status, notifications, and messages instead of a dedicated real-time connection.
44 service classes instead of fat controllers; every economy mutation is required to run inside a database transaction.
Introduced after the incident described above, so status polling and checkout no longer share the same counter.
Deterministic, local deploy gates on its own infrastructure instead of hosted CI.
A custom audit script checks translation completeness for German, English, and Russian before every deploy.
My contribution
Complete game logic across 44 services, the data model with 116 migrations, the Filament admin, the Stripe payment integration, the deploy tooling, the i18n infrastructure for three languages, and production-grade hardening (rate limiting, worker memory budget).
Results