Level Up your

Our mission is to give developers a game-changing suite of open source tools that level up the way they build and deploy modern, cloud native web applications.

App screenshot

A better development environment

Kool makes using Docker for local development easier, simpler, faster, and better.

Easier

Kool eliminates the learning curve and headaches of configuring Docker flags, fixing user permissions, and setting up local and global networks – to name just a few.

Simpler

Kool reduces the cognitive overhead of containerizing your stack by using a much simpler, more intuitive CLI interface for managing Docker containers and Docker Compose services.

Faster

Kool lets you spin up new local environments, switch between projects, share local changes with colleagues and clients, and deploy to the cloud – all in a matter of seconds.

Better

Kool provides custom Docker images optimized for local development and deployment, pre-built Presets with sane defaults for quickly setting up projects using popular frameworks – and more.

Any Language, Any Framework

Kool standardizes the way you work across all your tech stacks and projects.

Laravel
Symfony
Adonis
NestJs
NextJs
NuxtJs
WordPress
HUGO
Want to contribute a Preset? Join us on Slack and ping us in the #preset channel.

A better development workflow

Kool CLI, Kool Scripts, and Kool Cloud work seamlessly together to create a more productive workflow for building and deploying containerized applications.

  • Zero Learning Curve

    $ kool create
    Laravel Laravel
    Adonis Adonis
    NextJS NextJS
    NuxtJS NuxtJS
    [projects] $ kool create laravel my-project
    # Under the hood, this command will run # 'composer create-project --no-install --no-scripts # --prefer-dist laravel/laravel my-project' # using a customized kool Docker image
    Creating a "laravel/laravel" project at "./my-project"
    Installing laravel/laravel (v0.0.00)
    - Downloading laravel/laravel (v0.0.00)
    - Installing laravel/laravel (v0.0.00): Extracting archive
    Created project in /app/my-project
    # After installing Laravel, 'kool create' automatically runs the # 'kool preset laravel' command, which helps you easily set up the # initial tech stack for your project using an interactive wizard.
    Preset laravel is initializing!
    ...
    [projects] $ kool create adonis my-project
    # Under the hood, this command will run # 'adonis new my-project to install the AdonisJs fullstack blueprint' # using a customized kool Docker image
    [1/6] 🔬 Requirements matched [node & npm]
    [2/6] 🔦 Ensuring project directory is clean [adonis]
    [3/6] 📥 Cloned [adonisjs/adonis-fullstack-app]
    [4/6] 📦 Dependencies installed
    [4/6] 📖 Environment variables copied [.env]
    [5/6] 🔑 Key generated [adonis key:generate]
    🚀 Successfully created project
    👉 Get started with the following commands
    cd adonis
    adonis serve --dev
    # After installing AdonisJs, 'kool create' automatically runs the # 'kool preset adonis' command, which helps you easily set up the # initial tech stack for your project using an interactive wizard.
    Preset laravel is initializing!
    ...
    [projects] $ kool create nextjs my-project
    # Under the hood, this command will run: # yarn create next-app my-project using a customized kool Docker image
    yarn create v0.00.0
    [1/4] Resolving packages...
    [2/4] Fetching packages...
    [3/4] Linking dependencies...
    [4/4] Building fresh packages...
    Done in 00.00s.
    # After installing Next.js, 'kool create' automatically runs the # 'kool preset nextjs' command, which helps you easily set up the # initial tech stack for your project using an interactive wizard.
    Preset nextjs is initializing!
    ...
    [projects] $ kool create nuxtjs my-project
    # Under the hood, this command will run: # yarn create nuxt-app my-project using a customized kool Docker image
    yarn create v0.00.0
    [1/4] Resolving packages...
    [2/4] Fetching packages...
    [3/4] Linking dependencies...
    [4/4] Building fresh packages...
    Done in 00.00s.
    # After installing NuxtJS, 'kool create' automatically runs the # 'kool preset nuxtjs' command, which helps you easily set up the # initial tech stack for your project using an interactive wizard.
    Preset nextjs is initializing!
    ...
  • Same Defaults (new and existing projects)

    $ kool preset
    Laravel Laravel
    Adonis Adonis
    NextJS NextJS
    NuxtJS NuxtJS
    [my-project] $

    kool preset laravel

    Preset laravel is initializing!

    ? What app service do you want to use [Use arrows to move, type to filter]
      PHP 7.4
    > PHP 8.0

    ? What database service do you want to use [Use arrows to move, type to filter]
    > MySQL 8.0
      MySQL 5.7
      PostgreSQL 13.0
      none

    ? What cache service do you want to use [Use arrows to move, type to filter]
    > Redis 6.0
      Memcached 1.6
      none

    ? What javascript package manager do you want to use [Use arrows to move, type to filter]
      npm
    > yarn

    ? What composer version do you want to use [Use arrows to move, type to filter]
      1.x
    > 2.x

    Preset laravel initialized!

    # Yes, using kool to create and work on new Laravel projects is that easy!
    [my-project] $

    kool preset adonis

    Preset adonis is initializing!

    ? What database service do you want to use [Use arrows to move, type to filter]
    > MySQL 8.0
      MySQL 5.7
      PostgreSQL 13.0
      none

    ? What cache service do you want to use [Use arrows to move, type to filter]
    > Redis 6.0
      Memcached 1.6
      none

    ? What javascript package manager do you want to use [Use arrows to move, type to filter]
      npm
    > yarn

    Preset adonis initialized!

    # Yes, using kool to create and work on new AdonisJs projects is that easy!
    [my-project] $

    kool preset nextjs

    Preset nextjs is initializing!

    ? What javascript package manager do you want to use [Use arrows to move, type to filter]
      npm
    > yarn

    Preset nextjs initialized!

    # Yes, using kool to create and work on new Next.JS projects is that easy!
    [my-project] $

    kool preset nuxtjs

    Preset nuxtjs is initializing!

    ? What javascript package manager do you want to use [Use arrows to move, type to filter]
      npm
    > yarn

    Preset nuxtjs initialized!

    # Yes, using kool to create and work on new NuxtJS projects is that easy!
  • Starting

    $ kool start
    [my-project] $

    kool start


    Creating network "web_kool_local" with the default driver

    Creating web_cache_1 ... done
    Creating web_database_1 ... done
    Creating web_app_1 ... done

    # You are all set!
  • Instant Onboarding

    $ kool run
    Laravel Laravel
    Adonis Adonis
    NextJS NextJS
    NuxtJS NuxtJS
    # Execute the specified SCRIPT, as defined in the kool.yml file
    [my-project] $ kool run artisan key:generate
    Application key set successfully
    # run can also run multiple commands
    [my-project] $ kool run reset
    > kool run composer install > kool run artisan migrate:fresh --seed > kool run node-setup
    # Execute the specified SCRIPT, as defined in the kool.yml file
    [my-project] $ kool run adonis key:generate
    generated: unique API_KEY
    # run can also run multiple commands
    [my-project] $ kool run setup
    > cp .env.example .env > kool docker kooldev/node:14 npm install > kool start
    # Execute the specified SCRIPT, as defined in the kool.yml file
    [my-project] $ kool run yarn build
    > next build
    # run can also run multiple commands
    [my-project] $ kool run setup
    > kool docker kooldev/node:14 npm install > kool start
    # Execute the specified SCRIPT, as defined in the kool.yml file
    [my-project] $ kool run yarn build
    > nuxt build
    # run can also run multiple commands
    [my-project] $ kool run setup
    > kool docker kooldev/node:14 npm install > kool start
  • Painless Execution

    $ kool exec
    # Similar to SSH, if you want to open a Bash session in your app container, # run kool exec app bash, where app is the name of the service container # in docker-compose.yml. If you prefer, you can use sh instead of bash
    [my-project] $ kool exec app bash
    bash-5.1#
    [my-project] $ kool exec app sh
    /app#
  • Effortless Sharing

    $ kool share
    [my-project] $

    kool share --subdomain awesome



    Thank you for using expose.

    Local-URL: app
    Dashboard-URL: http://127.0.0.1:4040
    Expose-URL: https://awesome.kool.live

    # Your local environment can now accessed from anywhere! For up to 1 hour.

    Remaining time: 00:59:59

    Remaining time: 00:59:58

    Remaining time: 00:59:57

    Remaining time: 00:59:56

    ...

  • Context switching - between Projects/Stacks

    $ kool stop
    [my-project] $

    kool stop


    Stopping web_app_1 ... done
    Stopping web_database_1 ... done
    Stopping web_cache_1 ... done

    Removing web_app_1 ... done
    Removing web_database_1 ... done
    Removing web_cache_1 ... done

    # Easily switch between projects!

    $

    cd other-project

    [other-project]$

    kool start


    Creating network "web_kool_local" with the default driver

    Creating web_cache_1 ... done
    Creating web_database_1 ... done
    Creating web_app_1 ... done

