This week I launched a new website for my law practice. It better captures how my practice is operating and has a nicer design, aided by ChatGPT v5.

Using LLMs For Page Design

LLMs have come a long way in the last couple years. I made the new website by first creating a design document (for myself, without an LLM) and then figuring out the sections that I wanted, and what would best communicate how I work and what I do. I then had ChatGPT design a page with the sections in mind, and iterated from there.

Iterative Design Is The Key

Each round of iterations I gave it a list of changes. Once I got to a place that was reasonably close to my layout, I added in the text of some of the sections. After this, I had HTML, CSS, and javascript.

This produced a reasonable page. In 2005, this would have been an ok website. Below is what that looked like.

I then took a screenshot of the page, so that ChatGPT would know what this actually looks like. And prompted it with a number of changes that I wanted to make, and a general request of making it more vibrant, and basing it on what it knows about me (which is a lot, because there's a huge amount online about my work.) This produced a huge step up in the design.

The new design broke the javascript code for the links, but those weren't really a good idea anyway. I removed that, and made a number of other manual changes to the design. Then merged the CSS into the HTML, because this is a one-page design, and it's faster to have fewer HTTPS requests.

Copy Edits

ChatGPT veers into overly promotional language. It really wants to hype me up, probably because it's trained on users, who enjoy seeing themselves hyped up. But that's a tough one for the world of lawyer marketing, where lawyers are bound by rules around marketing and where overly-promotional language may not come across well. A trusted reviewer also recommended I tone down some of the language ChatGPT helped write. In the end, very little of the ChatGPT-written content survived editing. I wouldn't recommend writing a website with ChatGPT right now, but perhaps with proper prompting and more input it could produce a great site.

Optimization

The resulting site loads in 1/10th the time of the old one (which was already very fast.) This site has a 24kb page size, and loads two requests from Google Fonts for the Inter font.

The website is served from AWS Cloudfront, which loads from an S3 bucket. I've had compression disabled due to a legacy use, but now have it enabled, which cuts down the page load by 3/4. Going from 24kb to 6kb makes essentially no difference to a user, but the goal is an instant website.

The obvious optimization is to remove the Google Font load, but this won't be faster for almost all users because Inter is a popular font and most browsers will have the Google Fonts cached. By having the fallback font as Helvetica Neue, which is almost the same as Inter, the difference between having this on and off is essentially zero. This page loads from a cell connection in 80ms, and almost all of that is the connection time. This is, for all intents and purposes, instantaneous.

Security

There is nothing more secure than a static page. My blog and website have been static pages since I started my law practice, because I knew from my years doing e-Commerce work (a term that's not really used anymore) that Wordpress and other blogging solutions were a constant security nightmare. Static pages load instantly and can never be hacked.

Static design requires a bit of accommodation for the author, but since I'm the author, that's not a problem! The minor inconvenience is offset by having zero security issues over the last 13 years.

Price: Essentially Free

S3 + Cloudfront have cost between $0.10 to $0.16 per month over the last few months. Static hosting with these AWS services (or their equivalents on other platforms) is effectively zero.

Conclusion

LLMs have come a long way, and they're now better at designing pages than I am, but they can't be used one-shot. They require iteration to get to a good place. And that's probably how it'll always be, because the human sitting behind the keyboard is iterating as well, since the designer never knows exactly what the best final product will be. When it comes to marketing professional services, it's not obvious what the best page design is, and the contents of the pages will change over time as the services evolve. Perhaps in the future webpages will adapt automatically to the practice, with the LLM constantly building better versions, but right now, this is a manual process of iteration.

I was surprised at how good the second version was, by feeding back a screenshot and asking it to modernize the page. ChatGPT is the best editor of its own work. But there were also more than 50 edits submitted by me in the prompts to get it to a good place, and then manual edits for a while to make the end product. Perhaps ChatGPT could have made all of the page code, but it was easier and probably better to manually edit.

I'm quite happy with the final result. It's a step up on my previous website, which served me well for many years.