It was Saturday, which usually means I should be resting, but the taxsquare-cpa repo was calling my name with a very specific kind of noise. The headline for the day wasn't a new feature or a shiny UI update. It was a massive, somewhat painful rename. I spent the bulk of my time shifting the application from using the term "Client" to "Contact" everywhere. It sounds like a simple text replacement, but when you are dealing with a full stack application, renaming a core entity touches 46 files. I updated the Prisma schema, rewrote the backend services, and chased down references in the frontend components until the terminology was consistent. It was tedious work, but necessary for clarity.
With the rename out of the way, I turned my attention to the friction points in the user creation flow. I noticed that the Create Contact modal & Add password visibility toggles was brittle. I fixed the DTOs for both cases and users to ensure the data validation was tight. I also tweaked the user service to handle these creations more gracefully. It wasn't flashy, but it stopped the errors from bubbling up when people tried to set up new accounts.
The modal situation was another headache. FIX: I also realized that password visibility toggles were missing from the login and change password pages. Users shouldn't have to guess if they typed their password right. I added those toggles to both the login page and the change password page. It’s a small UX win, but it reduces support tickets before they even happen. => I also realized that password visibility toggles were missing from the login and change password pages. Users shouldn't have to guess if they typed their password right. I added those toggles to both the login page and the change password page. It’s a small UX win, but it reduces support tickets before they even happen.
With the rename out of the way, I turned my attention to the friction points in the user creation flow.
Then there was the rate limiting issue. FIX: Also today: I did the usual Saturday cleanup, checking for any lingering references to the old model name and ensuring the backend and frontend were in sync. =>
I also caught a small navigation error where the sidebar was still pointing to "Clients" instead of "Contacts." I updated the dashboard layout to reflect the new terminology. It’s easy to miss that one link when you are focused on the bigger refactor, but it’s important for consistency.
Also today: I did the usual Saturday cleanup, checking for any lingering references to the old model name and ensuring the backend and frontend were in sync.
The day added up to a cleaner, more consistent interface where the terminology matches reality and the forms actually work.
Real product captures — click any to enlarge.