← Josh Pullen's Blog

Maximum UI Per Hour

I set a goal to build a pro tier for Shuffle Buddy in one week. Today was the first full work day, and it was insane.

Authentic Communication

Yesterday evening I published a TikTok video and blog post announcing the upcoming pro tier. I don’t want the new features to come across as a money-grab, so I thought it would be good to communicate proactively about the changes. Not very many people have seen the video/post (at least compared to my new viral expectations), but I remain glad that I did it. Some things are worth doing for the principle.

Authentication

Hoo boy. This was a big task. As a reminder, this week I need to build authentication, payment processing, the actual pro features, the privacy policy, and the marketing. Today was authentication day, and I got the job done.

Firebase was an excellent choice for this project. I didn’t have to build anything on the backend. I just built UI (modals, forms, and lots of state management) for the following features. The actual work for each step happened in a single Firebase function call.

  • Register with name, email, and password
  • Sign in with email & password
  • Sign out
  • Verify email address with a confirmation link
  • Change your email address and re-verify
  • Update your account settings (name)
  • Change your password
  • “Forgot your password” reset links
  • Delete your account

This was a LOT of UI to build, and I’m very impressed by the sheer volume of what I added today.

A screenshot of the new sidebar sign-in buttons

A screenshot of the new registration modal

A screenshot of the new account management modal

A screenshot of the new email management modal

Bracing for the hard stuff

Tomorrow’s goal is to implement Stripe billing. Today was all about producing a large volume of unsurprising code. In contrast, I expect billing to be a high-stakes, complicated integration. The output, ultimately, will be a small amount of code that is very challenging to write.

Low volume, high effort. I am mentally bracing for this 180° change, but I don’t really know what to expect. I’ll report back tomorrow.

Never miss a post!

Sign up for email updates every time I publish. Unsubscribe any time.

Comments