Developing Umbraco chocolates

A programmer has a lot of skills that are transferable to other domains. Today I will show you how I used those skills to make custom Umbraco chocolates.

A bit of history

I worked as a chocolatier for a couple of years before becoming a professional programmer. When Umbraco released their new identity, the "community heart", it instantly spoke to me as an ex-chocolatier as a really nice shape to create a chocolate from. So, I threw the idea of making one on Twitter.

I received a lot of positive feedback and help from HQ, and was able to go ahead and create chocolates inspired by the “community heart”. When I finally presented the chocolates to Niels Hartvig at Codegarden 2019, the following reaction was the most common one: "Oh wow, that is amazing. I could never have done that!". I hope that by showing how similar the journey is to the iterative process of programming, more people will be inspired to step outside their chosen field and create something different.

The comparison

Any time humans try to do something they haven't done before - whether it's remaining within a familiar overarching domain (for example, writing a desktop application while only having done websites before) or entering a new domain altogether (for example, making pretty chocolates) - we usually find ourselves somewhere between two extremes... Either we can approach it willy-nilly, hope something works and get super happy when it does, or we get disappointed and lose some or all interest in the project. Alternatively, we can form some kind of plan on how we are going to tackle it - even when we are lacking a complete set of information.

I have noticed over the years that this plan if formed from some (or all) of these steps

  1. Gathering information about the problem space (also known as Googling)
  2. Being confronted with the fact that there are multiple approaches
  3. Deciding on which approach to take (also known as choosing a framework/tech stack)
  4. Making a proof of concept (POC)
  5. (optional) Noticing that the way the POC feels is not to your liking and blaming it on the approach (framework) which takes you back to step 3
  6. Being happy with the POC and seeing its potential
  7. Refining the POC to a state where you can present it to your peers/client.
  8. (optional, read as: if there is budget) Making it into an actual product.

Gathering information

If we Google how to make chocolates, we are informed by the all-knowing internet that we have two options:

  • Use a mould (from silicone or plastic) to pour our chocolate into
  • Use some serious skill to form the filling by hand and then cover it in chocolate.

Using a mould seems a lot easier and should give more consistent results. Since we want a custom shape, we are going to have to make our own silicone mould. After spending some more time on Google, it seems like it should be pretty easy: acquire liquid silicone, put the shape you want in a plastic container, pour the silicone over the shape and then let it harden.

Okay, great: we are getting there. Next up, how do we make the initial shape from a sturdy material that can handle being covered in silicone for a couple of hours? Our options are making a shape through pottery, woodworking or 3D printing. 3D printing seems the most technical solution and also aligns with the developer skillset. So, now how do we make the instructions to send to the 3D printer?

Enter 3D modeling

Most 3D printers come with "slicing" software which translates a 3D model file into a file containing all the instructions for the printer to create the object layer by layer. In order to create the 3D model, we will have to use some kind of modeling software. Just like any software, they come in different shapes and forms, both in price and features. I prefer to use Blender as it’s free, open source, mature, feature rich and has an amazing community with loads of tutorials. To carry on the spirit of sharing, you can find a tutorial on making the 24 days logo here.

Printing the model

The two most prevalent techniques in hobby 3D-printing are

  • FDM plastic (heating up plastic and putting it down layer by layer)
    + cheap
    + safe
    - less than ideal resolution
  • SLA resin (hardening resin with a laser/UV light source in a bath of resin layer by layer)
    - more expensive
    - toxic fumes which means you need to take safety precautions
    + high resolution

I would advise sticking with plastic extrusion printing for the first prototypes until you are certain that the shape and volume are right. You can then refine with an SLA printer later on.

The configuration for printing depends on the printer, the size of the model, the material and the technology being used. Just as in the technical sphere, when you come across a technology that is complex and unfamiliar, you can:

  • Figure it out for yourself (you will have to buy a 3D printer)
  • Hand it off to a professional (and pay a premium)
  • Consult some people who use it on a daily basis and borrow their equipment

Unless you have a friend who owns a 3D-printer I would advise to go with the third option because most FabLabs will have staff on hand to get you started and the fees you pay for using the equipment/materials are usually fair. This way you also learn another skill that might come in handy later on.

Making the mould

Now that we have our printed model(s) (or multiples), we can make the mould once we have secured the following items. It is a fairly straightforward process which takes a bit of preparation and a whole lot of waiting. Much like lacquering furniture, as long as you take care in following the instructions, the results will be satisfying. You can find my take on how to go about it here.

Getting messy

This is where I have to apologize and break the whole “Look! It's easy, you are not going to mess this up” vibe of this article. Working with chocolate is a skill that you need to develop over time. There is no tutorial that will teach you all the intricacies that come with working with chocolate. So, if you feel like this is as far as you want to go: congratulations, you have made a custom ice cube tray! Alright, we cool? Cool, moving on!

The time has come to pull out the chocolate! A little note on choosing the right chocolate: It doesn’t matter where it comes from or what name it carries, but what the ingredients are. Avoid any chocolate that has any non-cocoa fats (palm, coconut, …) in them. Prefer any without additives, sugar syrups, ingredients you can’t pronounce. The purer the chocolate is, the better it will taste and the healthier it will be.

We have to melt down the chocolate before we can pour it into our silicon mould. Melting down chocolate destroys the crystal structures that are responsible for the sheen, temperature resistance and "crispness" of the hardened chocolate. We have to reintroduce these crystals by tempering the chocolate. For a more visual/elaborate explanation,watch this video, it gives a good general explanation of the science and methods.

For those willing to go all the way, I have prepared a tutorial on how to temper chocolate in a not-so-messy way that is pretty reliable, alongside instructions on how to fill the mould with solid chocolate or going about making chocolates with a filling. You can find it here.

Closing words

I hope that this article has illustrated that by using the process of breaking down a complex problem into manageable and researchable chunks, we, as developers, are capable of breaking the stereotypical mould and create things that make people go, "Oh wow, that is amazing. I could never have done that!"

Sven Geusens

Sven is on Twitter as