For years now i’ve (as many others have) been torn between the simplicity of SASS and the control of self hosted services.
SASS is right now (and i believe for many years to come) the big buzz word in web services, and i can see why, no maintenance, no need to update, low usage costs and many other things (this article doesn’t need to cover all the benefits, theres plenty of resources for that).
However self hosted apps still have their place. Larger companies with specific policies on data ownership, and generally just people who want control.
I personally fall right down the middle (as a user of services), i love SASS, but also love the idea of being in control of my own destiny and data.
As a developer of services i want it all! Offer SASS but also offer “enterprise” copies of my apps.
At the present time as an application developer i would like to see my services offered very similar to how Github operates (i’m sure there are many others, but as a php developer Github is something i use everyday so can see how it works).
They offer their platform as a SASS (many would argue a IASS or PASS as well, but thats not important).
BUT they also actively develop an enterprise version of Github (for a substantial price too).
The problem i see from a development point of view is the SASS and the enterprise codebases are different (or not in sync at least), and this is something i see everywhere i find a SASS who also offers self hosted versions.
My framework of choice right now is Laravel, and Taylor is currently developing Spark, which should turn any app into a SASS offering with a little reconfiguration. BUT even this solution would mean a difference in the codebase between a self hosted and SASS offering even if most of the codebase is the same.
So the question is how to write one codebase which can run as a sass and a self hosted app.
This is my current goal and i’ve been building a few Laravel packages that go towards creating this:
https://github.com/leemason/larastaller for installations
https://github.com/leemason/tenantable for settings the application data sources and configuration depending on the domain apps are run for.
Problems which still need solutions:
- How to distribute a self hosted app without the excess code needed to run it as a SASS
- How to keep 1 codebase for both versions
- Other problems not yet thought of
Im sure there are many other things that will crop up.
In part 2 ill be updating you all with my current progress and wether this model for applications is viable.