StackCTL is stable and production-ready, but actively evolving.
New features, improvements, and refinements are added regularly.
If you're interested in contributing or following development, join the community:
Turning ideas into working systems.
StackCTL is a lightweight, production-ready PHP framework built for developers who want control, clarity, and speed — without unnecessary abstraction or hidden behavior.
It is designed to be simple to learn, fast to build with, and easy to debug.
One route → One controller → One view
Full documentation is available at:
StackCTL is not trying to compete with large frameworks by adding more layers.
It focuses on:
- Clear execution flow
- Minimal abstraction
- Real-world usability
- Shared hosting compatibility (cPanel, Plesk, VPS)
If you can follow PHP, you can follow StackCTL.
- Clean MVC structure
- Simple routing with middleware support
- Authentication system (login, register, reset, verify)
- MFA support (TOTP + trusted devices)
- CSRF protection
- Flash messaging & validation helpers
- Lightweight Query builder (no ORM overhead)
- Mail service (PHPMailer-based)
- Cloudflare Turnstile integration
- Articles / Docs system (built with StackCTL)
- Discussions, voting, reporting system
- Visitor tracking
- Storage structure for logs, cache, and uploads
StackCTL is built around a few simple principles:
- Minimalism over abstraction
- Clarity over magic
- Build fast, debug faster
- No required build tools
- Everything is explainable
There is no hidden lifecycle. No magic injections. No guessing where things happen.
/public → Entry point (index.php)
/bootstrap → Application initialization
/app
/Controllers → Application controllers
/Core → Core framework logic
/Services → Mail, auth, and other services
/Helpers → Global helper functions
/Support → Query builder and utilities
/resources/views → Views and layouts
/routes → Route definitions
/config → Application configuration
/storage
/logs → Application logs
/cache → Cache storage
/uploads → User uploads
/build → CLI tools, database, utilities
/stackctl → CLI command system
- Clone the repository:
git clone https://github.com/YOURNAME/stackctl.git- Configure your application:
/config/database.php/config/app.php/config/mail.php(optional)
- Set your web server root to:
/public
- Ensure storage directories are writable:
/storage/logs
/storage/cache
/storage/uploads
- Start building.
$router->get('/hello', function () {
return view('hello', ['name' => 'World']);
});Controller example:
public function index()
{
return $this->view('app.dashboard', [
'title' => 'Dashboard'
]);
}StackCTL includes a built-in CLI system for development and maintenance.
php stack help
php stack create:page TestPage
php stack email:test
php stack packages:installThe CLI lives in:
/build→ supporting tools, database utilities/stackctl→ command definitions
This allows you to extend functionality without adding external dependencies.
- CSRF protection
- Password hashing (secure by default)
- MFA (TOTP + trusted devices)
- Turnstile (Cloudflare) bot protection
- Input validation system
Modern frameworks often:
- Introduce unnecessary complexity
- Require build tools and pipelines
- Hide logic behind abstraction
StackCTL is designed to:
- Be readable from top to bottom
- Be easy to debug in production
- Work without additional tooling
- Stay fast and predictable
StackCTL welcomes contributions, with one rule:
Keep it simple.
Guidelines:
- Avoid unnecessary abstraction
- Keep code readable and explicit
- Follow existing patterns
- Do not introduce hidden behavior
Discussions are open for:
- Questions
- Ideas
- Feedback
- Sharing projects
This is a community space, not a formal support desk.
Stable and production-ready (actively evolving)
Built with focus, frustration, and a refusal to overcomplicate things.
— Agent0