Automated installation of the TALL-stack (new package)⚡️

Ralph J. Smit Laravel Software Engineer

In my day-to-day workflow I mainly use Laravel for my projects. In particular, the TALL-stack. TALL is an acronym for Tailwind CSS, Alpine.js, Laravel and Livewire. Combined into one project, these four tools can immensely speed up the developer and provide a great developer experience. Installing multiple tools is always quite boring, so that's why I made a package to automated their installation.

The name of the package is ralphjsmit/tall-install and you can find it on GitHub. The tagline says that it is an 'Easy command to install the TALL-stack & jumpstart development🚀'. Sounds promising, right?

Features

So, what does it exactly do? I already said that it basically takes a fresh Laravel-installation and runs the regular installation process for your favorite TALL-stack tools. So, what does it install?

  • Tailwind CSS

  • Tailwind CSS Forms

  • Tailwind CSS Typography

  • Alpine.js

  • Alpine.js Trap

  • Filament Admin Form Builder

  • Filament Admin Table Builder

  • Laravel Livewire

  • Toast TALL-notifications

There are also options to:

  • Configure Browsersync for Laravel Valet users

  • Install Pest instead of PHPUnit

  • Configure a DDD-file structure

How does it work?

First, you need a fresh Laravel-installation.

composer create-project laravel/laravel name

It can also be used on existing installations, but please make a back-up if you use it on an existing installation. It can have unintended consequences.

Next, install the package:

composer require ralphjsmit/tall-install

Now, do the magic🪄

php artisan tall-install
 
# For the options, see the docs on GitHub: https://github.com/ralphjsmit/tall-install#installation--usage

Boom! You now have a fully-functioning Laravel-installation based on the TALL-stack.

Finally, we'll do a little clean-up as well:

composer dump-autoload

That was easy right?

Configuring a Laravel-project with DDD

Another feature worth mentioning is that this package can also refactor the application to make use of a Domain-driven folder structure. Using Domain-driven Design for an application is a great way to make it more maintainable and scalable. I highly recommend checking it out.

To use DDD, append the --ddd or -d flag to the tall-install command:

php artisan tall-install --ddd

Wrapping up

If you want to exactly know how your project will look like after installation, take a look at the two demo repositories I prepared for your:

Those repositories will be kept automatically up-to-date with GitHub Actions every time there is a new release.

I hope this package will be useful for your in starting development on new projects! It certainly is for me. If it was useful and you’ve saved yourself a lot of time, I’d highly appreciate if if you could spare a minute and star the repo on GitHub✨.

As always, feel free to open an issue or leave a comment with your ideas and questions!

Published by Ralph J. Smit on in Packages . Last updated on 11 March 2022 .