12 products in 12 months: this was week 3

24-01-2022 | 10 min read
12 products in 12 months: this was week 3

For those who are reading this and haven’t read any of my previous blog posts. I’m building 12 products in 12 months starting the 1st of January. I will be building everything in public, sharing insights and daily updates through Twitter. This blog post will take you through all the things I’ve been working on and the progress that I’ve made in the past week.

Day 16

The last day of week two was a really low-productive day only finishing the blog post to recap week two. I was eager to make the first day of week three more productive, so I sat down at my desk when my baby girl was doing her afternoon nap. First I did some research on canonical URLs on Medium blog posts. These posts are published on Medium but I want to publish them also on my website once my website is up and running. Turns out that Medium supports canonical URLs. You can add a canonical URL if you edit your blog post settings and navigate to Advanced Settings. There you need to check the box “This story was originally published elsewhere” and provide the URL of the post on (in my case) my personal website.

After finding that out I went on with work on the website. There are still a few parts that are not working like they should or just contain HTML as placeholder. The blog overview page will contain a list of all blog posts, so that was pretty straightforward. I was working on pagination when I realized I was building an MVP and the number of blog posts won’t be that high any time soon. So I ditched the pagination idea and just went with a list of all blog posts. Pagination will come later, after the MVP, once I’ve written more blog posts than looks good to my liking.

I also did some work on the blog post page. I set up the basic layout and filled it with the model. Added some routing logic to the controller and before I knew it it was almost done. I spoke about MVP in the last paragraph but I didn’t stick to my plan with this part. The title of the blog post is used in the URL along with the id of the post. I worked on redirecting to the correct URL when the title of the blog post had changed. Some functionality that wasn’t necessary at all, so I should have left it out. I already knew how to do this, so it didn’t take a lot of time but still, it wasn’t necessary.

Day 17

I woke up early to get a nice head start of the day. The homepage still contained blog post placeholders, so I turned that part into a ViewComponent. I wanted to keep my home controller Index method as clean as possible, so I didn’t want to have to deal with different kinds of models. Using a ViewComponent allowed me to separate my logic better, keeping everything related to the latest blog posts together and easily adjustable later on.

Besides the functionality I spent too much time nitpicking on small styling issues. That’s something I really have to improve on. Don’t focus on the details too much, but go for the bigger picture. A little tip I can give anyone that recognizes this behavior is to look at some other websites that are being built, even today. Often I see websites that have terrible styling, but the point comes across, the idea is good and they are making money with it. So it doesn’t have to be perfect.

Day 18

