Custom basic CMS update automation

So I buld dynamic websites. As CMS I use something I have built by myself because I wanted to offer something very simple and easy to use to my client: they are small clent and they can't spend time to learn how to use Wordpress, OpenCart or other complex CMS. They just have to add, delete and modify some products data, or even just add some news to publish in the homepage.
So I have developed my own CMS. My problem is that I always work on it to improve it and everytime I change somewthing I have to manually upload changed files to the clients websites in order to always be sure I have the same code running in the various Control Panels.

As you guess, this becomes soon a crazy task, subject to errors and confusion. I would like to automate this process but I'm not sure how to do it.

Let me say that the develpment version of the code uses Git as Version control system. I also have to specify that between the various versions of the Control Panel, only one file is specific to that specific client, a configuration file in json format which my classes read to do the various tasks.

This config files holds specific settings and many times, as I improve the doce and some new features, the config file itself needs to be changed and I have some doubt this can be automated because here I need to preserve orginal specifi settings whil I add new sections with new settings and their default values.

So I think I could manually update only this file, but how can I make the other core components "self-update" when I change the "matrix"?

Any idea or suggestion?

Thank you in advance for any idea :)
LVL 32
Marco GasiFreelancerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

David FavorLinux/LXD/WordPress/Hosting SavantCommented:
You're basically talking about duplicating updates, similar to how WordPress handles updates.

Your primary consideration here will be whether your income will be higher working on your own CMS or selling WordPress services.

This consideration came up for me years ago. I opted to go with providing hosting + other WordPress related services, to leverage all the dev work which goes on inside the WordPress ecosystem, because I can leverage a multi-million/month dev ecosystem for free.

You can manage your update process however seems best + you're still writing code (zero money) rather than adding new clients (money).

Tip: If you're using GitHub, you can simply tag updates to be one file or many files. This way an update from... say your latest/master branch... will pull either one file or many files.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
only one file is specific to that specific client
It sounds like you may just need to split up your config file.  For instance, you probably don't want to over write database connections or where the CMS is installed on the users server.  But other parts of the config file do need to get written over when you make updates.  Perhaps your config file can contain two separate config files. One global and one local (db connections).
Marco GasiFreelancerAuthor Commented:
Hi and sorry fir the delay.
@David: I understand your point about business, but I love to write code :) I'll check about tagging updates

@Scott: that's sounds good too. Maybe I can use both...

Thank you all
OWASP: Threats Fundamentals

Learn the top ten threats that are present in modern web-application development and how to protect your business from them.

Marco GasiFreelancerAuthor Commented:
Thank you again
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
Marco, for what it is worth, I run into the same thing as you.   A client finds WP too hard to use when they just want to create a calendar or manage some products.  I do the same thing as you where I create a simple cms for title, description(s), categories, images etc.  I have tried duplicating and the issue I run into is the needs from one to the other are not identical.  I just try and give them objective reasons for using a custom cms or WP.  Most are happy to pay more for something custom that just works.  I have tried to create a CMS on my own site to do what you want thinking I could use for multiple people and just keep the code in one spot. The issue is the same. The reason somebody wants a custom CMS is to be tailored to their own system.  I have just went with that and kept custom code for each individual.

If you are doing this for shopping carts, it may be interesting to check out opencart where you do the initial set up and have your code access the api for managing product in what you will make a simple interface  You end up presenting something easy to your client, but it is built on something proven that you don't have to manage to the extent you are doing.

Good luck!
Marco GasiFreelancerAuthor Commented:
Scott, thank you for still giving help:) About OpenCart API: are you saying that I can install OpenCart and then, using the API, I can use whatever I want for the frontend? I mean, we are not linked to OPenCart themes? Really interesting. In effect I've just ended to setup a small ecommerce system whith a bunch of classes in their namespace and it works nicely, but OpenCart offers much more so this is definitely a useful info you gave me. Thank you.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Development

From novice to tech pro — start learning today.