PHPackages                             noctis/kickstart - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. noctis/kickstart

AbandonedArchivedLibrary[Framework](/categories/framework)

noctis/kickstart
================

The base system part of the Kickstart project.

4.0.3(1y ago)01.2k[1 PRs](https://github.com/Noctis/kickstart/pulls)1MITPHPPHP ~8.1.0

Since Mar 2Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Noctis/kickstart)[ Packagist](https://packagist.org/packages/noctis/kickstart)[ RSS](/packages/noctis-kickstart/feed)WikiDiscussions 4.0.x Synced 5d ago

READMEChangelog (10)Dependencies (22)Versions (44)Used By (1)

Kickstart Base
==============

[](#kickstart-base)

[![Latest Stable Version](https://camo.githubusercontent.com/b80ce29b3372626b4490089934281b56d976b4b036e89e79ee8f5fcc69f47314/68747470733a2f2f706f7365722e707567782e6f72672f6e6f637469732f6b69636b73746172742f76)](//packagist.org/packages/noctis/kickstart)[![Latest Unstable Version](https://camo.githubusercontent.com/a95fbdc4face086e7f621bbc6ed3f6b118d8403988c7c34eac953404ee0722e9/68747470733a2f2f706f7365722e707567782e6f72672f6e6f637469732f6b69636b73746172742f762f756e737461626c65)](//packagist.org/packages/noctis/kickstart)[![Type Coverage](https://camo.githubusercontent.com/1560c4ecc1b834f172ad53f01f6df933a3f9e62ebaa2fde0243af2ce8f70a5c1/68747470733a2f2f73686570686572642e6465762f6769746875622f4e6f637469732f6b69636b73746172742f636f7665726167652e737667)](https://shepherd.dev/github/Noctis/kickstart)[![Maintainability](https://camo.githubusercontent.com/ae5fb1e1bede252fd10d42060594906dbdef107d8ff94031cb865049d780fa04/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f34653738646231326238333462323632386430322f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/Noctis/kickstart/maintainability)[![License](https://camo.githubusercontent.com/015705e6ba897194fd8d2480c2b3c1c1bc36531fcd66bb0c53b03d03f34221cd/68747470733a2f2f706f7365722e707567782e6f72672f6e6f637469732f6b69636b73746172742f6c6963656e7365)](//packagist.org/packages/noctis/kickstart)

What is it?
-----------

[](#what-is-it)

It's the system (base) part of the Kickstart project. The Kickstart project itself consists of two parts:

- the application part - the [`noctis/kickstart-app`](https://github.com/Noctis/kickstart-app) package,
- the system part - (this one).

This package contains all the system files a Kickstart application needs in order to run properly. This is the part of the Kickstart project which the user should not modify, but is free to extend in the application.

What's it good for?
-------------------

[](#whats-it-good-for)

Kickstart was created to be a base for building micro and small PHP applications, either Web- or CLI-based.

What exactly does it do?
------------------------

[](#what-exactly-does-it-do)

It provides you with base code which allows you to skip building basic stuff like handling HTTP requests &amp; responses or database connections and go right into implementing "the meat" of your application, i.e. business logic.

So... like a framework?
-----------------------

[](#so-like-a-framework)

Yeah, you could say that. I won't call this project a framework though. Or a mini-framework for that matter. I don't think it fits the definition of "framework" well enough to call it that.

Why should I used Kickstart instead of Laravel, or Symfony?
-----------------------------------------------------------

[](#why-should-i-used-kickstart-instead-of-laravel-or-symfony)

Good question. Those projects are perfectly fine. In many aspects they're better than Kickstart. They offer way more functionality and have a bigger community. But... They're also pretty big and handling even a single request requires a lot of calls to different methods and functions, and I personally am not a fan of such overhead.

Now, don't get me wrong. A proper framework like the ones I mentioned above are perfectly fine for many use cases. For medium or large scale application I would NOT recommend Kickstart - I'd use one of them. But, for a small, relatively simple application I think they're just overkill.

So... when should I use Kickstart?
----------------------------------

[](#so-when-should-i-use-kickstart)

If you want to create a micro or small working Web- or CLI-based PHP application, that runs some relatively static SQL queries against the database. For example: you want an application that has a one-field web form, takes the user's input from said form, runs it against the database and finally presents a list of rows that matched the provided value. OK, that's an extremely simple application example, but I think you get the idea.

What components does Kickstart offer?
-------------------------------------

[](#what-components-does-kickstart-offer)

- routing, with optional and/or required named request params - based on [FastRoute](https://github.com/nikic/FastRoute), by [Nikita Popov](https://github.com/nikic)and my own implementation of [PSR-15's Request Handler](https://www.php-fig.org/psr/psr-15/#11-request-handlers),
- dependency-injection - based on [PHP-DI](https://php-di.org/)by [Matthieu Napoli](https://github.com/mnapoli),
- database connectivity - based on [EasyDB](https://github.com/paragonie/easydb)by the [Paragon Initiative Enterprises](https://paragonie.com/),
- HTTP requests &amp; responses handling - based on [Laminas'](https://symfony.com/)[Diactoros](https://docs.laminas.dev/laminas-diactoros/), [HTTP Request Handler Runner](https://docs.laminas.dev/laminas-httphandlerrunner/) and [Session](https://docs.laminas.dev/laminas-session/)components, in accordance with [PSR-7](https://www.php-fig.org/psr/psr-7/)
- HTTP middleware - my own implementation, in accordance with the [middleware specification](https://www.php-fig.org/psr/psr-15/#12-middleware) of [PSR-15](https://www.php-fig.org/psr/psr-15/)
- template engine - based on Symfony's [Twig 3](https://twig.symfony.com/doc/3.x/),
- CLI (console) commands - based on Symfony's [Console](https://symfony.com/doc/5.2/components/console.html) component,
- configuration - based on the ever popular [PHP dotenv](https://github.com/vlucas/phpdotenv)by [Vance Lucas](https://github.com/vlucas).

These are all off-the-shelf free components, which I've "tied" together into a working skeleton application, so you don't have to.

But why isn't there a XYZ component?
------------------------------------

[](#but-why-isnt-there-a-xyz-component)

I thought about adding a couple more components, like CSV file handling, internationalization (i18n), mail sending... but I've decided to leave that to the end user. If you want, you're free to add them yourself. I'll include examples on how to do that in the documentation.

But I don't need a console component, or a database connectivity component!
---------------------------------------------------------------------------

[](#but-i-dont-need-a-console-component-or-a-database-connectivity-component)

You're free not to utilize them. Their existence won't slow your application down, at least not noticeably. If you really want to get rid of a certain component, i.e. completely, you'll find documentation on how to do that in the "Cookbook" section of [Kickstart Application](https://github.com/Noctis/kickstart-app) documentation.

OK, so how do I install this thing?
-----------------------------------

[](#ok-so-how-do-i-install-this-thing)

This package is not meant to be installed separately. You should create a new project based on the [`noctis/kickstart-app`](https://github.com/Noctis/kickstart-app) package. That will install this package.

Wait. "kickstart-app"? I thought this project was called "kickstart"?
---------------------------------------------------------------------

[](#wait-kickstart-app-i-thought-this-project-was-called-kickstart)

Yes, the project is called "Kickstart", but - again - there are two parts of it:

- the core system, called `noctis/kickstart`,
- the application, called `noctis/kickstart-app`.

`noctis/kickstart` is the base system, which gets installed into your `vendor` folder. This is what one could call "system space". That package's system (core) files:

- should **not** be modified by the user, and
- should be upgradeable (*via* `composer update`).

`noctis/kickstart-app` is the skeleton app which was built upon the `noctis/kickstart` package. It contains:

- files which should be modifiable by the user, and
- example "dummy" files, showing you how to utilize the `noctis/kickstart`'s functionalities.

That's dumb. There should be just one package, containing everything!
---------------------------------------------------------------------

[](#thats-dumb-there-should-be-just-one-package-containing-everything)

You're dumb (kidding). That's how it's used to be, back in the 1.x version of Kickstart.

A little history. After making yet another change to Kickstart, required by a specific application I've been working on, and then having to transpose those changes unto other Kickstart-based applications I was working on, I realized two things:

- updating files in one project by manually applying a subset of changes made in another one is stupid, especially considering I have `composer update` at my disposal, and
- there are some files which the user should be able to modify, and some he/she should steer clear off.

If only those non-modifiable files could reside in the `vendor` folder, then they'd be easily updatable. Oh wait, they could be located there! So I started separating those two types of files. In the end, only of couple files/classes were left that had to be broken down because they belonged to both worlds.

And that's how `noctis/kickstart` and `noctis/kickstart-app` packages were created.

So, what happens when I need to update one of the system files?
---------------------------------------------------------------

[](#so-what-happens-when-i-need-to-update-one-of-the-system-files)

Well, if you need to update the base system package, i.e. `noctis/kickstart`, all you need to do is run

```
composer update noctis/kickstart
```

If you need to update the skeleton application, i.e. `noctis/kickstart-app` - you will have to perform the update manually, if we're talking about an already existing application based on it.

Why does it require PHP 8.1?
----------------------------

[](#why-does-it-require-php-81)

Kickstart 3.x used to require PHP 8.0. I was on the fence on whether I should bump that requirement to PHP 8.1 for Kickstart 4.x, but then [active support for PHP 8.0 ended](https://www.php.net/supported-versions.php) and... PHP kinda made the decision for me :)

PHP 8.1 it is.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance41

Moderate activity, may be stable

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 99.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~158 days

Total

43

Last Release

507d ago

Major Versions

1.4.2 → 2.0.02021-04-28

2.3.1 → 3.0.02022-01-28

2.3.2 → 3.1.12022-05-26

3.2.2 → 4.0.0-RC12023-01-03

PHP version history (5 changes)1.0.0PHP ^7.3

1.2.0PHP ^7.4

2.0.0PHP ^8.0

2.3.1PHP ~8.0.0

4.0.0-RC1PHP ~8.1.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/469949?v=4)[Lucas Czejgis](/maintainers/Noctis)[@Noctis](https://github.com/Noctis)

---

Top Contributors

[![Noctis](https://avatars.githubusercontent.com/u/469949?v=4)](https://github.com/Noctis "Noctis (199 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

kickstartapplication base

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/noctis-kickstart/health.svg)

```
[![Health](https://phpackages.com/badges/noctis-kickstart/health.svg)](https://phpackages.com/packages/noctis-kickstart)
```

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[neos/flow

Flow Application Framework

862.0M451](/packages/neos-flow)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
