Skip to content

Technology Stack

Runtime & Framework

LayerPackageVersionRole
RuntimePHP8.4Language — JIT enabled
FrameworkLaravel^12.0Application backbone
Admin UIFilament^5.0Admin panel, forms, tables
ReactivityLivewire^3.0Real-time UI
Frontend JSAlpine.js^3.0Lightweight interactivity
StylingTailwind CSSv4Ships with Filament v5

Data

LayerPackageVersionRole
DatabasePostgreSQL16+Primary DB — JSONB + tenant scoping
Multi-tenancystancl/tenancy^3.0Tenant identification and scoping
Mediaspatie/laravel-medialibrary^11.0File uploads, conversions, S3/R2
i18nspatie/laravel-translatable^6.0Multilingual Eloquent models
ORMEloquent (Laravel)built-inDatabase abstraction

API & Auth

LayerPackageVersionRole
API AuthLaravel Sanctum^4.0Token-based API authentication
API ResourcesLaravel API Resourcesbuilt-inResponse transformation
Rate LimitingLaravel built-inPer-tenant rate limits

Performance

LayerPackageVersionRole
ServerLaravel Octane (FrankenPHP)^2.0Persistent process model
CacheLaravel Cache (Redis)built-inQuery and response caching
QueueLaravel Queues (Redis)built-inJobs, agents, notifications

Admin Features

LayerPackageVersionRole
Permissionsfilament/shieldlatestRole & permission management
Content Blocksstatikbe/flexible-content-blockslatestBlock-based page builder
SEOspatie/laravel-sitemaplatestSitemap generation

Frontend Starter

LayerPackageVersionRole
SPA BridgeInertia.js^2.0Laravel ↔ React bridge
FrontendReact19Headless starter kit
TypesTypeScript5.xType safety

AI

LayerPackageVersionRole
AI (internal)Claude API (Anthropic)claude-sonnet-4-6Maintenance agents
AI (user-facing)Claude API (Anthropic)claude-sonnet-4-6In-admin assistant

Deployment

ProviderUse Case
Laravel CloudDemo environments — one-click, auto-expiry
SevallaProduction — Google Cloud, African infrastructure
Self-hostedTechnical users — Laravel installer script

Why This Stack?

PHP 8.4 brings the most mature JIT compilation in PHP's history, fiber support for async operations, and property hooks. Laravel 12 requires 8.2 minimum — we use 8.4 to take full advantage of performance improvements.

Filament v5 is the current stable release. Its unified Schema system, 2-3x faster table rendering, built-in MFA, and nested resources make it the right foundation for a CMS that needs to be flexible and performant.

PostgreSQL over MySQL is non-negotiable for this project due to its JSONB capabilities. See Core Decisions for the full reasoning.

Claude API for both AI layers because it offers the best multilingual performance for French and English, which is the primary language pair for Ekklesia's target audience.

Released under the MIT License.