Redesigning
Thoughts on application facelifts.
Introduction
I recently redesigned my largest side project, which is a business in the cryptocurrency space. It turned out great, and only took me a few days1.
The app is a Ruby on Rails application, so I couldn’t effectively use shadcn/ui for the design. I ended up using the free version of Rails UI instead.
The prior design was stupid simple. It was semantic HTML, wrapped with the Tailwind typography plugin. Literally, a page would look like this:
<h1>Page title</h1><section> <h2>Section title</h2> <p>Section content</p></section>
<section> <h2>Another section</h2> <p>Another section content</p></section>
I wrote this tweet a few days ago about the migration - design really doesn’t matter that much when you’re trying to build an MVP:
You probably don't need to worry about design that much
— Kristian Freeman (@kristianf_) February 20, 2025
Started a project 10mo ago, hit profitability 3mo ago (expenses are high!) - the "design" was Tailwind's prose plugin + semantic HTML
Now I'm finally redesigning it
Shipping was more important
LLMs and redesigns
It’s a unique time to tackle application redesigns. LLMs make it really easy to rapidly build out code - you just have to have a direction you want to go in. Executive guidance over a very powerful code generator. This is probably what coding will look like in a decade.
The process was: take the Rails UI components that I wanted to use - cards, navs, buttons - and drop them into a big Claude prompt. “Take this code (original code) and rewrite it like this (new code)”. It was 80-90% accurate. Eventually, it lost context in minor ways - using shadow-lg
when we had been using shadow-md
. But nothing major.
I am a heavy LLM user. I hit the Claude rate limit basically every single day. But I don’t trust it to write application code - e.g. backend Rails models, controllers, etc - at least, without heavy supervision. It is great for UI code. If I was a frontend developer, I would be slightly worried. But I’m a full-stack dev, so I still have a lot of agency in how I drive behaviors of the actual system code. The UI part is a commodity.
Is it good?
You can sit there and tweak every CSS param over and over again. Tailwind actually makes this very easy. Too easy, probably. Should every card be spaced via gap-4
? gap-6
?
I’m not trying to win any awards for design. I just want my app to be easy to use. If you work at a big co and you’re redesigning, you probably have big goals: accessibility, performance, etc. I’m not really thinking about that stuff, at least, not on my side projects. At any point of time, there’s probably a dozen other things that I could easily make the case to myself are way more important.
So as a side project developer, I think redesigns have two criteria:
- Do they make the app easier to use?
- There is no other criteria
Now, if it looks better as an accidental side effect, great! Semantic HTML kinda looked like shit in my app, and stuffing everything into cards is an improvement. They lay out better in different screen widths. But by adding some information hierarchy and some structure, the app is now much better to use.
So is it good? Yes. Because it’s easier to use. Not because it looks better.
Conclusion
I dread redesigns, mostly for the reasons I stated above. It is art, even if it’s kind of a silly art, so it is subjective. You can’t perfectly design something. You make compromises and leave things for later. And then you forget them. Or you go even more in the compromise direction, and forget what the original plan was to begin with. That’s why all that matters is whether it is easier to use. Before, and after. We should have a GitHub PR bot that makes you say “Yes, this is easier to use” on merge. Everything else is window dressing.
That being said, I’m happy with this redesign. As a maker of many side projects, I’m mostly happy that I didn’t fall into the trap of redesign-as-work. It is sometimes necessary, but can be a huge distraction from the important stuff. I made it out alive this time…
Footnotes
-
There are less than a dozen pages on the site - it’s a subscription to an API. Thus, redesigns aren’t too difficult. ↩