More ambitious products
Written on
Lately I have marvelled at the fact that I now write software, and interfaces, that previously would have been far outside my reach. Well, have interfaces written for me more appropriately describes the situation if I am honest, but that's by the by.
After reading Dan Luu's post titled “We should be more ambitious with the software we build” I decided to write some notes of my own.
LLMs are now incredibly competent, and as a result I lean on them more and more as we build our search engines1. It's been a while since our search stack got so advanced it far exceeded my knowledge of search and optimizing search by hand, but only recently did I fully understand I could become more ambitious in the interfaces I build too!
Let me show two examples.
Design preview
Our search interface has always had the capability of live updating the design as you make changes. This was something I took great pride in, and a feature I added long before LLMs felt competent enough to aid in development. My idea was that you would open two tabs, one with your site and the other with our design editor. As you made changes to the design you would then immediately be able to see them in context on your site so you could quickly iterate and get the design to where you wanted. No one ever understood this feature existed. Even after being prompted to use it, people would then place their website in another tab, make a change in the design editor, then switch to their site and refresh it to see the changes, even though the changes were already there, ready to be seen.
I finally buckled and added the design preview right into our design editor itself. Now, we do our best to show you what the interface will look like in the context of your site, but embedded in the editor itself. Sort of the best of both worlds.
Here is what it looks like in practice:
Changing the layout and colours updates the search preview (silent video).
We overlay the real interface on a screenshot of your site, so you can see what it looks like in practice. The changes you make to the design still update live on your site, but now you also see the changes in the editor itself, so you cannot miss them.
This, I probably could have achieved myself too, without an LLM, but it would have been tedious work. Work I never would have prioritised. With very little prompting on my part we suddenly had something that worked really well, and that I think really adds to our product.
Collection editor
We have a feature as part of our product called Collections. It allows you to embed lists of stuff on your site. Be it a list of blog posts (like the list of all mine that you can see here) or a set of products (filterable by price, category, kind, etc.; you can define the filters yourself).
The editor to create these collections started out like a laundry list of options and features. A bit like the design editor I just showed off above if I am honest... Particularly the part where you could design the cards themselves was a total mess. And despite all the mess, it still didn't give you all that much freedom when it came to the actual design of your cards! That's when the penny dropped. LLMs, in most cases, do the building better than me, and I have LLMs at my disposal waiting for my bidding. And behold, a visual editor for cards, where you can drag and drop fields onto a card, and place them where you want. It still looks like it was designed by a committee of engineers (and LLMs cannot, yet anyway, give you excellent design skills), but it's vastly superior to anything I could have built by hand, and I am quite proud of it.
Here is what it currently looks like:
Placing fields and adjusting their appearance in the collection card editor (silent video).
It's still a bit janky... but it mostly allows you to do what you need to get done.
I am quite excited about this new form of working, and cannot wait to see where the limits of the LLMs actually are, rather than the limits I impose on them as a result of what I think they can, and cannot, do!
Footnotes
-
We currently have two site search engines that we build called SearchCue and Monocle Search. They share most of the backend, but differ in the platforms they serve and optimise for. ↩