A better developer experience

Kool offers a standardized experience across all your tech stacks and projects – no matter who you are.

Individuals & Freelancers

Less configuring, more coding.

Increase velocity using Kool Presets to initialize projects with pre-built Docker setups, Kool Snippets to add common container services, Kool Scripts to open database sessions and reset local environments, and Kool CLI to switch between projects, share work, and deploy to the cloud.

Small & Large Teams

Less duplication, more standardization.

Rapidly onboard new developers, boost team productivity, and minimize duplication of effort using reproducible Docker development environments along with standardized – and centralized – Kool Scripts and workflows across all your projects.

Beginners & Experts

Less hassles, more control.

A hassle-free way to handle the Docker basics and immediately start using containers for development. Simultaneously, no loss of control over fully customizing and extending more specialized Docker environments.

Make kool even better

Help us achieve our mission by sharing the love, spreading the word, joining our community, and getting involved.

Star Us on GitHub

Share the love by starring our GitHub repo.

Follow Us on Twitter

Spread the word by following us, tweeting us and retweeting us to all your friends.

Join Us on Slack

Join our community to get support, learn more about Kool, and help others.

Free to Use Open Source
Hundreds of Web Apps Battle-Tested

Stay up-to-date

Subscribe to get notified on Kool development and latest news.

We won't send you spam. Unsubscribe at any time.

Sponsors

Firework Web & Mobile
Interested in sponsoring Kool?
Email us at contact@kool.dev

© 2021 kool.dev - All rights reserved.