Should Habitat be used as a starter kit?











up vote
9
down vote

favorite












I have seen some really great examples at how to build a website using Habitat. In many ways it contains a good percentage of features that I need.



Is this something that is production-ready and could be used as a base for my new website?










share|improve this question




























    up vote
    9
    down vote

    favorite












    I have seen some really great examples at how to build a website using Habitat. In many ways it contains a good percentage of features that I need.



    Is this something that is production-ready and could be used as a base for my new website?










    share|improve this question


























      up vote
      9
      down vote

      favorite









      up vote
      9
      down vote

      favorite











      I have seen some really great examples at how to build a website using Habitat. In many ways it contains a good percentage of features that I need.



      Is this something that is production-ready and could be used as a base for my new website?










      share|improve this question















      I have seen some really great examples at how to build a website using Habitat. In many ways it contains a good percentage of features that I need.



      Is this something that is production-ready and could be used as a base for my new website?







      helix best-practices habitat






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 14 hours ago









      jammykam

      10.5k11651




      10.5k11651










      asked 15 hours ago









      Michael West

      7,70421347




      7,70421347






















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          15
          down vote













          A Resounding No



          Think of Sitecore Habitat as the result of an assess and plan project phase where requirements and business objectives were already described for a ficticous client and developed.



          While thats great for a demo site, as it goes, most requirements differ wildly per client. Using this as a starter kit, places unfounded requirements that maybe the client didn't want. So, now an assess and plan phase has to go through and unwire the ones that the client doesnt want, and then wire in the ones that weren't accounted for.



          The time spent doing that comparative analysis, is generally greater and leads to bad practices because of having to undo something that someone already built. Or, as Dylan mentions in the comments, not done at all. Leaving behind bloat that will cause problems down the road.



          How Should Habitat Be Used?



          Instead, use Habitat as a model of a solution meant to provide a basis to help understand the principles of Helix. With a goal of creating something new that the client 100% intended to have with nothing else that they didn't.



          An Analogy



          Think of it like trying to write a childrens book but starting with a George R.R. Martin novel as a "starter kit". In theory, you're always going to want to have the Dragon Queen, but by the time you're done writing, most of your code is going to be dead.



          #HabitatIsNotAStarterKit





          share|improve this answer



















          • 1




            Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
            – Dylan Young
            15 hours ago










          • I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
            – Ken McAndrew
            14 hours ago






          • 2




            So you are saying there is a chance?
            – Chris Auer
            13 hours ago


















          up vote
          8
          down vote













          Every single answer you will receive will be a no, Habitat is not mean to be used as a starter kit. Unless of course your client wanted a website that was exactly like the Habitat (standard, legal or finance) websites. Even then, I wouldn't regard it as production ready.



          Note that the readme file of the Habitat Repository clearly states it is not a starter kit:




          Is Habitat a starter kit or template solution?



          No. You should not clone this repository for the purposes of starting a new Sitecore project. There are other community solutions which can be used as a starter for Helix-based Sitecore implementations. Habitat is intended as a reference example of a Helix-based Sitecore implementation.




          Habitat has always been regarded as an example solution that implements the Helix principles. It is not the only way to follow the Helix principles, but one example of how a solution could be structured, provide some conventions that could be follows, demonstrate how to define/enforce module boundaries and dependencies.



          Should you use Habitat?



          Yes, use it as a learning exercise. Read the Helix documentation, and see how the Habitat project tackles those aspects. But don't use it as a starter kit for an actual project for a client that ever makes it anywhere near production.



          Unpopular opinion maybe, but don't feel shy to take code from the Habitat project. I'm not saying copy/paste the entire repository, but undoubtedly there may be features/projects in the project which solve a particular problem you are trying to solve and maybe it solves it in a neat way, maybe the way multisite or datasources projects is handled, or the way the navigation feature is tackled. More likely these would be the Foundation layer projects though.



          The important part is to understand why those projects were created, what problem are they trying to solve and how they solve them following the Helix principles. Large parts of our codebase is probably already copy+paste, whether that's from a previous project or StackOverflow. They key is to never blindly copy+paste or follow an example, but to understand and then apply it yourself only if it solves the exact same problem you have.



          But don't kid yourself that the code in Habitat is the ultimate solution to anything. It's an example site and as with all things in Sitecore, there are plenty of ways to solve the same problem, even whilst following the Helix principles.






          share|improve this answer





















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "664"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f14967%2fshould-habitat-be-used-as-a-starter-kit%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            15
            down vote













            A Resounding No



            Think of Sitecore Habitat as the result of an assess and plan project phase where requirements and business objectives were already described for a ficticous client and developed.



            While thats great for a demo site, as it goes, most requirements differ wildly per client. Using this as a starter kit, places unfounded requirements that maybe the client didn't want. So, now an assess and plan phase has to go through and unwire the ones that the client doesnt want, and then wire in the ones that weren't accounted for.



            The time spent doing that comparative analysis, is generally greater and leads to bad practices because of having to undo something that someone already built. Or, as Dylan mentions in the comments, not done at all. Leaving behind bloat that will cause problems down the road.



            How Should Habitat Be Used?



            Instead, use Habitat as a model of a solution meant to provide a basis to help understand the principles of Helix. With a goal of creating something new that the client 100% intended to have with nothing else that they didn't.



            An Analogy



            Think of it like trying to write a childrens book but starting with a George R.R. Martin novel as a "starter kit". In theory, you're always going to want to have the Dragon Queen, but by the time you're done writing, most of your code is going to be dead.



            #HabitatIsNotAStarterKit





            share|improve this answer



















            • 1




              Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
              – Dylan Young
              15 hours ago










            • I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
              – Ken McAndrew
              14 hours ago






            • 2




              So you are saying there is a chance?
              – Chris Auer
              13 hours ago















            up vote
            15
            down vote













            A Resounding No



            Think of Sitecore Habitat as the result of an assess and plan project phase where requirements and business objectives were already described for a ficticous client and developed.



            While thats great for a demo site, as it goes, most requirements differ wildly per client. Using this as a starter kit, places unfounded requirements that maybe the client didn't want. So, now an assess and plan phase has to go through and unwire the ones that the client doesnt want, and then wire in the ones that weren't accounted for.



            The time spent doing that comparative analysis, is generally greater and leads to bad practices because of having to undo something that someone already built. Or, as Dylan mentions in the comments, not done at all. Leaving behind bloat that will cause problems down the road.



            How Should Habitat Be Used?



            Instead, use Habitat as a model of a solution meant to provide a basis to help understand the principles of Helix. With a goal of creating something new that the client 100% intended to have with nothing else that they didn't.



            An Analogy



            Think of it like trying to write a childrens book but starting with a George R.R. Martin novel as a "starter kit". In theory, you're always going to want to have the Dragon Queen, but by the time you're done writing, most of your code is going to be dead.



            #HabitatIsNotAStarterKit





            share|improve this answer



















            • 1




              Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
              – Dylan Young
              15 hours ago










            • I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
              – Ken McAndrew
              14 hours ago






            • 2




              So you are saying there is a chance?
              – Chris Auer
              13 hours ago













            up vote
            15
            down vote










            up vote
            15
            down vote









            A Resounding No



            Think of Sitecore Habitat as the result of an assess and plan project phase where requirements and business objectives were already described for a ficticous client and developed.



            While thats great for a demo site, as it goes, most requirements differ wildly per client. Using this as a starter kit, places unfounded requirements that maybe the client didn't want. So, now an assess and plan phase has to go through and unwire the ones that the client doesnt want, and then wire in the ones that weren't accounted for.



            The time spent doing that comparative analysis, is generally greater and leads to bad practices because of having to undo something that someone already built. Or, as Dylan mentions in the comments, not done at all. Leaving behind bloat that will cause problems down the road.



            How Should Habitat Be Used?



            Instead, use Habitat as a model of a solution meant to provide a basis to help understand the principles of Helix. With a goal of creating something new that the client 100% intended to have with nothing else that they didn't.



            An Analogy



            Think of it like trying to write a childrens book but starting with a George R.R. Martin novel as a "starter kit". In theory, you're always going to want to have the Dragon Queen, but by the time you're done writing, most of your code is going to be dead.



            #HabitatIsNotAStarterKit





            share|improve this answer














            A Resounding No



            Think of Sitecore Habitat as the result of an assess and plan project phase where requirements and business objectives were already described for a ficticous client and developed.



            While thats great for a demo site, as it goes, most requirements differ wildly per client. Using this as a starter kit, places unfounded requirements that maybe the client didn't want. So, now an assess and plan phase has to go through and unwire the ones that the client doesnt want, and then wire in the ones that weren't accounted for.



            The time spent doing that comparative analysis, is generally greater and leads to bad practices because of having to undo something that someone already built. Or, as Dylan mentions in the comments, not done at all. Leaving behind bloat that will cause problems down the road.



            How Should Habitat Be Used?



            Instead, use Habitat as a model of a solution meant to provide a basis to help understand the principles of Helix. With a goal of creating something new that the client 100% intended to have with nothing else that they didn't.



            An Analogy



            Think of it like trying to write a childrens book but starting with a George R.R. Martin novel as a "starter kit". In theory, you're always going to want to have the Dragon Queen, but by the time you're done writing, most of your code is going to be dead.



            #HabitatIsNotAStarterKit






            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 15 hours ago

























            answered 15 hours ago









            Pete Navarra

            9,5772270




            9,5772270








            • 1




              Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
              – Dylan Young
              15 hours ago










            • I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
              – Ken McAndrew
              14 hours ago






            • 2




              So you are saying there is a chance?
              – Chris Auer
              13 hours ago














            • 1




              Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
              – Dylan Young
              15 hours ago










            • I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
              – Ken McAndrew
              14 hours ago






            • 2




              So you are saying there is a chance?
              – Chris Auer
              13 hours ago








            1




            1




            Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
            – Dylan Young
            15 hours ago




            Or what seems to be more common out there, that vendors that use it as a "StarterKit", never do the comparative analysis, and then your solution comes with alot of unnecessary bloat that has unknown consequences.
            – Dylan Young
            15 hours ago












            I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
            – Ken McAndrew
            14 hours ago




            I'd say definitely mine the Foundation layer, and/or use something that's not as "feature-rich" as Habitat like github.com/muso31/Helixbase, which is more designed as a "starter kit" that's mainly Foundation with some examples on the Project/Feature level.
            – Ken McAndrew
            14 hours ago




            2




            2




            So you are saying there is a chance?
            – Chris Auer
            13 hours ago




            So you are saying there is a chance?
            – Chris Auer
            13 hours ago










            up vote
            8
            down vote













            Every single answer you will receive will be a no, Habitat is not mean to be used as a starter kit. Unless of course your client wanted a website that was exactly like the Habitat (standard, legal or finance) websites. Even then, I wouldn't regard it as production ready.



            Note that the readme file of the Habitat Repository clearly states it is not a starter kit:




            Is Habitat a starter kit or template solution?



            No. You should not clone this repository for the purposes of starting a new Sitecore project. There are other community solutions which can be used as a starter for Helix-based Sitecore implementations. Habitat is intended as a reference example of a Helix-based Sitecore implementation.




            Habitat has always been regarded as an example solution that implements the Helix principles. It is not the only way to follow the Helix principles, but one example of how a solution could be structured, provide some conventions that could be follows, demonstrate how to define/enforce module boundaries and dependencies.



            Should you use Habitat?



            Yes, use it as a learning exercise. Read the Helix documentation, and see how the Habitat project tackles those aspects. But don't use it as a starter kit for an actual project for a client that ever makes it anywhere near production.



            Unpopular opinion maybe, but don't feel shy to take code from the Habitat project. I'm not saying copy/paste the entire repository, but undoubtedly there may be features/projects in the project which solve a particular problem you are trying to solve and maybe it solves it in a neat way, maybe the way multisite or datasources projects is handled, or the way the navigation feature is tackled. More likely these would be the Foundation layer projects though.



            The important part is to understand why those projects were created, what problem are they trying to solve and how they solve them following the Helix principles. Large parts of our codebase is probably already copy+paste, whether that's from a previous project or StackOverflow. They key is to never blindly copy+paste or follow an example, but to understand and then apply it yourself only if it solves the exact same problem you have.



            But don't kid yourself that the code in Habitat is the ultimate solution to anything. It's an example site and as with all things in Sitecore, there are plenty of ways to solve the same problem, even whilst following the Helix principles.






            share|improve this answer

























              up vote
              8
              down vote













              Every single answer you will receive will be a no, Habitat is not mean to be used as a starter kit. Unless of course your client wanted a website that was exactly like the Habitat (standard, legal or finance) websites. Even then, I wouldn't regard it as production ready.



              Note that the readme file of the Habitat Repository clearly states it is not a starter kit:




              Is Habitat a starter kit or template solution?



              No. You should not clone this repository for the purposes of starting a new Sitecore project. There are other community solutions which can be used as a starter for Helix-based Sitecore implementations. Habitat is intended as a reference example of a Helix-based Sitecore implementation.




              Habitat has always been regarded as an example solution that implements the Helix principles. It is not the only way to follow the Helix principles, but one example of how a solution could be structured, provide some conventions that could be follows, demonstrate how to define/enforce module boundaries and dependencies.



              Should you use Habitat?



              Yes, use it as a learning exercise. Read the Helix documentation, and see how the Habitat project tackles those aspects. But don't use it as a starter kit for an actual project for a client that ever makes it anywhere near production.



              Unpopular opinion maybe, but don't feel shy to take code from the Habitat project. I'm not saying copy/paste the entire repository, but undoubtedly there may be features/projects in the project which solve a particular problem you are trying to solve and maybe it solves it in a neat way, maybe the way multisite or datasources projects is handled, or the way the navigation feature is tackled. More likely these would be the Foundation layer projects though.



              The important part is to understand why those projects were created, what problem are they trying to solve and how they solve them following the Helix principles. Large parts of our codebase is probably already copy+paste, whether that's from a previous project or StackOverflow. They key is to never blindly copy+paste or follow an example, but to understand and then apply it yourself only if it solves the exact same problem you have.



              But don't kid yourself that the code in Habitat is the ultimate solution to anything. It's an example site and as with all things in Sitecore, there are plenty of ways to solve the same problem, even whilst following the Helix principles.






              share|improve this answer























                up vote
                8
                down vote










                up vote
                8
                down vote









                Every single answer you will receive will be a no, Habitat is not mean to be used as a starter kit. Unless of course your client wanted a website that was exactly like the Habitat (standard, legal or finance) websites. Even then, I wouldn't regard it as production ready.



                Note that the readme file of the Habitat Repository clearly states it is not a starter kit:




                Is Habitat a starter kit or template solution?



                No. You should not clone this repository for the purposes of starting a new Sitecore project. There are other community solutions which can be used as a starter for Helix-based Sitecore implementations. Habitat is intended as a reference example of a Helix-based Sitecore implementation.




                Habitat has always been regarded as an example solution that implements the Helix principles. It is not the only way to follow the Helix principles, but one example of how a solution could be structured, provide some conventions that could be follows, demonstrate how to define/enforce module boundaries and dependencies.



                Should you use Habitat?



                Yes, use it as a learning exercise. Read the Helix documentation, and see how the Habitat project tackles those aspects. But don't use it as a starter kit for an actual project for a client that ever makes it anywhere near production.



                Unpopular opinion maybe, but don't feel shy to take code from the Habitat project. I'm not saying copy/paste the entire repository, but undoubtedly there may be features/projects in the project which solve a particular problem you are trying to solve and maybe it solves it in a neat way, maybe the way multisite or datasources projects is handled, or the way the navigation feature is tackled. More likely these would be the Foundation layer projects though.



                The important part is to understand why those projects were created, what problem are they trying to solve and how they solve them following the Helix principles. Large parts of our codebase is probably already copy+paste, whether that's from a previous project or StackOverflow. They key is to never blindly copy+paste or follow an example, but to understand and then apply it yourself only if it solves the exact same problem you have.



                But don't kid yourself that the code in Habitat is the ultimate solution to anything. It's an example site and as with all things in Sitecore, there are plenty of ways to solve the same problem, even whilst following the Helix principles.






                share|improve this answer












                Every single answer you will receive will be a no, Habitat is not mean to be used as a starter kit. Unless of course your client wanted a website that was exactly like the Habitat (standard, legal or finance) websites. Even then, I wouldn't regard it as production ready.



                Note that the readme file of the Habitat Repository clearly states it is not a starter kit:




                Is Habitat a starter kit or template solution?



                No. You should not clone this repository for the purposes of starting a new Sitecore project. There are other community solutions which can be used as a starter for Helix-based Sitecore implementations. Habitat is intended as a reference example of a Helix-based Sitecore implementation.




                Habitat has always been regarded as an example solution that implements the Helix principles. It is not the only way to follow the Helix principles, but one example of how a solution could be structured, provide some conventions that could be follows, demonstrate how to define/enforce module boundaries and dependencies.



                Should you use Habitat?



                Yes, use it as a learning exercise. Read the Helix documentation, and see how the Habitat project tackles those aspects. But don't use it as a starter kit for an actual project for a client that ever makes it anywhere near production.



                Unpopular opinion maybe, but don't feel shy to take code from the Habitat project. I'm not saying copy/paste the entire repository, but undoubtedly there may be features/projects in the project which solve a particular problem you are trying to solve and maybe it solves it in a neat way, maybe the way multisite or datasources projects is handled, or the way the navigation feature is tackled. More likely these would be the Foundation layer projects though.



                The important part is to understand why those projects were created, what problem are they trying to solve and how they solve them following the Helix principles. Large parts of our codebase is probably already copy+paste, whether that's from a previous project or StackOverflow. They key is to never blindly copy+paste or follow an example, but to understand and then apply it yourself only if it solves the exact same problem you have.



                But don't kid yourself that the code in Habitat is the ultimate solution to anything. It's an example site and as with all things in Sitecore, there are plenty of ways to solve the same problem, even whilst following the Helix principles.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 14 hours ago









                jammykam

                10.5k11651




                10.5k11651






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f14967%2fshould-habitat-be-used-as-a-starter-kit%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Accessing regular linux commands in Huawei's Dopra Linux

                    Can't connect RFCOMM socket: Host is down

                    Kernel panic - not syncing: Fatal Exception in Interrupt