10 Tips for Creating a Product on Your Own - Building Keepsake
Tags: webdev, showdev, startup, react
Published: 2021-07-10 07:54:27

Hey there! Kenzo here. 

This is the first of *hopefully* many articles on my product-building journey with [Keepsake](https://keepsa.ke).

Let's start with its origin story.

## The Story Behind Keepsake

*March 2020* - it was the start of the pandemic. Newly minted bakers, [*plantitos and plantitas*](https://news.abs-cbn.com/life/09/21/20/plantito-plantita-filipinos-turn-to-plants-to-cope-with-coronavirus-pandemic), coffee enthusiasts, TikTok dancers, and content creators have just begun their humble journeys during what would be the longest lockdown in the world. 

So like everyone else, I tried to make myself productive as a distraction from all the chaos happening around me. I figured, why not learn *[React](https://reactjs.org/)*? It's always been on my "To Learn" list but I never found the time. Well, there really was no silver lining to the pandemic, but we ended up with a lot of time stuck at home, so I tried to *"make the most out of it."*

Personally, I learn most effectively when I work on an actual project, so I thought of things that would be **simple enough** to build but at the same time be something **I'd personally use**. 

We're all looking forward to better days in a pandemic like this, so the idea started with *mementos* that would make people smile and look back at the good in life. In high school, we had a day called *friendship day* where we'd write each other physical letters as tokens of friendship. I still have all of the letters I got tucked safely in an envelope. When I feel a bit down or sentimental, reading them never fails to lighten my mood.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ws1pbddtobidyt8um9y8.jpg" alt="My envelope of letters"><figcaption>My envelope of letters</figcaption>
</figure>

So I thought of bringing that experience back *virtually* and making it a more regular thing, especially in these trying times. You may be thinking... can't we just send an email directly? Sure, nothing's stopping you from sending a meaningful & long message through email, your favorite messaging app, or even by hand, but really (and sadly), who does that nowadays? There was no platform dedicated to *meaningful letters* yet, so I built one. 

I'm a fan of one-word URLs, but the tricky part is finding a fitting domain. Memen.to wasn't available so I thought of synonyms. Luckily, [keepsa.ke](http://keepsa.ke) was available, and that's how Keepsake was born 👶

## Should You Build a Product?

Now let's get to the product-building part. Keep in mind I'm writing in the context of building *digital* products (ex. SaaS).

Creating a product is **hard**. Creating and launching a product on your own is even harder. I bet you've heard this a lot already, but let me reiterate: ***you have to wear many hats*** 🤠

- 🧠 **Product Manager.** What's your product's vision? What features will you prioritize?
- 🎨 **UX/UI Designer.** What's your product going to look and feel like? How is it going to work?
- 🖼 **Front-end Engineer.** How will you implement the interface of your product?
- 🛠 **Back-end Engineer.** How will you implement all the logic happening behind the scenes?
- 💾 **Database Engineer.** How will you store, organize, and fetch data efficiently?
- 💥 **QA/Test Engineer.** How will you make sure your product is reliable?
- ☁ **Cloud Engineer.** How will you deploy your product and make sure it scales?
- 😸 **Marketing Manager.** How will you get users & customers? What's your messaging?

If you don't go crazy while building it on your own, then congrats! It's definitely worth it in the end, and without a doubt, you will gain important skills in each function above (and more).

Behind Keepsake is more or less *a* *thousand hours* made up of research, design, development, and lots of frustration in between. After my day job, I'd work on it. On weekends, I'd work on it. On Holidays, I'd also work on it. But you definitely **don't** have to work on your product 24/7. What's important (for any side project) is you work at your own pace, make small but steady progress, and actually **enjoy** what you're doing.

## Ten Product-Building Tips

In this article, I'll be sharing 10 *tips* from what I've learned in the process of building Keepsake, so I hope you find a thing or two useful from it!

### 1. Learning can get overwhelming, but don't let it consume you.

In programming (and most likely in other fields as well), once you learn something, there's always something new that comes up. You can never truly know everything. For every new use case, bug, or fancy package you use in your app, you will have to read through tons of documentation and learn it.

It can get pretty overwhelming, but that's actually a good thing. It means you'll be learning a lot. What's important is you don't let that feeling of being overwhelmed consume you and stop you from moving forward. You probably won't get it perfect the first time, and that's okay. Start small, then keep going. And going. Eventually, you'll be surprised by how much you've already built and learned in the process. 

When I first started with Keepsake, I treated it as a learning project. I had no plans to monetize it or treat it as a side-gig. I initially just wanted to learn React, but that was not enough to build a full-blown product. I also had to learn Next.js, Node.js, TypeScript, GraphQL, AWS Lambda, Postgres, and a lot of other stuff. I didn't learn all of them at the same time though. Again, just take small steps. Watch videos (if you're interested in the same tech stack, I suggest [Ben Awad's videos](https://www.youtube.com/channel/UC-8QAzbLcRglXeN_MY9blyw)). Look at sample code. Scour Stack Overflow. Learn enough just to make progress.

Although, it does help to have prior experience. Before learning React, I've been building APIs and websites with Django and WordPress, which both use different languages, Python and PHP, but I don't consider myself an expert in any of them.

### 2. Be aware of your bias and design with empathy.

When creating a totally new product or MVP (Minimum Viable Product), you usually assume a lot of things based on your own intuition. In my opinion, this is okay when you're starting out, and it's usually the quickest way to build an MVP, but be aware that your assumptions are biased. Once you have actual users, be sure to gather feedback from them & validate your product. I built Keepsake mostly based on intuition at first, but once actual people started using it, I iterated based on their feedback. 

In everything you design, it would be best to always put yourself in the shoes of the user. **What seems understandable for you may not be for your users.**

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j9eoiccc2sapnd7t6d1.png" alt="An early mockup of Keepsake's inbox page designed with Adobe XD"><figcaption>An early mockup of Keepsake's inbox page designed with Adobe XD</figcaption>
</figure>

### 3. Solve a problem you personally experience.

It's much easier to build something that tackles a problem you personally experience. Related to *Tip #2*, you build based on intuition at first, and if you understand the problem you're tackling, your intuition has a much better chance of putting you in the right direction. You will better understand your users and their pain points, and so it will be easier for you to design with empathy. 

In any case, even if your app doesn't take off, at least you could be your own user when what you've built solves your own problem 😉

### 4. You will get ideas at the most random times. Jot them down.

When this happens, don't forget to jot those ideas down! Bring out your favorite notes app and take down at least the gist of your idea because it may never come again. Trust me. 

Personally, I usually get the best ideas when I exercise, take a shower, or before I sleep. I thought of Keepsake while working out. Maybe my mind is more relaxed or focused at these times? I don't really know 😅

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a85331iq071szxqvm59w.png" alt="Keepsake started as "Timebox website" in my To-do list in the middle of a workout"><figcaption>Keepsake started as "Timebox website" in my To-do list in the middle of a workout</figcaption>
</figure>

### 5. Track your work.

Related to *Tip #4*, jot down everything you can about your project - from your tasks to things you learn in the process. Even though it's simply a hobby project, building things alone can get pretty messy, so it's best to force yourself to organize tasks via your favorite task management tool. I personally use **Trello** to track development tasks and **Notion** for everything else. Your future self will thank you for taking notes and being organized.

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k99mh4qn4j4xle0sns5a.png" alt="A snippet of my Trello board (but you can do the same in Notion)"><figcaption>A snippet of my Trello board (but you can do the same in Notion)</figcaption>
</figure>

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8pg76uo1ck2huutafhos.png" alt="Notion's pretty good for timelining and organizing ideas"><figcaption>Notion's pretty good for timelining and organizing ideas</figcaption>
</figure>

### 6. Know when to stop adding features.

I get it, we always want our product to be better. There will always be a new feature to add. It's a never-ending cycle, so try not to get yourself sucked into that black hole. 

What's important is you get your product to your users as soon as possible to validate your idea and find out what features they actually need. From there, you can prioritize features and build a product roadmap.

### 7. Take it easy on yourself.

Product-building is a very long and arduous journey. Before reaching glorious product-market fit, you will definitely come to a point where you'll question yourself if you should even continue your project. You put so much effort into something, but you do not seem to get the results you expected, and if you stop now, your efforts are basically sunk cost. That's when burnout happens, and I've been there. 

What's nice about a side project is that you're not pressured by any external entity. Take a break and just build at your own pace. Make small but steady progress, and **enjoy** the journey.

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdvum389cf750zgj2jqx.png" alt="This is my GitHub contribution activity. I started developing Keepsake in April 2020 then launched in August 2020. I took a break from working on it after (see mostly black boxes after Aug)."><figcaption>This is my GitHub contribution activity. I started developing Keepsake in April 2020 then launched in August 2020. I took a break from working on it after (see mostly black boxes after Aug).</figcaption>
</figure>

### 8. Celebrate even the smallest milestones.

Getting your first paying user will feel *REALLY* good. Hitting 500 users? Definitely something to celebrate. Reaching product-market fit? That'll probably take a long time, but it's something to look forward to and work hard for!

It's important to celebrate even the smallest milestones to give yourself a sense of pride in your work and to push yourself to keep going. If you can [build in public](https://gabygoldberg.medium.com/the-building-in-public-how-to-guide-219d417f00c1), that would be even better!

Give yourself a pat on the back for making it this far. You deserve it.

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a01e9yj7jpt718q1toz9.png" alt="Keepsake was recently accepted into AWS Activate. It provides $1000 in AWS credits!"><figcaption>Keepsake was recently accepted into AWS Activate. It provides $1000 in AWS credits!</figcaption>
</figure>

<figure>
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6g0t5stwse2hxjy4a34v.png" alt="Getting featured on Product Hunt's Twitter page felt awesome!"><figcaption>Getting featured on <a href="https://twitter.com/ProductHunt/status/1399546493334392832" target="__blank">Product Hunt's Twitter page</a> felt awesome!</figcaption>
</figure>

But personally, the best milestones are the positive feedback I've received from people who use Keepsake:

![Feedback 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zafwlqs2tdoe8u9mfy4v.jpg)

![Feedback 3](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2fx3g40998ac1ai6esr.jpg)

![Feedback 1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o8zo0l1fuupjnvyecosa.jpg)

### 9. Focus on the product, not the tool.

You can use the most popular programming languages and the fanciest frameworks to build your product, but from an average user's perspective, they wouldn't really care much about the tech. They care if the product works well for them.

Yes, I know I built Keepsake because I wanted to learn a new front-end JavaScript library in the first place, but you and I have to remember what truly matters to the end-user is the product you're creating. Don't obsess with finding the most optimized way to do things or the best framework to use, just start making it with what you already know then iterate from there.

### 10. Strive for sustainability.

Don't be afraid to monetize your work. Your project will most likely have costs to build and maintain, so you need to find a way to make it sustainable. Also, people paying for what you've built is the ultimate validation your product could receive. It means they find real value in it. 

My goal is to have Keepsake pay for itself. My dream would be to scale it up enough for it to pay for my living expenses. Today, many successful startups started as side projects, so we all probably want our side projects to have the same happy ending, but of course, it's a very steep but certainly not impossible mountain to climb.

**Those are my 10 tips. I wish you the best of luck on your own product-building journey! 😊**

## Promo

If you're looking for a gift for someone special or just want to send some letters to your friends or to yourself in the future, I'd appreciate it if you gave [Keepsake](http://keepsa.ke/) a try! Here's a promo code to get you started: *sendthelove* 💌