⏱ murphy

Recently my buddy Todd Austin challenged me to do half a murph every day for a week. I accepted, and quickly learned that counting reps and rounds while you're sweating and breathing heavy is not easy. So I did what every developer would do, I built an app.

MURPHY is a workout timer specifically designed for murph. It splits the workout into multiple rounds of pull ups, push ups, and squats, and tracks your time for each exercise. Registered users can save their workouts, view past workouts, and track their performance over time!


I began building MURPHY as a learning experience, using a completely new technology stack. While new frameworks and tools are fun to explore, they definitely slowed me down in the beginning. Here's what I went with.

I found Svelte very easy to work with, and animations were a breeze. Tailwind was also very easy, except for the lack of grid properties. Lucky for me v1.8 released and added the missing properties. I still felt a bit weird every time I had to edit the tailwind.config.js file just to use a custom grid layout. FaunaDB is amazing, as was their developer relations team who provided me tons of help (shoutout @databrecht). After getting over the FQL learning curve, I felt like I had super powers.

But one thing is for sure, I didn't feel powerful when using Netlify Identity at all. For every one feature Identity gives you, it makes another difficult. For example, there is no way to differentiate a login event from a signup event. Morever, there's no way to tell if a user logged in with their username and password, or from a saved token.

In the end, this new tech stack got me to where I needed to go, and I learned a ton along the way. The process of taking a PWA to the Google Play Store was particularly challenging, but so incredibly rewarding to see my app somewhere so official.

If you want to improve your health, consider supporting me and purchasing MURPHY!