Where do these years keep going? Time got away from me so instead of writing a technical post so I’m doing another recap. As always, the year was incredibly eventful but I’ve come to accept that I’ll never be able to achieve everything that I want to. I just want too many things.
🥅 The Goals
In 2022, it felt like I was struggling to achieve all of my goals, in part because I tried setting too many. Setting those goals costs nothing but achieving them actually requires time. Who knew?
Having learned the lesson of factoring time into my goals the hard way, I decided to keep 2023 simple. I really only had two for the year. The first was left unmentioned in the 2022 Recap because not all the details had been finalized yet. The second goal was to improve and polish helth app.
📕 The Book
The single biggest task I tackled this year was writing a technical book. If you’re curious about the book, you can find all of the details at https://sveltekitbook.dev. I’ve already written about my experience of actually writing the book, but it’s worth it to expand a bit more on it here simply because it encompassed the entire first half of my year.
Firstly, it was far more intensive than I had anticipated. Having worked as a freelancer in the past, I’m used to tracking my hours, so I opted to continue that habit for this project. In the end it amounted to the equivalent hours of a part-time job. If you’re already working a full-time job and trying to spend quality time with family, it’s tough to squeeze enough time out of each day for writing a book as well.
All of that being said, it was a very rewarding and humbling experience. I learned a lot about my craft (web development), the technology (SvelteKit), and picked up some valuable skills to improve my writing.
When the book was finally completed and I got to hold a copy of my book with my name on it, that made it worth all the effort. Of course, I wasn’t the only person that worked on this book. My efforts were only made possible by a great team. Without them, it simply would have never happened. I’m forever grateful to following people: Jane D’Souza for managing the product, Aamir Ahmed for his wonderful feedback while editing, Sonam Pandey for keeping me on schedule, Nivedita Pandey for help with marketing, the helpful technical editing by Simran Ali, and of course, the wonderful technical review and feedback provided by my good friend, Jimmy Hogoboom.
After having completed the book, I found another author working with Packt who had written about using Test-Driven Development with Svelte. Daniel Irvine did such an incredible job and his book provided me the insights I needed to incorporate testing into my own workflows with SvelteKit. If you’re using Svelte or SvelteKit, I’d highly advise getting a copy of his book Svelte with Test-Driven Development.
💻 helth app
The other project that I spent so much time on this year was helth.app, a Progressive Web Application that helps track nutrients, calories, and water intake through a simple interface and a barcode scanner. It’s entirely free to use and open-source so anyone can edit and review the code!
For the most part, helth app looks and functions the same as before but a lot has changed under the hood. For starters, it doesn’t use localStorage anymore as it’s unreliable for large amounts of data. Instead, it uses IndexedDB as the backend through the Dexie wrapper. This allows for far more data to be stored locally on the device which is great for users who plan to scan every 12 digit UPC barcode they can find.
Speaking of scanning, the barcode scanner now uses Open Food Facts instead of scraping APIs of various other services. Open Food Facts gets its data from user contributions so while data is not guaranteed to be perfect, there are far more items available simply because it is crowdsourced. Using Open Food Facts has the added benefit of allowing cross-origin requests. This means helth app users don’t need to connect back to the helth app server since each barcode scan from their device talks directly to Open Food Facts. As such, helth app no longer requires a traditional back-end and can exist as static HTML, CSS, and JS files. Because of these generous efforts from Open Food Facts, helth app users will eventually be able to contribute back to Open Food Facts by uploading their own data if they so choose.
Helth app now also includes an Inventory where scanned items are saved and can be easily added to the daily total. If the data from Open Food Facts doesn’t match what is seen on the food’s label, items can be edited to more accurately reflect nutritional values. They can also be included and combined in a Recipe to allow adding multiple items to the daily total with the press of a single button! The user interface around Recipes gets a bit convoluted with many items in an inventory but there are plans to address this in the future.
I had a lot of other features I wanted to build into helth app, but simply ran out of time with all of the refactoring and improving the development workflow. Ideally, the changes made this year will allow for rapid development early in the next year.
For the next year, I think I’ll hold off on writing any more books. I’m glad to have done it, but it didn’t leave time for much else. Instead, I plan to focus more on helth app and adding cool new features like serving sizes, contributing back to Open Food Facts, and maybe even add some premium features. 😉