Sign-up to stay informed about news and updates.
2018-05-22

When a CMS Becomes a Laravel Project Boilerplate


Post Image

The curses and the blessings you're likely to witness if you decide to break the rules and alter Photon CMS core files.


Without a doubt, Orange Hill Development, a company that Photon CMS sprung from, is the biggest Photon CMS consumer today. Being a CEO of Orange Hill Development I’d like to tell you a little more about our story. About our workflow. And how we use Photon every day.

At Orange Hill Development we use Photon for all project sizes. Lots of projects are actually medium to large sized projects, that is, taking between three and six months to complete. It’s great to be able to periodically update small-ish projects to the latest and greatest Laravel, used packages or Photon CMS versions. It’s almost always easy. 

However, medium to large sized projects are specific. 

We tend to use a lot of different packages. Often, we like the 80% of a chosen package, but we need to write the remaining 20% ourselves. So, we fork, develop and use it as ours. We finish the project, we go live and a client is happy.

As our client enjoys his new project for months and for months, the world keeps spinning, new Laravel versions and new (major) package versions emerge. Sooner or later, but sure enough, a client comes back to us asking for a major upgrade having collected invaluable real-world experience and data. Alright! No problems. That’s a good chance to update the dependencies. Latest and greatest. 

Laravel upgrades are not easy. We know it and we take it for granted. It’s a pain that gave birth to Laravel Shift service that automates the Laravel upgrade process as good as it can. In general, new Laravel version is released twice per year, so you’re bound to do some manual updating sooner or later.

But, a cool package that we forked months ago just got published as a new version. What do we do - do we upgrade our fork? Depends on the complexity and the budget, of course. If we don’t, however, that often means that upgrading to the latest Laravel version is not possible either, as an old package works only with a dated Laravel version. If we do, that’s just more manual work.

Let’s not forget our favorite dependency - Photon CMS. It’s been months and Photon progressed, and even though Photon CMS v.1.1 supports automatic upgrades it’s not all daisies. Not at all. Upgrading Photon CMS for medium-to-large projects is as hard as upgrading Laravel for us.

Why?

Because we’re not afraid to use Photon CMS as a Laravel project boilerplate.

This means that we’ll knowingly alter Photon CMS core files to achieve certain functionality. And, that’s OK! It’s OK as long as you know that automatic Photon CMS upgrades are no longer an option. We know why we did it and what was the price. 

But, by doing so, we were able to get our custom-built API running before our competitors could and at a lower cost.

We were able to set-up a kick-ass custom Vue.js-based admin panel before our competitors could and at a lower cost.

And we were able to start making a profit for our client long before our competitors could.

Can we still upgrade to the latest and greatest? Sure we can, at a similar cost as when we’re upgrading any Laravel-based project which can range from a couple of hours to a couple of days of work.

The main takeaway is - don’t be afraid to use Photon CMS as a Laravel project boilerplate even if that means that automatic upgrades are no longer an option!

Happy coding!

Sign-up to stay informed about news and updates.