The PHP framework
without the tax.
Savv is a lean PHP engine for brand websites, portfolios, and public-facing experiences. Ship fast. No Node.js. No build pipeline. No ceremony. Just PHP running at full speed on any server on earth.
Everything you need.
Nothing you don't.
Every feature is purpose-built for content-driven, public-facing sites. No bloat included.
File-Based Routing
Drop a PHP file in views/pages/ and it
becomes a URL. No registration, no config, no controllers required.
PWA Baked In
Manifest, service worker, offline fallback — all generated dynamically from configs/pwa.php. Two
helper calls and you're done.
Zero Build Tools
No Node.js. No npm. No webpack, Vite, or any compiler. Composer install, point at public/, go live.
Built-In Redirections
One line in configs/redirections.php
creates a pretty short URL. No plugin. No route file edit needed.
Route Caching
php savv route:cache
compiles everything into one static PHP manifest. Static-site dispatch speed, dynamic codebase.
Live Editing
No rebuild between your file and your users. Edit views, configs, or content and reload. Instant. Critical in production emergencies.
CMS Fallback
Run WordPress, e-commerce, or any other PHP app alongside Savv under the same domain with zero server config changes.
Deploy Anywhere
Shared hosting. Budget VPS. Bare metal. Enterprise cloud. If the server runs PHP 8, it runs Savv. No containers required.
Built-In Blogging
Drop a Markdown file in views/posts/ with
frontmatter and it's published at its slug URL automatically.
Honest comparison
with the alternatives.
Savv is not trying to replace Laravel or Next.js. It's built for a specific job — and it's the best tool for that job.
| Feature | Savv Web ✦ | Full-Stack PHP | Static Site Gen |
|---|---|---|---|
| File-based routing, zero config | ✓ | ✗ | ✓ |
| No build tool required | ✓ | ✗ | ✗ |
| PWA built-in, no setup | ✓ | ✗ | ✗ |
| URL redirections, no settings | ✓ | ✗ | ✗ |
| SSG-feel speed | ✓ | ✗ | ✓ |
| Deploy on shared/budget hosting | ✓ | ⚠ | ✓ |
| Edit live in production | ✓ | ✗ | ✗ |
| CMS fallback / hybrid deployment | ✓ | ✗ | ✗ |
| Package size under 1 MB | ✓ | ✗ | ⚠ |
| Deep ORM / large plugin ecosystem | ✗ | ✓ | ✗ |
Your entire entry point
is three lines.
Every Savv application bootstraps from a single, readable entry file. Nothing is hidden. Nothing is magic.
Bootstrap in one call
The application loads your environment, discovers routes, and registers the PWA engine — all in one method.
Pages are just PHP files
Create a file in views/pages/
and it resolves as a URL with zero other steps.
Two helpers for the full frontend stack
savv_head()
and savv_scripts()
inject Bootstrap, AOS, SPA transitions, and PWA registration automatically.
Listen to savv:init
for your JS
Custom event fires on first load and after every page swap. Your UI components always reinitialize correctly.
// The entire application entry point. // That's it. Really. define('ROOT_PATH', dirname(__DIR__)); require ROOT_PATH . '/vendor/autoload.php'; $app = \Savv\Core\Application::bootstrap(__DIR__); $app->run();
// File: views/pages/about.php → accessible at /about // No route registration. No controller. Just this. $pageTitle = 'About — My Brand'; $pageDescription = 'Who we are.'; ob_start(); ?> <section> <h1>About Us</h1> </section> <?php $content = ob_get_clean(); include ROOT_PATH . '/views/layouts/index.php';
Savv runs alongside
your existing CMS.
No complex server rewrites. Savv routes what it knows about, and hands the rest off cleanly to WordPress, WooCommerce, or any PHP app on the same server.
Configure
integrations in one file. Set active: true and
Savv handles the rest — your blog, your shop, your Savv site, all under one domain.
Create configs/installations.php and add your CMS entry path
Set active: true on the installation you want to hand off to
Unmatched requests flow through Savv → CMS automatically
return [ 'wordpress' => [ 'active' => true, 'path' => '/var/www/wp/wp-blog-header.php', ], 'ecommerce' => [ 'active' => false, 'path' => '/var/www/shop/index.php', ], ];
The right tool for
the right job.
Savv is purpose-built for public-facing, content-driven sites. It's not trying to be everything — it's trying to be perfect for this.
Brand & Corporate Websites
Clean, fast, deployable anywhere.
Agency & Studio Portfolios
Showcase work with SPA-feel navigation.
Marketing & Campaign Sites
Launch fast, iterate without rebuilds.
Product Landing Pages
Pixel-perfect, performance-optimized.
Company Profiles & Brochures
PWA-ready from day one.
Hybrid CMS Sites
Savv front, WordPress blog behind.
Up and running
in under two minutes.
Clone the starter:
git clone https://github.com/igefadele/savv_starter my-project
Install dependencies: cd my-project && composer install
Point your server document root at public/ and open the browser.
Add pages by dropping .php files into views/pages/. Done.