kzarshenas/crazyphp
CrazyPHP is a structured PHP framework for building web applications quickly, offering routing, MVC components, database access, templating, and CLI tooling to help developers scaffold projects and keep code organized, reusable, and easier to maintain.
What we are evaluating. kzarshenas/crazyphp (repo kekefreedog/CrazyPHP) is a pre-1.0, ~1-star, zero-dependent PHP micro-framework positioned as "my crazy framework for creating ultra-fast webapps." It ships an MVC skeleton, router, view layer, DB/CRUD layer, and CLI/config utilities. The v0.10.0 release notes are a compare link only — no summary, no breaking-change callouts, no migration guidance.
Architecture fit — the core finding. This is not a Laravel package; it is a Laravel competitor. It wants to own the project skeleton, directory conventions, and code-generation workflow. That inverts the usual "package" evaluation: if our platform standard is Laravel, adopting CrazyPHP is a stack decision, not a dependency decision, and it should be evaluated at that altitude or not at all. Two coherent postures:
Integration feasibility. Composer install is trivial; the unknowns are the blockers. Unverified: PHP version ceiling, any Illuminate coupling, template engine dependencies, whether the CLI assumes ownership of project root, test coverage, CI posture, license, and security disclosure path. With zero dependents in the wild, there is no community evidence of edge-case behavior — we would be the first mover, which means we absorb first-mover costs.
Technical risk — high, and lifecycle-driven rather than quality-driven.
0.x, minor bumps may break. ^0.10 is unsafe; only an exact pin plus committed lockfile is defensible.Key questions to close before any commitment.
Stack fit. Acceptable only where (a) the team is already PHP/Composer-native, (b) the surface is internal, non-critical, and reversible within a sprint, and (c) we are willing to treat CrazyPHP conventions as a project-local standard. It is a poor fit where organizational leverage comes from Laravel idioms, transferable skills, or a broad vetted package surface. The value proposition — less boilerplate for structured CRUD apps — is real but reproducible with ~200 lines of Laravel scaffolding we already own.
Migration path. No in-place migration of an existing application. Two viable paths, in priority order:
0.10.0, one vertical slice (entity → persistence → endpoint → view) as the acceptance test. Timebox 1–2 engineering days.Compatibility. Must be established empirically, not from release notes. Concretely: PHP constraint vs. our runtime matrix; Illuminate range and conflicts; collisions with global helpers, autoload maps, and service providers; CLI install mode (dev-only vs. global) and CI behavior under lockfile pinning. Resolve all of it in a throwaway branch.
Sequencing.
require.Maintenance — the dominant cost line. A pre-1.0 dependency with link-only releases transfers triage work to us. Budget two recurring items: a version-review ritual (read the diff, since notes carry no signal) and lockfile hygiene. Generated code multiplies this — a single upstream template change can produce a wide, mechanical, low-review-value diff across the codebase. Estimate this as engineering days per year, not as a free dependency, and put it in the TCO slide.
Support. Community-supported, single maintainer, no LTS, no SLA. Acceptable for a pilot; unacceptable as an unmitigated critical-path dependency. Mitigations: internal mirror, at least one engineer able to read and patch the source, and an exit plan that distinguishes portable assets (generated PHP source) from non-portable ones (runtime coupling to framework conventions). Know which one we depend on — that determines whether an upstream disappearance is a delay or an outage.
Scaling. Runtime scaling inherits the underlying PHP execution model and is not a differentiator; the framework does not plausibly deliver an order-of-magnitude gain over a tuned Laravel app, and we should not let "ultra-fast" in the description drive a performance-led decision without benchmarks. The real scaling constraint is organizational: CrazyPHP competencies are non-transferable, so onboarding cost grows linearly with headcount while our hiring pipeline (Laravel/PHP) does not offset it.
Failure modes to plan for.
Ramp-up. Expect meaningful onboarding even for strong Laravel engineers, because CrazyPHP conventions must be learned and Laravel habits partially unlearned. Without a written standard defining which files are generated (never hand-edited) and which are hand-written, teams will drift into editing generated code, and the next upgrade becomes a merge exercise. That document is a prerequisite to scaling past one team.
TPM recommendation — Hold / conditional pilot. Do not promote v0.10.0 into a production path on the strength of a compare link. The package may be a reasonable greenfield scaffold; the blocker is not the release, it is the absence of information about the release, compounded by zero external usage. Leverage it as a scaffolding tool with portable output if at all, run a two-day pinned spike, and return with a build-vs-buy call plus a TCO estimate. Framing line for stakeholders: pre-1.0, unsummarized release, no external dependents — possible utility, unproven; evaluate cheaply, adopt narrowly as a build-time tool, and keep a hard exit.
How can I help you explore Laravel packages today?