Should I Build a CMS or Should I Buy One?

Поділитися
Вставка
  • Опубліковано 31 тра 2024
  • Should I build a custom content management system (CMS) or should I buy one and make it work? What should I think about when considering building a CMS? These are the questions we will answer in today's episode of Dev Questions.
    Website: www.iamtimcorey.com/
    Ask Your Question: suggestions.iamtimcorey.com/
    Sign Up to Get More Great Developer Content in Your Inbox: signup.iamtimcorey.com/

КОМЕНТАРІ • 68

  • @webluke
    @webluke Рік тому +5

    I interned at the end of college at a place that was in the process of moving to a new CMS. The staff was very against the move and process. They were trying to figure out how to hand-type the instructions on how to build the 10,000+ parts for their machines in the new system. The CMS company had a guy there working for over 2 months, trying to get things working. He would come to me to get help with the SQL and how to do things. The database was a mess, and it felt like they were sold a lot of marketing bs and not a good system.
    I took the old DOS database and converted it using C# into a CSV file that I could copy and paste into a spreadsheet the CMS company provided that would run a macro to add the data to the database. The clunky old computer I used would take 45 minutes to run my program and another 2 hours to run the spreadsheet macros. A fun experience that made me question CMSs, but if you buy a CMS, there is a lot of value in it if it works as advertised.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +3

      Thanks for sharing. You definitely need to find a CMS that works as advertised. There are a lot of bad ones out there (a testament to the fact that even companies dedicated to making them can make poor ones, so one developer on their own probably isn't going to do better).

  • @doit4dan51
    @doit4dan51 Рік тому

    Great insight! Our organization struggled from this being one of the first online organizations in the early 2000s. We have had the conversation for years about moving to an out of the box CMS, however, we are still working under a highly customized legacy system. The migration itself would be a massive effort and like you said, we are focused on features and maintenance/migration efforts are at the bottom priority.

  • @adelhishem1
    @adelhishem1 Рік тому

    Glad to hear a clear straight answer instead of "it depends on". This brought a great insight to the topic. Thanks for sharing.

  • @cjm3801
    @cjm3801 Рік тому

    This is a good topic. There are deeper questions here though such as how many integrations between different systems, platforms and software is too many for a developer or team to maintain? No mater what, you’re going to be maintaining either your own software or your own integration between others. The later sounds easier but that is almost always not the case, in my experience.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      Sometimes, the answer is that you cannot support the integration and that they need to use the seemingly lesser solution offered by the existing system.

  • @AlfredMorganOutdoors
    @AlfredMorganOutdoors Рік тому +3

    My company has a 18 year old system right now that supports a lot of clients. A lot of custom CMS work, its very hard to find something that we could modify and bring over to existing system.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +3

      So there is an exception if your company’s business is about that CMS. For example, I worked at an insurance company that built their own system because it was what set them apart. However, doing so does limit you in the future. Hiring and onboarding people to maintain the system is harder and you can’t Google for how to maintain your system since it is custom. It’s a lot cheaper to buy a system, but you don’t always have that luxury.

    • @AlfredMorganOutdoors
      @AlfredMorganOutdoors Рік тому

      @@IAmTimCorey Definitely agree with all this. We are running into this program now actually since the system so so custom. Good insights tho and I appreciate the response.

  • @lilcaesarman
    @lilcaesarman Рік тому

    Thanks for this reality check :) I've been wanting to do one for years. I'm learning blazor so I could write the tool using that, but I haven't spent much time developing the tool. From this video, I will likely just build a shell of the tool for real-life experience 👍

  • @Kokombads
    @Kokombads Рік тому

    sir tim, do you have a video on how to create a project from start? i mean the step by step, like you're following waterfall model or something? or do you code right away? do you have a presentation about that?

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      I have multiple. Look at my playlists for Full Courses. I have three here on UA-cam.

  • @nukeman444
    @nukeman444 Рік тому +3

    I will do a *bee line* back to Umbraco CMS like I started with in the first place.
    *Reason: 1* It's based on C# which I've used since framework 2.2
    *Reason: 2* Like you mentioned in this video. "It's already completed"

    • @marcusmaunula5018
      @marcusmaunula5018 Рік тому

      Just rolled out a version 11 which is net core 7. They are well ahead of the curve now :)

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      That is a nice option.

    • @MrSamurai023
      @MrSamurai023 Рік тому

      What kind of applications are you building using Umbraco CMS ?

  • @michael_azzer
    @michael_azzer Рік тому

    ​ @IAmTimCorey I’m impressed by how you reply to every comment on your channel. Thank you for showing us that you care and value our feedback. You are awesome! :)

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      You are welcome. I don't get to all comments, but I try.

  • @MrSamurai023
    @MrSamurai023 Рік тому

    @iamtimcorey Do you suggest CMS only for simple websites ? Will it not put limitations on what the application can do if I go CMS way? Now with technologies like Blazor, is it not better than CMS ?

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      I don't typically recommend a CMS for a simple site. For example, www.iamtimcorey.com does not use a CMS at all. As for when to use a CMS instead of just building a site in Blazor, that depends on a LOT of variables.

  • @majidmajid2192
    @majidmajid2192 Рік тому

    Hi and thanks for your video... Your videos have a relationship with my problems always, and i really thank you for that.
    Actually I'm in a company trying to make an ERP with just two developer! I can see without any doubt it can't be done in the way it should be done!
    What do you recommend for this situation? Are you looking for new job or continue and try to do it as well as you can?

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      I can't tell you if you should stay or go. That's up to you. However, I would recommend being very clear about what you can do, what you have done, and what you plan to do. Document things clearly, including what you say you can do. If people start to blame you for things not going well, point back to your documentation of where you told them it wouldn't go well. For instance, it is fairly easy to get an input form up and running quickly. However, communicate that this is the easy part. Securing it, testing edge cases, etc. is the part of the iceberg you cannot see. When they push you to move on and not do those things, be clear about their need but then do what they say. When things break, if they start to blame you, you have something to point to that shows you tried to warn them. Don't do this to spite them. It is just good practice to protect yourself. Two people can build something functional over time. However, it is VERY difficult to do without being VERY careful about scope, so try to communicate that. Scope creep will kill any project, but especially one like you are undertaking.

  • @user-kh6yu9jb4z
    @user-kh6yu9jb4z Рік тому

    I have an Access DB where we import excel spreadsheet from MAXIMO and from there we track work orders completed, inspected and then print reports. I have been thinking of developing a web application for this, but after watching your video, I am thinking maybe I need CMS. Do you have any recommendations of CMS I could use to recode my Access DB to web application? Thanks.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      I'm sorry, I don't have any specific recommendations. I would need to know a LOT more information to make a recommendation. I would recommend you map out your requirements clearly, and then look at the various options yourself to see which ones best fit your needs.

    • @alexsandrc4041
      @alexsandrc4041 Рік тому

      @@IAmTimCorey Would you have a video on how to map out requirements? Thanks.

  • @considercaption
    @considercaption 6 місяців тому

    Just use payload. It’s a next js, typescript cms framework that’s completely customizable and looks good out of the box. Plus it’s open source. There’s no visual builder for designers unless you use vercel, but there is a content editor, admin console, custom components etc in the dashboard.

  • @aidennymes6335
    @aidennymes6335 Рік тому

    I've always coded my own software, never used premade libraries or frameworks. I've build everything imaginable. but this was all in my free time and just for educational purposes. in a professional work environment when you're working with clients, you should always use well tested and maintained base software for obvious reasons.

  • @pxnchx93
    @pxnchx93 Рік тому

    What CMS providers would you recommend Tim?

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +1

      That really depends on your specific situation.

  • @mikemurphy1824
    @mikemurphy1824 Рік тому

    I've been watching enough of Tim's videos to know that this video can be distilled into a single comment... "It depends..." hahaahahaah🤣

  • @therealfodder
    @therealfodder Рік тому

    As a developer that has to "wear many hats" this is the point I've been making with my colleagues. Leave the routine (and quite frankly boring!) web stuff to the experts in their field. We can get busy with the fun stuff - abstracted sites + micro services etc.

  • @TuanAnh-hc1nm
    @TuanAnh-hc1nm Рік тому

    There are tons of free sample templates out there for free. And with AI support we don't need to start anything from scratch

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +7

      Those don’t really solve the problem. They just make it easier to make a big mistake.

  • @LiakatHossain
    @LiakatHossain Рік тому +2

    I spend 5 yrs to build an e-commerce cms beside my job and end up being nothing. Simply, we are limited by physics 😂

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +1

      lol yeah, that’s a common story.

  • @axonzet1585
    @axonzet1585 Рік тому +1

    I realy like to watch your video, but please make youtube time codes(chapters), so I wiil be able to jump back to part that I need to watch again, thanks for you job!

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +1

      Right now, I don't have the time to do that. I rely on community members to provide them for you.

  • @andywalter7426
    @andywalter7426 Рік тому

    The only problem is if the CMS is bought instead of built, then you have to hire more data entry people to manually do things vs doing it via programming. My first job out of college I had to manually do things and that was when I decided to learn programming so I built the custom CMS system and still eventually ran out of work to do.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +4

      First, data entry is cheap and easy. If that’s your biggest concern, you should obviously go the purchase route. Second, almost all CMS systems have an API or way to get data in and out of their systems. So no, that doesn’t have to be a limitation either.

  • @jonathanbaird1633
    @jonathanbaird1633 5 місяців тому

    A lot of the buy instead of build is just shifting the responsibility to 3rd parties. Managers always want to shift the blame to another party if something goes wrong. If you buy instead of build, you're putting a lot of trust in that 3rd party to be compliant. And you can't always shift the blame. You will still end up with either your data leaked, your service is down, bad UX or UI etc and since you didn't build it, you can't do anything about it. When you build you can make sure all the compliance, security, and maintenance is done. Yes that costs more, but you are more secure, because you know you did it. The examples where companies have bad code base and bad security because they do everything in house is because management did not know how to properly scope, price, and build the project.

    • @IAmTimCorey
      @IAmTimCorey  5 місяців тому

      This is true, but incomplete information. Let's take a common "buy instead of build" item: authentication and authorization. I HIGHLY recommend you use a third-party system for this instead of building your own. Yes, you are going to depend on a third party to do the work right and to be competent, but let's look at the other half of the buy/build argument. If you build an auth system, you have to validate that the code is rock solid and does not have any vulnerabilities. Then you need to have a third-party test your code independently to be sure that is the case. Then you need to continually monitor the security space to keep on top of any new vulnerabilities or exploits and then update your software appropriately to counter any problems. You also need to integrate with other systems for 2 factor authentication, email verification, etc. and make sure that they maintain their level of security. If you do it right, you are going to spend a LOT more than it would cost to license a third-party system. If you don't do it right, you are going to leave your application vulnerable. Even worse, since you probably won't be monitoring it closely, your system might be exposed and you don't even know it. That can lead to years of exploits before you find out. So your choice in this particular case is to spend lots of money to do it yourself, spend quite a bit less to use a third party, or do a lesser job and just hope that no one targets your company.
      While this is a big example, these discussions are true at a smaller level as well. Want to write data to Excel files? You could use a third party or you could build your own. If you build your own, it is going to take you weeks to get it up and running right. Then, when Excel makes a format change or when you have data that you didn't have before that needs a different format, you need to do more work on your library. That takes more time. Then, when the NuGet packages you relied on change because of vulnerabilities, you need to update them and re-validate. Then when a new version of .NET comes out, you need to update your code and re-validate. Then when one of your systems stays on an older version of .NET but another uses the newer version of .NET, you need to make sure your library supports both versions. All of that time isn't free. It takes someone's salary and it takes them away from other projects. Let's just estimate that the initial integration took 80 hours from idea through publishing (a wildly low estimate when you look at actual time, not just coding time). Then we estimate another 20 hours of updates in the first year. Then we estimate the same for every following year. Again, these are wildly low numbers. If we estimate that you pay a developer $30/hour and give them another $15/hour in benefits (again, wildly low for the US), the first year of building and maintaining the feature will cost you $4,500. Every year after that will cost you $900. A license for EPPlus will cost you $379/year. That includes all updates. And don't forget that we wildly under-estimated the time it would take to build and maintain this one feature.
      So as a business, you have to figure out if paying thousands of dollars per year more than what a third-party license would cost is worth it. It can be. But just don't think that it is free. Building is absolutely a MUCH more expensive choice. Also, that doesn't take into account the opportunity cost of tying up that developer when they could be doing something else instead.

  • @benjaminshinar9509
    @benjaminshinar9509 Рік тому +1

    unless it's your core business, you should never do it yourself.
    the same way we shouldn't write a custom math library, or REST client library. we use 3rd party ones from nuget.
    and we don't build up RDMS, we use MS-SQL.
    we don't design special compilers, we don't have specialized boards.
    your company is not a unicorn. unicorns don't exist. do what you specialize in and focus on where you can get the most value out of the development effort.

  • @yperman1
    @yperman1 Рік тому

    Except e-commerce I don't see any reason to use a CMS. Unless you are a UI developer and you don't want to pay for a back-end developer. Or if you do not know anything about coding and you are just a businessman that you thing that you will make and sell websites using a CMS. The answer to the question is a good idea to make one by yourself is NO do not do it. There is a lot of job in there and for what? who will trust you to buy it or to use it.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому

      This is a rather broad, sweeping statement. There are LOTS of situations where a CMS is the right option over building something custom beyond just e-commerce. Remember that the focus of your business almost certainly isn't building internal tooling. Focus on your business rather than on building tools that don't help your business's bottom line. If writing something custom will help your business's bottom line, go for it. Just be VERY careful to properly estimate the costs.

    • @forza-kr4bx
      @forza-kr4bx Рік тому

      How about version management, workflow management, not everyone should be able to publish, routing, push vs serve model, integration w iis or apache tomcat, if you have the money and don't want to reinvent the wheel buy. Also be wary of open source. Drupal can work but I find it's module system clunky . A lot of stuff is still in beta

  • @loadiam
    @loadiam Рік тому +1

    This is my life...

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +3

      Building a CMS or maintaining one?

    • @loadiam
      @loadiam Рік тому

      @@IAmTimCorey The one I took over in 2015 written by an amateur PHP programmer which then became my responsibility to recode and introduce OOP. Plan is to rebuild the whole thing in .NET Core + Blazor. I am an All Access Pass member burning through your content now. Enjoying the ride.

  • @runtimmytimer
    @runtimmytimer Рік тому +1

    I've never wanted to build a CMS. I like to think I'm smarter than that.🤣

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +2

      lol It will call to you at some point.

  • @marcusmaunula5018
    @marcusmaunula5018 Рік тому +1

    Or you can just use Umbraco.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +4

      Which is the equivalent of "buying" one that you can extend.

    • @nukeman444
      @nukeman444 Рік тому +2

      That's exactly what I said :). I'm using Umbraco too.

    • @marcusmaunula5018
      @marcusmaunula5018 Рік тому

      @@IAmTimCorey Except it's free :)

    • @marcusmaunula5018
      @marcusmaunula5018 Рік тому

      @@IAmTimCorey It is the equivalent of re-inventing the wheel to not use it.

  • @andywalter7426
    @andywalter7426 Рік тому

    Would you think that if companies purchased instead of building their own, then there really is very need for developers. Because if everything is off the shelf, then there is no need for programmers in the real world so its only good for a hobby.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +5

      Yes, there is a need for developers. However, a company should focus on their core mission. For example, most companies shouldn't build their own text editors. They should use Microsoft Word. That's because their primary mission isn't to create a text editor. However, there are companies who make text editors in competition with Microsoft Word. That's their core mission. Just because a developer CAN do something doesn't mean that they SHOULD. There will always be a need for developers (even with the rise in AI, the need for developers will actually INCREASE).

  • @phillismable6303
    @phillismable6303 Рік тому +3

    Way too much Waffle - please just get straight to the point, keep to the point and stop with your histroy lessons. Get back to teaching people to create Applications, it's what you are great at. These filler videos are just a waste of time, yes they create a bit of revenue, but not as much as the TEACHING videos.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +4

      Context. It matters.
      As for the revenue, that’s not why I create videos, nor is it a contributing factor. I create videos to help people. For these videos, I’m answering questions people asked.

    • @phillismable6303
      @phillismable6303 Рік тому +1

      @@IAmTimCorey if they want answers to questions ask google, education is a human to human connection that google just can’t match. The last time I enjoyed one of your videos it was the suggestion site application which was great. I showed about 6 different people your tutorials and each own came back with a WOW I learned something new. With these fillers they are just taking your talent away from what a lot of people consider to be your best quality - being an educator in code !

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +8

      Saying "If they want answer to questions, ask Google" and then directly following that up with "education is a human to human connection that Google just can't match" is quite a pairing. First, the second half just advocated for people to not do what you suggest in the first half. Second, where do you think the information on Google comes from? It comes from someone generating the content to put there. Someone like me. Third, not all education is about seeing code written. I've seen great developers who could write great code languish in their job because they didn't have some important wisdom outside of writing code. In the instance this specific video is covering, I've seen people and companies go down the road of building because they didn't know better and they didn't know how to properly evaluate the cost up-front. Part of being a senior developer is having the wisdom of experience to help lead other developers down better paths. That's what I'm doing for a larger audience. Being able to make wiser decisions earlier on in your career can be a HUGE benefit and lead to better outcomes. I do that because I'm not just here to show people code. I'm here to help them be better developers and make better decisions because they have better information earlier in their career than I did.
      I'm glad you enjoyed the Suggestion App series. Just know that these videos don't take away from those videos. I put out two videos a week (or more). One is a Dev Questions video (on Thursdays) and one is a coding video (on Mondays). Last year I put out about 110 new videos. 51 were Dev Questions videos (I believe I missed a week) and the rest were coding videos.
      You don't have to like every video I put out. That's fine. However, you aren't the only person watching. Instead of complaining about video types you don't like, watch the ones you do and skip the rest.