LaravelLaravel is the new kid (relatively) on the block and we get a lot of clients asking if this is the right route for them.  At the end of the day, it's a PHP framework and there's not always a black and white answer to the right fit.  Much of it comes down to individual project wants and needs.

What are you building?

When building a site or application, you want to use the minimum number of tools possible to do a good job and do it efficiently.  Buying a jackhammer to push a thumbtack into a wall would be overkill much like using Laravel for a few static pages wouldn't make any sense.

On the other hand, if you're going to try to tweak a blogging platform (read WordPress) to handle a full scale application, you might be using the wrong tools.  What often starts out a a client wanting a relatively simple application can eventually turn into a monster over time.  Users are drawn in by the flashy themes and promises of easy customization, but the patchwork mess of code put together by the end of the project is a nightmare for developers and ends up costing the client way more than it should have.

Planning a little goes a long way.  Even just jotting down some basic features of what you might integrate can help you pick the right tools before getting started.  While people are usually dissuaded by the higher intital price tag, the irony is that you end up spending less over the long run for a better product.

Why Laravel is awesome

Laravel is just plain fun to work in.  It takes the most mundane tasks and wraps them up with all the base functionality you'll need to get started on an application.  And despite having quite a few dependencies, the organization still manages to make it feel pretty lightweight.

Happy developers make the best code

The organization in any MVC (model-view-controller) framework forces at least a minimal level of consistency across developers.  Which means that even if you need to switch or hire new developers, picking up where they left off (shouldn't) be that bad.  That's not to say that there won't be differences in code quality, but with a very minimal level of structure, you're not completely clueless as to where to look.

In contrast, let's take the a modern WordPress project as an example.  A client wants to make some quick simple styling changes- great, where do we start?  Is there a child theme with a main stylesheet inside?  Were there custom CSS rules written and pulled from the database in a theme options panel?  Were the changes made directly to the parent theme and now there's a security update needed for the theme?  Ya, probably the last one with our luck.

Budgeting time and money for Laravel

Cost to build

Building out a site with Laravel is generally not as cheap as building out a site with WordPress or other mainstream CMS.  But if you're already considering Laravel, the others are probably not good options anyway.  Let's say (in theory) you could build an site for $5,000 in WordPress or $8,000 in Laravel.  Seems like a pretty clear-cut winner, right?

Firstly, the Laravel application will most definitely run smoother and faster than its WordPress counterpart.  You'll also have better control over how the data is stored.  This might sound like something you don't care about until you need to change your structure or import/export new items.  Now you have to pay someone to write complex MySQL queries to gather up all the data and clean it up in a CSV file.  If your schema was done right in Laravel, just click export on your database table and you have all the information you need.

Secondly, when you make changes or additions to your site, the Laravel site was built for you and can be adapted to anything you like.  A WordPress site often consists of tons of plugins that are made to fit the masses.  So let's say you decide to add in a third-party shipping option; you're going to spend (again theoretical non-sense numbers) $500 for the Laravel site, but $1000 hacking around the WordPress plugins.  Within just a few rounds of changes, the initial cost of the site is going to be justified.

Time to build

Time for building a Laravel websiteThere's no doubt about it- building out a custom application takes longer than tossing a premade CMS together.  Plan accordingly and give yourself and your developer enough time to complete the application.  The good news is that you can release an initial build with Laravel and always make additions later.  

Laravel comes with a very powerful migration tool that makes including new features into your database a breeze.  You can write a script to add in a new field and test it before pushing it to your production environment.  Once you've pushed a site live with WordPress, plan on keeping user data in tact as is or plan for huge headaches.

Laravel alternatives

Laravel is a great choice, but definitely not always the best.

Static HTML

If you're building out a quick site and don't plan to change it, just use a static HTML site.  There is no need to create a database when you're not storing variable information.  Aside from saving money, nothing beats the speed of a static site (assuming your developer optimized correctly).

CMS (WordPress, Drupal, SilverStrype, etc)

These are great for sites where updates are made regularly or you have a blog that you regularly maintain.  They provide a quick way for users to manage pages, blog posts, menus, and even user accounts.  They also generally have a pretty good amount of plugins, so adding a quick feature can be pretty easy if you find a plugin that matches your needs.  

Once you start thinking about creating a real user application, you should look elsewhere.  Some plugins have been built to allow for basic profile setups and forums.  While these programs do a decent job within their limitations, there are better options out there.

Symfony, CakePHP, Phalcon

Symfony frameworkLaravel is certainly not the only PHP framework to look at even though it's the most popular right now.  Symfony has been a longstanding framework that is a bit more robust and not as opinionated as Laravel.   While it's more powerful, it may be better for more complicated corporate projects.

Phalcon, on the other hand, is far lighter and faster than either Symfony or Laravel.  This might be a better option for a high traffic site that has a less complex back-end structure.  Your downside here is probably a smaller community and less packages available than you would get with a more popular framework.

TL;DR

There is no one size fits all approach to picking the right framework for your project, but picking the right one can make or break your project.  Don't get pigeonholed to a single framework because it's the only tool your developer knows; explore all your options.  If you need guidance or help, get in touch with us and we'll be glad to point you in the right direction.