Building a business from scratch - day 10
Tags: javascript, nextjs, devjournal, react
Published: 2022-03-24 10:43:03

Welcome to day ten of the [useaffiliates.com](http://useaffiliates.com/) build log! This series covers my journey of building a business from scratch in public. If you missed day nine, you could [check it out here](https://www.twankrui.com/blog/building-a-business-from-scratch-day-9). I also uploaded today's [Twitch stream](https://twitch.tv/twankrui) to [YouTube](https://youtu.be/UechIWcW1Zw) if you want to watch the replay.

## Roadmap change! We are postponing the blog until after launch. 📅

Seeing that we are already on day ten goes against my way of building a new product. Usually, I would try to design, code, and release something within a weekend. However, it might have something to do with the fact that I am doing everything in blocks of 3 hours on stream, and I am not 100% focused on the launch.

Let’s change that mindset, starting today.

To get to launch faster, we need to postpone the blog. Implementing the blog on its own would probably take half a day, let alone that I don’t have any content for it yet. My idea now is to launch everything else, gather feedback early, and then launch the blog once I have time to dive into keywords to see where there is traffic to gain.

Remember, after completing the listing and the database work, we still have to set up the about page and the “post your program” page.

## Setup category pages 🔨

Yesterday we styled the filter dropdowns, so today was the time to hook up the biggest of them all; the category filter!

Since the category filter is being used on multiple pages, I decided to set up a `filterContext` so that we had a single source of truth for setting the filter values and updating them. We still have to fix a nasty bug because if we route from the category page back to the home, we get redirected to the category page again. After all, the context value hasn’t been updated (fast enough?).

I struggled with this bug for a little while but decided to move on and get back to it later. I will make this more of a habit since I spend a lot of time on issues that could wait and that are very likely fixed if I sleep on it.

Why don’t I go another route? Because when the user comes to a category page, we want the dropdown to show the current category; otherwise, it will be confusing. What if someone selects the “music” category from the dropdown when they are already on the music page? Nothing will happen, and a user might think the application is busted. No bueno.

### Statically generated category pages 🏎

We also coded the `[category]` template, which is awesome. The category pages are statically generated, including the first 12 results from the DB. This is great for SEO, but this also means that navigating categories will be very fast.

Especially having the heading of the page being "category + affiliate programs" (e.g., "Food affiliate programs") is excellent for SEO. I am thinking about linking the categories in the footer since this also improved the site's crawling.

## Filter dropdown on mobile 📱

Towards the end of the day, I put the filters behind a toggle on mobile. Otherwise, 30 to 40% of the mobile viewport would get filled up with filters, and that’s a lot when the focus should be on the affiliate programs.

After putting the filters behind the toggle, mobile now feels 90% completed. Exciting to see everything getting closer to a launchable version!

## Complete the filters, fix bugs, and look into submitting programs ☀

Tomorrow I plan to start a little earlier to crush the page switching bug described above. If I get that done, I can move on with implementing the other filters, which means that the platform is 95% ready for launch.

After finishing the listing, I need to set up the about page (and think of some content) and finally set up the “post a program” page. For the last one, I still need to decide what I will use. I am thinking of Typeform in combination with Stripe, but [Paddle](https://paddle.com/) is also on my radar.

Lots to do, onwards! 🚀

Thanks again for reading this build log, and I hope to see you tomorrow!

With love,

Twankrui