Have I switched to Tailwind?

I’ve never been much of a designer; I know what I like and I can recreate any design a designer passes my way. However, producing anything original is incredibly hard.

I switched to Bootstrap many years ago to help me solve the problem, Bootstrap made it easy to create what I wanted and still have it look OK – typically more than ok.

Bootstrap sites typically look the same and before I go on, I don’t necessarily consider that a “bad thing”. The problem arises when you don’t want everything to look the same. Customisation is possible with Bootstrap, particularly version 5. However, it gets complicated quickly.

I’ve released three Apps in the last year, two game scorers for Yahtzee and Yatzy and Budget, a free open-source budgeting App. The Apps all look ‘similar’, this isn’t necessary a problem because they all belong to the Costs to Expect service so it should be obvious that they belong to the same brand. However, I wanted something different for Budget Pro, an evolution of Budget.

Budget Pro belongs to the same family as all the Apps I released this year but being the paid version, I wanted to differentiate it from Budget and give it a sharpened look. Due to its features, it will also have a more complex UI than Budget. As I was thinking about how to ‘improve’ the Budget design I decided to give Tailwind a go as everything I’ve seen of it has impressed me, particularly Tailwind UI.

Two things pushed me over the edge. Firstly. Tailwind UI, having an extensive library of components to build with and from made it easy to get started and start building up ideas. Secondly, the standalone cli; I don’t want or need any additional dependencies and prefer vanilla JavaScript over any front-end toolchains.

I’m only a little way into my journey with Tailwind but so far, I’m loving it. Yes, you end up with lots of classes in the HTML. However, you know what each of them do based on the name and I create components to reduce duplication anyway.

We’ll see if the honeymoon continues as I move away from landing and content pages and get into the nitty gritty of creating the meat of Budget Pro.

Budget Pro is in development

I started playing around with Budget Pro at the end of October, initially the landing page and ideas for the design. I’m still very much in the preliminary stages but I don’t think development will take too long as I have the experience of Budget behind me.
Originally, my intent was to take a copy of the Budget code and build all the new features on top and although possible, I’ve realised that long term this just isn’t going to work too well.

Budget is capable but there are two core features which should really be accounted for up front and not tacked on to a working design. Adding support for sharing and multiple budgets means I need to create some sort of “Budget Manager” that knows who owns a Budget and what controls each user has. Additionally, I need a way of surfacing a summary from each Budget rather than just visually as per the free version of Budget.

I’m not going to throw away the Budget code and start again, that would be stupid. The tested Budget service code works well and will just need the odd tweak here and there, it is more about how the service is wrapped and returns data and lessons I’ve learned during the development of Budget.

Budget and Budget Pro are both going to be supported for the foreseeable future, but they are their own products. Budget will get new features and even borrow features from Budget Pro, but it will not become Budget Pro.

Budget beta begins

I have tagged v1.00.0 of Budget, it has now entered the beta period.

The beta period will last for two months and this is a real beta; the product is feature complete. We aren’t adding any new features over the next two months, it is for bug fixes and UI/UX changes based on feedback.

For the next two months I have a freelance project so my days are going to dedicated to that and I’ll work on beta feedback during the evenings and weekends.

The dream of the side hustle

This year I’ve released three apps under the Costs to Expect name: two game scorers for Yahtzee and Yatzy and now Budget, a budgeting tool. Budget is a free app and next year the paid version will be released which, for now, I have imaginatively named, Budget Pro.

Budget Pro will be the first paid product under the Costs to Expect name and I have at least three more planned: an expenses tool, a data manipulation tool, and an importer/exporter.

Getting to this point has been a long journey. The first version of the Costs to Expect API was released in late 2018 and later that year we released our App (now redundant). The original idea was to have one App which handled all the distinctive features we wanted to support. However, as we added features, the App got increasingly complicated. Earlier this year I decided to ditch the monolith idea and build smaller, more focused Apps. To say that this change of direction paid off would be an understatement.

The first smaller app was the Yahtzee game scorer. After just two weeks, the app was complete and I was shocked at how simple it had been to create in comparison to the monolith I’d been supporting for two years. Next came the Yatzy game scorer which is just the Scandinavian version of the game. Having already developed Yahtzee, it was simple to create as the only difference was the scoring page.

Budget was next on my list. This had been planned for years and was one of the original reasons behind creating the API in the first place (Budget Pro not Budget). I took a copy of the Yahtzee App and got to work. Two months later, Budget is ready and now in beta.

To say I’m pleased would be understating things. With Budget ready, I’m more than halfway towards having my first paid product out there. If I had kept the old monolith around, I’m certain I wouldn’t be where I am now.

Budget Pro will be ready in the first half of 2023 and after writing these three smaller Apps, I’m confident of my estimate. There is always the chance that I’ll regret this decision later, but I doubt it as I have two options: one API and complex App or one API and many smaller more focused Apps – I’ll take the second option any day of the week.

Side projects of side projects are taking over!

This month I released a Yahtzee game scorer and a Yatzy game scorer, both a simple Apps which use the Costs to Expect API, they are a little bit of fun and allowed me to test some ideas.

As per a lot of the Apps in the Costs to Expect service, the game scorers are Open Source, you are free to play around with them.

I have shipped lots of updates in the last few weeks and learned a lot about the new user experience, with something as simple as the scorers it is very easy to focus on the initial experience for new users.

The lessons I have learned are already starting to improve Budget, the next App in the Costs to Expect service.

Budget is not a simple App like Yahtzee, it is going to be quite involved, no ETA yet but I would like to have a Beta out well before the end of the year, it very much depends on how much time I have outside of freelance work and contracts.