New year, new homepage

I spend my holiday break bringing more fun to the Cushion homepage with a new design, full of illustrations and animations.



Handling timeline labels

Determined to always display labels on the new schedule timeline, I detail all the edge cases I’ve gotten myself into.


Upgrading to Vue 3

While making forward progress with the new Clients section, I take a break to upgrade the new codebase to Vue 3.


A week of cleanup

With the inline forms behind me, I spend a week cleaning up the codebase with a focus on Cushion’s form states.


Thinking about a “test mode”

Aggravated by people signing up with no real intention to use Cushion leads me to consider a “test mode” where they can try the app without signing up.


7 years old

With Cushion reaching the 7-year mark, I reflect on its life and plot a course for its future.



The new invoice page is live

With only days before the SCA deadline, I launch the new invoice page with to be SCA-ready while also paving the way for more improvements.


Tidying up as you go

Continuing to make progress on the invoice page, I talk about some of the ways I’m improving the codebase along the way.


Rethinking the pricing page

In needing to redesign the pricing page for the new account section, I decide to rethink the structure of Cushion’s existing plans.


Redesigning the blog

After redesigning Cushion’s homepage, I take the next step in migrating to Contentful by rethinking the blog.


The next big rocks

After launching Cushion’s new onboarding, I detail the next few items on my to-do list, which for once are not new features.


Onboarding is live

A weekend turned into a month, but Cushion’s new onboarding is finally live. Instead of focusing on the launch itself, I talk through my favorite part.


Composable onboarding

To provide a more pleasant codebase for Future Jonnie to inherit, I restructure the onboarding to be composable and easily testable.


A friendly onboarding flow

As a first stab at onboarding, I design a flow that includes myself asking questions, which hopefully provides a friendly intro to the app.


Bringing back onboarding

In an attempt to ease people into the app rather than pushing them out of the airplane, I decide to bring back a proper onboarding flow.


Rough sketches

After feeling reluctant to reveal any design progress, I decide to bite the bullet and share a few rough sketches—no matter how uncomfortable it feels.


Flattening the nav

Continuing the idea of the single click, I talk through a potential path to flattening the nav from multiple layers down to one.


Sending newsletters again

I sent my first Cushion newsletter in over a year and a half, which sounds crazy, but nonetheless, it feels great to send them again.


Validating assumptions

Before diving into analytics, I decide to spend time writing database queries that could validate some of my assumptions using existing data.


Intentional analytics

After building Cushion so far based purely on assumptions and intuition, I finally start to think about using analytics to help guide me.


This app has good bones

A thought-provoking conversation leads me to realize that Cushion is still solid and worth iterating on, instead of restarting from scratch.


Keeping API requests simple

After establishing a new guiding principle to keep API requests simple, I describe how I could refactor a complex view that relies on a heavy API request.


A single click

I discuss a pain point in the current Cushion involving the number of clicks it takes to get to where you need to go. What if it only took one?