2021

Changelog

New

  • Added workday settings to project form

Changelog

Improved

  • The “Period” field in the Clients section now has “This fiscal year” and “Last fiscal year” options, using the fiscal start date preference (beta)

  • Table columns in the Clients section can now be clicked to sort by column (beta)

Changelog

Improved

  • Added hover states to buttons (beta)

  • Improved input placeholder style (beta)

  • Auto-focus client name input when creating a new client (beta)

  • The escape key now unfocuses input fields and closes modals (beta)

  • Improved random color button to include icon (beta)

Fixed

  • Fixed order of clients and projects in workload form to sort alphabetically

Changelog

Improved

  • Reduced height of rows in Clients section (beta)

  • Removed vertical lines in Clients section table (beta)

  • Clients table is now horizontally scrollable on narrow screens in Clients section (beta)

Journal

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.

Changelog

Improved

  • Separated totals by currency when multiple currencies exist in the Clients section (Thanks, Tommy!)

Fixed

  • Fixed a performance issue with nested grids in the Clients section (Thanks, Tommy!)

Changelog

Fixed

  • Fixed sidebar nav to collapse on mobile (Thanks, Manu!)

Changelog

Improved

  • Greatly improved load times of schedule view (Thanks for testing, Daryl!)

Changelog

Fixed

  • Fixed chat button to open messages instead of start a new message each time (Thanks, Evan!)

  • Fixed “Invoices” link on the invoice page (Thanks, Chris!)

Changelog

Improved

  • Database memory improvements

Changelog

Improved

  • Improved overall navigation, including a wider sidebar and subsections listed in the sidebar nav

Journal

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.

Changelog

Fixed

  • Fixed availability badge to be 1:1 with schedule availability (Thanks, Shane!)

Journal

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.

Changelog

Improved

  • Fine-tuned database queries across scheduling and invoicing, resulting in a 10x speed improvement in some areas

Changelog

Improved

  • Upgraded database

Changelog

Fixed

  • Printed invoices and PDF invoices now avoid page breaks within the total amount (thanks, Huynh+Black!)

Journal

7 years old

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

Changelog

Improved

  • Numbered lists and bulleted lists are now supported in invoice detail Markdown

Fixed

  • Fixed invoice page’s detail Markdown styling

Changelog

Fixed

- Re-added sign out button to Account page

Changelog

Improved

  • Rebuilt the Account section from scratch using Cushion’s new component system

  • Subscriptions and billing are now fully managed by Stripe, which brings support for 2-factor payment methods and Apple Pay

  • Upgraded web server and other infrastructure improvements

2020

Journal

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.

Changelog

New

  • Invoices paid via card or ACH now display invoice metadata and a link to the invoice from the Stripe dashboard

Improved

  • Updated the invoice page to be SCA-ready and support 3D Secure

  • Implemented a new design system for the invoice page buttons and modals

Journal

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.

Changelog

Improved

  • Extended timeout for downloading a backup for users with a lot of data (thanks, Daniel!)

Changelog

Fixed

  • Fixed invoice viewed notification to not trigger when viewing your own invoice (thanks, Jesus!)

Journal

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.

Changelog

Improved

  • Updated view toggle in Budget section to say “Switch to Month View” and “Switch to Year View” instead of “Year View” and “Month View”, which wasn’t obviously a toggle

Journal

Redesigning the blog

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

Changelog

Improved

  • Redesigned blog to include journal, changelog, Talking Shop interviews, and Ask a Freelancer podcast episodes.

Changelog

Improved

  • Redesigned homepage

Changelog

Improved

  • Moved invoice section to top-level nav

Fixed

  • Fixed edit invoice route

Journal

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.

Journal

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.

Changelog

New

  • Added new onboarding flow

Improved

  • Root path redirects to budget section

  • Clarified error messaging when saving a project that had a recurring estimated income, but the user has since downgraded to the Starter plan

Journal

Composable onboarding

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

Journal

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.

Journal

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.

Journal

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.

Journal

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.

Journal

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.

Journal

Validating assumptions

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

Journal

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.

Journal

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.

Changelog

New

  • Added industry field to clients

Journal

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.

Journal

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?

Changelog

Fixed

  • Fixed monthly estimated income for open-ended projects in the monthly budget graph to span multiple months rather than showing all income on the starting month (thanks, Daryl!)

Changelog

Fixed

  • Fixed the horizontal scroll bug on the schedule graph in Safari (thanks, Nathan!)

Changelog

New

  • Added billable and hourly rate settings to clients (thanks, Darren!)

Changelog

New

  • Added Croatian invoice translation (thanks, Damjan!)