Starting a new Umbraco project

"Ah, greenfield! No legacy, no constraints, new-car smell!"

It’s not everyday we as developers have the pleasure to start new client projects from scratch, especially when you are working with bigger and bigger clients.

Today I work with some of the biggest clients in the nordic region but back in the days I used to work with a lot of really small clients and back then I got to start new projects every month, sometimes several each month, so god knows I have started quite the few projects in my days.

This week I was curious to hear how the community prefers to start new Umbraco projects so I started a poll on Twitter, and the results from that poll will be revealed at the bottom of this post.

But first I thought I would cover the different options and give my two cents on each alternative.

From a base project
So back in the days when working with smaller clients with smaller budgets this was a really effective ways to quickly get a “basic site” up and running in Umbraco.

Basically you have an install of Umbraco ready to clone, which contains a basic site structure, some blocks, your favourite packages, helpers, extensions etc and all you need to do is customize it to each specific client need.

Pros:

  • You get a quick start!
  • All your projects gets a “common ground”.

Cons:

  • Could potentially block creativity. Developer might choose a path for a specific solution not because it’s the best solution but because it’s “already there”.
  • Base project needs to be maintained, updated, bug-fixes etc otherwise you will be bringing all your legacy with you to new projects.
  • It’s hard to define what a “basic site” is today.


From a theme package
There are a few pre-made theme packages that you could install to get an entire site up and running in basically seconds.

This could be a good option if you are building a site with very low or zero budget, but for an actual client I would advice not to use this option.

You’re basically putting all your trust and dependency on that specific theme to be maintained and updated as Umbraco evolves and I don’t really see it as a good solution for the type of clients we have.

Pros:

  • Good for zero or low budget sites.
  • Themes often comes with a bunch of available blocks and customizations.

Cons:

  • Too much trust and dependency on a theme creator.


From an empty install
This is my preferred way these days. No constraints, nothing blocking my creativity. Basically we’re talking about opening up Visual Studio and go “File > New Project/Solution” and then install Umbraco and all the packages you need. The good thing with starting fresh is you get to evaluate each package and each solution you bring in:

-“Do I REALLY need this thing RIGHT NOW?”

If the answer is No, you dont put it in the project. Don’t assume things and put things in the projects that you “might” be needing further down the road.

You can still steal things from other project even if you start fresh, I do that all the time. I pick and choose from all our Umbraco projects and try to improve each solution as I am reusing it in a new project.

Sure starting fresh is a bit more time-consuming, but when you are working with bigger clients that might have 6+ months of development time before initial release, that little time you save by starting from a base project is just not worth it and you won’t have to spend time customizing the base project or be forced to go with a solution just because it’s there.

Pros:

  • No creativity blockage.
  • No constraints.
  • No legacy.

Cons:

  • More time consuming compared to the alternatives.


What does the community say?

So as promised here are the results so far from the Twitter poll and with 66 votes so far I think we can say we have a clear winner. Note that when posting this the poll is still active, so you need to vote before you can see the results.

But hey, there’s no right or wrong really, it depends on your situation and budget but I thought I would share my preferred way and some advice on each topic.

Take care of each other.

Cheers friends! ❤️