PHPackages                             noctis/kickstart-app - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. noctis/kickstart-app

AbandonedArchivedProject[Utility &amp; Helpers](/categories/utility)

noctis/kickstart-app
====================

The user application part of the Kickstart project.

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

Since Apr 28Pushed 1y ago1 watchersCompare

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

READMEChangelog (10)Dependencies (14)Versions (37)Used By (0)

Kickstart Application
=====================

[](#kickstart-application)

[![Latest Stable Version](https://camo.githubusercontent.com/a2d97d8fcdaf5345e39244d143155bd7d2e8e156d7d887b796d598a9f16315fb/68747470733a2f2f706f7365722e707567782e6f72672f6e6f637469732f6b69636b73746172742d6170702f76)](//packagist.org/packages/noctis/kickstart-app)[![Latest Unstable Version](https://camo.githubusercontent.com/18cddb9f2ac1caddb4a0ae19f54cbf854d92b4175873500f1cee8f02b80607a7/68747470733a2f2f706f7365722e707567782e6f72672f6e6f637469732f6b69636b73746172742d6170702f762f756e737461626c65)](//packagist.org/packages/noctis/kickstart-app)[![Type Coverage](https://camo.githubusercontent.com/20a6d8c87a3fb2f9a8041cd2a2e7811288ddfa6945b07258d3bf0eead43bafee/68747470733a2f2f73686570686572642e6465762f6769746875622f4e6f637469732f6b69636b73746172742d6170702f636f7665726167652e737667)](https://shepherd.dev/github/Noctis/kickstart-app)[![Maintainability](https://camo.githubusercontent.com/6cbba90fa5f914086f67830765cb0f6d078c6e0d509a32feafac4417967d04ab/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f33633738313930633836363136663235656435632f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/Noctis/kickstart-app/maintainability)[![License](https://camo.githubusercontent.com/cd5fec40d1c9aa669162e9c8ec75591dad20a8b21b863be61e66ba0b0359d754/68747470733a2f2f706f7365722e707567782e6f72672f6e6f637469732f6b69636b73746172742d6170702f6c6963656e7365)](//packagist.org/packages/noctis/kickstart-app)

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

[](#what-is-it)

It's a skeleton/demo application part of the Kickstart project. The Kickstart project itself consists of two parts:

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

This application contains all the files the user should be able to modify in order to create their own Kickstart-based 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.

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

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

**IMPORTANT:** Kickstart has two major platform requirements:

- PHP 8.1.x,
- Composer 2.0.x.

To create a new project Kickstart-based project, run the following command in your CLI and let Composer do its thing:

```
$ composer create-project noctis/kickstart-app app-name
```

**IMPORTANT:** replace `app-name` in the command above with whatever name you want. `app-name` is the name of the folder which will be created in the current working directory.

### Developing Your App using Docker

[](#developing-your-app-using-docker)

Everything you should know about developing your Kickstart-based application can be found in [this document](docs/Docker.md).

OK, it installed. Now what?
---------------------------

[](#ok-it-installed-now-what)

Now you're free to modify/add files in the `app-name` folder (or whatever you changed it to) to build your application. I've included some demo/dummy files within the project to help you get started. You're free to remove those files altogether if you have no use for them. Instructions on how to do that can be found [here](docs/cookbook/Removing_Dummy_Code.md).

**IMPORTANT:** If you're building a Web-based application, configure your WWW server to serve files from the `public`directory.

Application Components
----------------------

[](#application-components)

A fresh Kickstart-based project consists of a couple of things:

- Configuration,
- HTTP Actions (with templates/views),
- Console Commands,
- Service Providers,
- Database Repositories,
- Services.

Configuration
-------------

[](#configuration)

The project's configuration can be found in the `.env` file, in its root directory.

**NEVER COMMIT THE `.env` FILE IN YOUR PROJECT - IT CONTAINS SENSITIVE INFORMATION WHICH MUST REMAIN PRIVATE!**

This is how the `.env` file looks by default:

```
# Valid values: prod, dev
APP_ENV=dev
# "/" for root-dir, "/foo" (without trailing slash) for sub-dir
basehref=/
db_host=localhost
db_user=dbuser
db_pass=dbpass
db_name=dbname
db_port=3306
```

Here's a rundown of what each of these options mean:

### `APP_ENV`

[](#app_env)

This option can take one of two values:

- `prod`, or
- `dev`.

Setting it to `prod` changes three things:

- PHP error messages are hidden,
- templates (views) are cached; any changes made to them will NOT be visible upon refreshing the page in the browser,
- the DIC (dependency injection container) will be [compiled &amp; saved into a file](https://php-di.org/doc/performances.html#deployment-in-production)(in `var/cache/container` by default), which will increase the application's performance, but at the cost of the DIC ignoring any changes in dependency injection's configuration from here on out.

Setting it to `dev` causes:

- PHP error messages to be displayed,
- templates (views) are not cached; any changes made to them will immediately be visible upon refreshing the page in the browser,
- the DIC will notice any changes made to the dependency injection configuration, at the cost of slightly worse application's performance.

**This option should be set to `prod` in production environments, and set to `dev` during development.**

**If you're making changes to your templates/views and they're not showing up in your browser - either clear the cache, by deleting the contents of the `var/cache/templates` directory, or set the `APP_ENV` option in `.env` to `dev`.**

**If you're making changes to [service providers](docs/Service_Providers.md) or classes' constructors (dependency injection) and the DIC (dependency injection container) fails to see them, clear the contents of the `var/cache/container` directory or set the `APP_ENV` option in `.env` file to `dev`**

### `basehref`

[](#basehref)

This is the URI of where the application is available from the browser. If it's available at, for example: `localhost`, the default value of `/` should be used. If it's available in a sub-directory, for example: `localhost/kickstart`, the `basehref` value should be set to `/kickstart`.

**IMPORTANT:** The `barehref` value in `.env` and the `RewriteBase` value in `public/.htaccess` file should always be the same! If those values are different, you'll be getting a lot of 404 errors.

For console commands the value of this parameter does not matter.

### `db_host`, `db_user`, `db_pass`, `db_name`, `db_port`

[](#db_host-db_user-db_pass-db_name-db_port)

Those 5 options are the database credentials:

- `db_host` - host name for your database (e.g. `localhost`),
- `db_port` - port number (default: `3306`),
- `db_user` - database user name,
- `db_pass` - database user password,
- `db_name` - the name of the database.

HTTP Actions
------------

[](#http-actions)

You can read more about HTTP actions [here](docs/HTTP.md).

Console Commands
----------------

[](#console-commands)

You can read more about Console Commands [here](docs/Console.md).

Database Repositories
---------------------

[](#database-repositories)

Kickstart utilizes the Repository pattern, more or less. You call the appropriate methods on a repository object when you want to fetch or store something from/to the database.

By default, repository classes can be found in the `src/Repository` folder (the `App\Repository` namespace). All repositories which utilize the database connection extend the `Noctis\KickStart\Repository\AbstractDatabaseRepository`abstract class, which provides a `protected` field called `$db` representing the database connection.

Kickstart utilizes [ParagonIE's EasyDB](https://github.com/paragonie/easydb) package for running queries against the database engine of your choice. EasyDB is a simple wrapper around PHP's PDO, which in my opinion is way easier to use than PDI itself. If you want to know more on why I chose EasyDB and not a different library, check the [FAQ](docs/FAQ.md).

Service Providers
-----------------

[](#service-providers)

You can read more about Service Providers [here](docs/Service_Providers.md).

Folders
-------

[](#folders)

You can read more about what each folder in your project's directory is [here](docs/Folders.md).

Updating
--------

[](#updating)

If you need to update the system part of your application, i.e. the `noctis/kickstart` package, just run:

```
$ composer update noctis/kickstart
```

Seeing as updating a Kickstart-based project is not as simple as that, I will do my best to update the `noctis/kickstart-app` package (this one) as rarely as possible. When I do release a new version of it and specific actions are needed to update the application part, you will find a version-specific guide inside the [`docs/upgrading`](docs/upgrading) folder of this project.

I will also keep the version numbers between both packages consistent. For example, when I make changes to the `noctis/kickstart` package that are incompatible with `noctis/kickstart-app` 2.x, I will release them as version 3.x of the former, along with an updated 3.x version of the latter. This way a `composer update` will not break your Kickstart application.

FAQ
---

[](#faq)

Additional questions and answers relating to Kickstart can be found in the [FAQ](docs/FAQ.md).

Recipes
-------

[](#recipes)

- [Acquiring Client IP Address](docs/cookbook/Acquiring_Client_IP_Address.md)
- [Adding a New Database Repository](docs/cookbook/Adding_Database_Repository.md)
- [Adding a Second Database Connection](docs/cookbook/Adding_Second_Database_Connection.md)
- [Adding User Authentication](docs/cookbook/Adding_User_Authentication.md)
- [Custom Console Command Loader](docs/cookbook/Custom_Console_Command_Loader.md)
- [Registering a Custom Twig Function](docs/cookbook/Custom_Twig_Function.md)
- [Implementing\_Session\_Handling.md](docs/cookbook/Implementing_Session_Handling.md)
- [Creating a New Console Command](docs/cookbook/New_Console_Command.md)
- [Creating a New HTTP Action](docs/cookbook/New_Http_Action.md)
- [Registering a Twig Extension](docs/cookbook/Registering_Twig_Extension.md)
- [Removing the Database Connectivity Functionality](docs/cookbook/Removing_Database_Connectivity.md)
- [Removing Dummy (Example) Code](docs/cookbook/Removing_Dummy_Code.md)
- [Removing the HTTP Functionality](docs/cookbook/Removing_Http_Functionality.md)
- [Sending Attachments in Response](docs/cookbook/Sending_Attachments.md)

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance41

Moderate activity, may be stable

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 99.6% 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 ~38 days

Recently: every ~157 days

Total

36

Last Release

504d ago

Major Versions

2.3.1 → 3.0.02022-01-28

2.3.2 → 3.1.12022-02-22

3.2.x-dev → 4.0.0-RC12023-01-03

PHP version history (3 changes)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 (243 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

kickstartskeleton appbase application

###  Code Quality

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[neos/flow

Flow Application Framework

862.0M451](/packages/neos-flow)[jaxon-php/jaxon-core

Jaxon is an open source PHP library for easily creating Ajax web applications

73142.3k25](/packages/jaxon-php-jaxon-core)[neos/flow-development-collection

Flow packages in a joined repository for pull requests.

144179.3k3](/packages/neos-flow-development-collection)

PHPackages © 2026

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