Building The Mali Dad

Read about how I built my first "proper" site, themali.dad from nothing but hopes and dreams.

William Steed January 27, 2026
7 min read

When I say "proper", I don't mean it's not functioning, I don't mean that it is a test site, but rather it is a site I built for someone else. Yeah I've built sites for other people, but they're clients, and I'm not doing it on my own. I'm normally the one picking up small tasks / Trello tickets which I can do, so the senior dev (Simon Steed) can take on the big tasks, and not have to worry about doing everything with big time constraints. This is generally the job of the junior developer, and if I'm not doing that, I will be shadowing, or learning more about Umbraco / web development.

But this site wasn't just for someone else. It was for my dad, who's also my boss. So if anything, the pressure was for sure there.

The Idea

My dad, Simon, owns 4 Belgian Malinois, and 2 husky x GSD (German Shepherd), and therefore he gave himself the nickname "The Mali Dad". He posts on TikTok, Instagram, and Facebook about what he's doing, how he trains them etc, and this was great for him. However more recently, he's applied for, and received his insurance for dog training, so he's trying to venture into that a bit more.

I was looking into building a couple of lead generation sites as a little side project, and add some adverts to possibly make a bit of revenue from them, but I didn't realise quite how hard it would be to do what I was trying to do, as I am targeting a big-ish area, and the implementations I would need to add was going to make it a right hassle.

So instead, my dad said to me "Why don't you build me a site for The Mali Dad promoting dog training, and we can put affiliate links on there of products we've used, and that could generate us some revenue too", and that is precisely what I did.

The Process

Love me or hate me for it, but I did use Claude Code for some of it. I'm only a junior dev at the end of the day, I can't do everything, so having that support was a massive help. I created the site using Umbraco, which is what we use at work anyway, so it made sense to stick with what I know best. Plus, it meant my dad could easily manage the content himself once I'd set everything up.

The first thing I did was sit down with my dad and actually plan out what we needed. But we also wanted to make sure the personality of The Mali Dad brand came through. This wasn't going to be some corporate, sterile dog training site. It needed to feel authentic, like you were actually talking to someone who genuinely loves their dogs and knows what they're doing.

The Technical Bits

I went with a fairly straightforward tech stack:

  • Umbraco CMS - made sense since I work with it daily and my dad would need to update content himself

  • Razor views for the templating

  • Tailwind CSS for styling because it's fast and I didn't want to mess about writing loads of custom CSS

  • JavaScript/jQuery for the interactive bits like the carousel and form validation

  • Local hosting - simple deployment and my dad's company already has a local server available

Claude Code helped me a lot with setting up some of the more complex components and Umbraco document types. I'd describe what I wanted, and it would give me a solid starting point that I could then tweak and customise. It was especially helpful for things like setting up the affiliate products structure in Umbraco and the contact form validation - stuff that I know how to do in theory, but would have taken me ages to implement properly.

The Design

This was probably the bit I struggled with most, if I'm being honest. I'm not a designer. I can code what a designer gives me, but coming up with the actual design from scratch? That's a different story.

So instead I resorted to my junior dev:

Claude Code

I gave it the basic color scheme, what I wanted to be in there, etc, and it just did it, and from there I took the initiative to add more features such as the hero sections paws.

The Challenges

There were definitely moments where I thought "why did I agree to this?"

The first major headache was the affiliate link management. We didn't want to just slap Amazon affiliate links everywhere - we wanted to create proper "Gear I Use" sections where each product was displayed clearly, and wasn't forced in the users face. Setting up the document types and properties in Umbraco for this took longer than I'd expected, especially getting the Amazon product data structured properly.

The contact form was another pain point. I wanted proper validation and error handling without relying on a third-party service. i ended up getting Claude to create me a nicely formatted form with an email template which makes sense, and once I had that, I knew the next step would be recaptcha, so I settled on recaptcha v3, for the best protection, and UX.

What I Learned

Honestly, this project taught me more than six months of picking up small Trello tickets at work. When you're responsible for the entire thing, you can't just implement a feature and move on. You have to think about how everything works together, how it performs, how it looks on mobile, whether it's accessible, whether it's actually going to help achieve the business goals.

I learned a lot more about Umbraco's content structure and how to set up document types efficiently. I learned about proper image optimization (those dog photos were HUGE until I sorted that out), lazy loading, and performance optimization in general. Working with Umbraco outside of the constraints of client work at the office gave me a much deeper understanding of how flexible the CMS actually is.

I also learned that working for family is a unique kind of pressure. On one hand, my dad was super understanding when things took longer than expected. On the other hand, I wanted it to be perfect because it's for him, you know?

The Features

The final site has:

  • A clean, modern homepage showcasing the dogs and services

  • An about section telling The Mali Dad story

  • Clear service information for dog training in North Wales

  • A "Gear I Use" section with Amazon affiliate links

  • A contact form for training enquiries

  • Full mobile responsiveness (tested on my dad's phone about a hundred times)

  • Fast loading times and optimized images

  • Proper SEO setup with meta tags and structured data in Umbraco

The Launch

We launched the site on the 22nd of January, and honestly, I'm pretty proud of it. It's not perfect - there are definitely things I'd do differently if I was starting again - but it works, it looks professional, and my dad's happy with it.

He's already getting some traffic from his social media followers, so all is looking good so far (don't be shy to drop him a follow😉). The affiliate links haven't generated much yet, but we're only just getting started with that.

Final Thoughts

Building this site was challenging, rewarding, and at times frustrating, but I'm so glad I did it. It's one thing to work on bits and pieces of large projects at work, but building something from scratch and seeing it go live is a completely different feeling.

Would I use Claude Code again? Absolutely. It's a tool, and like any tool, it's about using it wisely. It didn't build the site for me - I still had to make all the decisions, write a lot of code myself, and solve plenty of problems - but it definitely helped me get over hurdles faster and learn new concepts more quickly.

If you're a junior dev like me and you're thinking about building something of your own, just do it. You'll learn more than you expect, struggle more than you want to, but you'll come out the other side a better developer.

Check out the site at https://themali.dad - and if you're in the market for dog training in the North Wales area, you know who to call!

P.S. - No, I didn't get paid for this. Yes, I did get unlimited cups of tea and biscuits while working on it. Fair trade, if you ask me.