I had a great conversation with Wilson (https://twitter.com/euboid) about an idea that all of a sudden popped into my head while working on my day job. I don’t know Wilson personally, but we both started building in public this year and connected through Twitter. Building in public not only keeps you accountable, but allows you to make connections with like-minded people. It proves that this can lead to great new insights, helping each other out and perhaps even potential customers if you can serve a need for a problem they are having.

Tuesdays usually are not the most productive days of the week, but I managed to get some cool things working. I got my newsletter subscription form working. It’s nothing fashionable, it’s just an input box for your email and a button. It isn’t connected to any service, like MailChimp or whatsoever, it just stores the emails in the database. I don’t get a notification when someone subscribes, so I will have to check it manually but that’s okay for now. Once the website will be improved over time, I will automate this further.

The styling for the blog overview page and the blog details page are completely done now. Again went a bit of balance in what the MVP should be as I added functionality to easily browse to the next and previous blog post. I struggle sometimes with looking at every feature and questioning myself: “Is this really needed for the MVP?”. Sometimes I’ve put some time and effort into it already so that I might as well finish it instead of keeping it half done.

One thing I have been putting off was writing the About Me page. For some reason I can’t really come up with words to put on there, but I have tried to write some of it today. I have written a portion of it, but I’m not sure if I’m happy with the way it came out. That’s something to focus on at a later stage.

Day 19

With the most important parts of the website coming close to a finished state, there are always little things that need fixing or improving. I only focused on the fixing part for now, the improvements will come after I launch my website. I noticed some exceptions were thrown where I didn’t expect them, so I improved my code in some places. I added some null reference checks, I made sure all properties were set correctly and I added validation to the newsletter signup form to prevent incorrect data from being submitted.

After all those tiny fixes I focused on the project’s overview. I kept it simple by copying most of the blog overview page. This saved me a lot of time as I didn’t have to think about the styling of the page and just had to change some models to see the different data.

Day 20

Usually I try to do some work on this project in the early hours of the day, but this day it wasn’t going to happen. I needed to drop my kid off at my parents, had to do some grocery shopping and before I knew it it was time to start working on my day job. However, since I’m getting closer to a point where the first version of the website can be launched, I was determined to spend some time on the project in the evening.

It was a productive evening with three pages completely done, tested and working. The blog post page now has a previous post and next post option. The project details page was set up, which displays all information about the project I am or have been working on. In my initial plan I wanted to add milestones to this page, I even created the database models and the admin area to manage the milestones, but looking from a MVP perspective it was a feature that I should have left out for now.

The projects overview page is working correctly now. The same applies for this page as the blog overview page. It doesn’t contain a pager, if I get to a stage where the list will be too long I can always add a pager. For now it just shows a list of projects, which is actually just one project, the project I’m working on currently.

Day 21

During my lunch break I did some work on the website. I developed the Projects ViewComponent which will be used on the home page and displays the latest projects I’ve been working on. Once it was in place I wasn’t happy with the styling, so I took a bit of time to work on that. At first there was no real difference in styling between the latest projects and the latest posts, so I wanted to change that. I struggled a bit with the CSS, so eventually I just flipped the location of the images to make it look different, but the HTML is mainly the same for both components.

Then it was time to write my blog post. I tweeted about it, writing it at the end of the week makes me feel like I’m in high school again. Always postponing the work until the last day. At the beginning of the week I planned to do some writing at least every other day, so that I didn’t have to spend so much time at the end of the week. With all things that were going on last week I simply didn’t get to it, so this is something I will try to improve during this challenge.

I wrote about two-thirds of the blog post in about an hour, which I’m really pleased about. As I wrote in my first post, English is not my native language so writing in English is a bit of a challenge. Not that I find it hard to write, but the challenge lies in how to say things in English, which words to use, grammatical structure of sentences and so on. But it’s really nice to see my personal progress.

Day 22

I’ve finished the blog post as you all are reading it now. I also made a summary to post on IndieHackers. I researched some great personal websites to get inspiration for the About Me page. Talking about myself isn’t something I like doing, no idea why but I’ve got a sort of fear of putting myself out there. With inspiration from other About Me pages it certainly helped me in writing my own story. Everything is ready now, I can publish the website. Really looking forward to this. You will read more about the launch in the next blog post.

Online presence

I’ve been using Twitter now for 22 consecutive days in which I posted 216 tweets. These tweets together have accumulated over 23.000 impressions. My follower count grew to 118, which I’m absolutely pleased about. It’s great that more and more people are viewing my profile and are following me. Besides that, like I mentioned in this blog, I’ve had some great conversations through direct messages with others that are building in public.

I also gained some new followers on Medium, where my last blog “only” got 135 views, but a 65% read ratio which I guess isn’t really bad. I will be blogging there as well as on my personal website, but I’m not sure yet if I will use the Medium platform actively to connect to followers / other users.

For each blog post I write I also write a short summary to go on Indie Hackers. Looking at myself I tend to skip the Indie Hackers posts that either only contain a link or that contain large volumes of text. My last post was viewed 567 times, got 14 upvotes and got me some new followers on IndieHackers as well.

So all in all I can say that I’m growing my online presence. More and more people are following me and I’ve got the feeling that I only just got started. I’m currently working on my own website. Next month I will be working on an actual product, which hopefully will result in more followers as I’ll probably be able to discuss the whole building in public even better.

I want to close off this blog post by telling you that tomorrow, Sunday the 23rd of January, I will be releasing my website for the first time. To be honest I’m actually quite terrified to put it online for everyone else to see, but I think I just need to get over this fear and go for it. If I can’t get over this fear, how will I ever be able to publish another eleven products?!

Thank you for reading this post, leave your comments below or follow me on Twitter.


Next post

LAUNCH WEEK! 🚀 - 12 projects in 12 months (week 4)

29-01-2022 | 11 min read

As you've already read in the title I launched my personal website this week. It has already been 4 weeks since I've started the 12 projects in 12 months challenge. With the month coming to an end in ...

Previous post

I’m building 12 products in 12 months, this is how week two went

24-01-2022 | 6 min read

The first of January I took on this challenge, to complete twelve products in twelve months. I had read about these challenges from others and wanted to give it a go myself. Last week I started my fir ...


Back to blog