A screenshot of wishlist app vs the swishlist app

From Wishlist to Swishlist

The first app I ever built with augmented coding was a wishlist app. Back then it was copilot, for finding what the latest react syntax is, and ChatGPT for generating a usable image for the app header. It was born out of the need to keep track of whatever my kids wanted for their birthdays or Christmas.

I remember my motivation back then: learn and apply DDD and TDD. Web design was never my skill, much less front end development. But I managed to put that app together during my first ever Swedish summer break (meaning one that lasted more than 2 weeks, for my Asian friends). The wishlist, while ugly, is still very much in use today.

My son’s birthday is coming up next week, and gone are the days when he’s asking for toys or one specific thing. I thought it was high time to evolve it into a Swishlist (Swish being the Swedish payment app everyone here uses to send each other money). To be honest, I wish Swish themselves would have such a feature, but because they don’t, I found my next opportunity to apply event sourcing and learn something!

The idea is simple: my son could make a list of things he’s saving up for and share it with family and friends, so they could choose to contribute to that fund if they can’t think of anything to give him.

Simple enough. I created the app and asked him to make his list. I was about to share the link halfway around the world, but before doing so, I thought I could make it a little bit more interesting for them as well.

I added a way for him to enter how much he’d already saved, and to display that as a simple graph in the shared list, to make it more visible how close he is to his goal.

To make it more personal, before sending the money we could ask them for a short message to post on the wish wall, and play them all together when the goal is achieved. That way, he could have a little keepsake of everyone who actually contributed to his dream.

I was going to share the link with my family, but then I thought that would ruin the surprise. It was six days till his birthday, and if people started posting their messages now, he’d see them on his list and the surprise would be gone.

So I made a new list for him and sent that to my family. They’ve now sent in their messages to that list. While they were doing that, I even built a little visualization we could use to play the messages from everyone. I was thinking we could have it on our smart TV playing throughout the day. Now that I think about it, I should be able to configure it so I could add photos there as well. (*adds to the todo list*)

For the handover, I figured I’d just give him the URL and PIN on the day. But it’d be better if I could forward everything I’d collected into his Swishlist instead. So I added a feature where I could close my list, and forward all the messages (and of course the Swish too) to the Swishlist he created, so he gets all the wishes into the original list he made.

Thanks to event sourcing, it was literally an import of events.

I think the product concept itself still needs polishing, but being able to pivot quickly on what the product even *is* turned out to be the real win. We could ship early, try things, change direction, improve, all without losing data along the way. That’s exactly what you want in a market that moves as fast as this one. And on the building side, none of it was painful: in a traditionally built system carrying state, the same changes would have taken serious effort, but here it was mostly a matter of adding new types of events without touching any of the existing ones. With AI helping, all of this came together in a single day.

That’s what made the difference, really. A wishlist became a Swishlist became a surprise handover with a wish wall on the smart TV, all in the few days before my son’s birthday. The shape of the product kept shifting as I thought of new things, and not once did I have to fight the code to keep up.

Check out the demo of the app here https://swishlist.itsybit.se/?demo. My son’s birthday isn’t until a few days, so expect things to be in flux πŸ˜€

*(Now if only Swish could add scheduled Swish to their API. I could make this so much better.)*

Leave a comment