Deprecating BoardSearch

Deprecating BoardSearch
A Kailh Speed Silver switch

Over the last 10 months, I've been working on BoardSearch, on and off. With "mild success" I have been chugging along on adding features but recently I've had to consider if working on the current implementation is the right decision? There have been less than 10 users on the site and most of them have only created their profile without ever logging back in.

So I've decided to stop working on the current version of BoardSearch. And in this post, I'll cover what I learned from this experience, where I'm thinking of taking it next, and other thoughts.

Building BoardSearch

Maybe this might be useful to someone else but I want to use it as a posterity thing so future me can remember how I built BoardSearch.

Tech Stack

  • Next.js 12 (with typescript and react), this version did not have the /app directory
  • Prisma for ORM and schema management
  • PlanetScale for the mySQL database
  • DigitalOcean's Spaces for S3-like storage of images and videos
  • Vercel for deploying the Next.js app and managing the deployments
  • TailwindCSS for the UI
  • NextAuth for user management
  • Playwright for tests (hardly used this though)

A couple of node.js modules I didn't list here because they are either super specific to a use case like Day.js and superjson which are all in the package.json file.

Thoughts about building a pet project

This project was an experiment, a learning exercise, and a very good start for me in getting comfortable building full features on my own without any external incentives (money, fame, people).

When I first started building it, I had a rough idea of what I wanted BoardSearch to be, a place to find in-depth information about keyboards. As time went on, I got more clarity on what it is going to be and I started adding features. One of the limiting factors early on was the database schema being too rigid. I wish it was a bit more flexible, possible a schema-less database early on, but that was just one problem. I was pretty new to typescript when I started this project and getting over the learning curve and annoyances with typescript wasted some of my time. Most of the tech stack I've mentioned above was new to me at the start of this project, with the exception of Tailwind. So each tool brought its own bit of learning curve which took months of weekends and evenings to get to a point where I can use them and build new features.

Earlier this year, I had a moment of clarity on how I want to approach my side projects, are they pet projects or are they small bets? BoardSearch didn't fit either description well so I decided to step back and think more about it. Leading me to think of making this version of it completely defunct.

Next steps

I've lived with the realization that some of tech choices I made with this project did not end up being great, e.g. NextAuth is cumbersome, hard to use and has limited documentation. As I went down the path of struggling to use a tool, I started to look at alternatives and for some things, like NextAuth and DigitalOcean's Spaces, I have found some. In the next project, I'm going to be using Clerk.dev for auth and Cloudflare's R2 for asset storage.

There will be a version 2 of BoardSearch, I will think about working on it soon but not right away. I want to give myself some time to get some inspiration, work on other projects, and come up with a worthy plan.