You know that idea for a digital business that you're dying to build, but always get stopped at the thought of all the boring coding you'll have to do? Or just get stopped at the idea of such a huge undertaking?
All those CRUDs, the admin panel, the user roles, the forms, file uploads. And then the front end, even choosing a stack can be exhausting these days.
My idea
I remember wanting to build a finance app for personal use as early as 2016. I've always been a big fan of YNAB, however, there's no support for automatic imports for banks from Mexico, I'm not too fond of doing their CSV imports, and the pricing is considerable.
Back then, I didn't know coding as I do today, but still I always got stopped by dumb problems not related to code.
I was too worried about specific parts of the app (e.g. the "New Transaction" experience) without actually making progress on the things that would add value and might've kept me hooked on building the thing.
Classic rookie mistake. I eventually gave up, given that I was making no progress. 🤦♂️
Spoiled & Betrayed
After some time, I found an app that had just launched called Fintonic, which did support automatic imports and generally speaking was pretty functional.
Even though the UX was somewhat bad after release, they kept pushing updates and making it better, until they reached a point where the app was pretty much perfect.
I was so happy, it had mostly everything I wanted in my ideal finance app.
And suddenly, the automatic imports stopped working 😩.
I put on support requests, and waited for days for the devs to push a fix. Days became weeks, then months. It was never fixed.
Their business model had been changing and the app was always free, so I can't really blame them.
A discovery
Fast forward to the present, I thought: screw it, I'm just going to build it with the tools I know, and do my best to focus on adding value instead of losing time building fancy features.
Pretty much what you should always do when trying to build an MVP.
Anyways, I decided to try out Filament for Laravel since I've been working with Laravel for some time now, and I kept reading good things about it over at Twitter/X, way more than most CRUD builders I've checked before.
I already had prepared a draft of the database structure for my finance app, so I used Laravel & Filament to build the database and the CRUDs for those tables and started working on getting the minimum requirements for me to be able to track my spending and categorize it all, with as much automation as possible.
Final Thoughts
I won't say there's not a learning curve, you definitely need to have the Filament docs open and close by for the first few days. But given that most CRUDs will end up being similar, it's quite easy to get the hang of it after you've done the same thing a few times.
I've been surprised a decent amount of times when I need to add a custom thing for a view and I always think "Argh I don't think Filament supports this". And they do, 90% of the time in my case.
A finance app is a usually very customized app, so once the CRUDs were 100% ready to get the data I wanted into the database, I started building new pages using custom Livewire components, which Filament supports as "Pages".
I won't talk about Livewire in this same post, but suffice it to say the Developer Experience is as good as the one you get when using Filament.
I still have lots of features to add until I reach the point of automating everything I can, but I'm able to get very far using these tools.