Skip to content

ZeroCtl-Agent0/StackCTL

Repository files navigation

StackCTL Framework

🚧 Project Status

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:

👉 https://stackctl.org

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


📚 Documentation

Full documentation is available at:

👉 https://stackctl.org/docs


🚀 What StackCTL Is

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.


🧩 Core Features

  • 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

🧠 Philosophy

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.


📁 Project Structure

/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

⚙️ Installation

  1. Clone the repository:
git clone https://github.com/YOURNAME/stackctl.git
  1. Configure your application:
  • /config/database.php
  • /config/app.php
  • /config/mail.php (optional)
  1. Set your web server root to:
/public
  1. Ensure storage directories are writable:
/storage/logs
/storage/cache
/storage/uploads
  1. Start building.

🧪 Quick Example

$router->get('/hello', function () {
    return view('hello', ['name' => 'World']);
});

Controller example:

public function index()
{
    return $this->view('app.dashboard', [
        'title' => 'Dashboard'
    ]);
}

🛠️ CLI Tools

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:install

The CLI lives in:

  • /build → supporting tools, database utilities
  • /stackctl → command definitions

This allows you to extend functionality without adding external dependencies.


🔐 Security Features

  • CSRF protection
  • Password hashing (secure by default)
  • MFA (TOTP + trusted devices)
  • Turnstile (Cloudflare) bot protection
  • Input validation system

🌍 Why StackCTL?

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

🤝 Contributing

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

💬 Community

Discussions are open for:

  • Questions
  • Ideas
  • Feedback
  • Sharing projects

This is a community space, not a formal support desk.


🚀 Status

Stable and production-ready (actively evolving)


Built with focus, frustration, and a refusal to overcomplicate things.

— Agent0

About

A truly simple, lightweight PHP framework built by a self-taught developer who spent a month fighting excessive frameworks — then built something else instead.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages