Smapp
The Filament library available for PHP Laravel allows a backend developer to implement a rich user interface even if your front-end design skills are not up to snuff. That is the case for me, I have always relied on designers and front-end developers to make my applications look good. Filament provides a good looking interface out of the box, but it is also highly customizable. This project was a chance for me to try this library out and see how it works.
Project Overview
There are three main processes that this application needed to support.
- Buying products
- Tracking these products through a warehouse
- Selling/Shipping products

These were a breeze to implement because they are mostly CRUD processes. The movement of products through the sales process and creating invoices was straightforward. The sticky bit was the need to interface with Intuit Quickbooks for the financial side of this application. Intuit Quickbooks API was a bit of a bear. If you are not familiar with it, add an extra 70% to all of your time estimates. The API is not well documented and the error messages are not helpful.
FilamentPros
Quick setup and full featured. As long as your models are implemented correctly, you can have a full CRUD interface up and running in minutes. The interface is clean and modern looking. The documentation is adequate good and the community is active.
Filament Cons
Like all frameworks, the basics are super easy but as soon as you need to wander off the reservation to implement a unique function, you end up fighting the framework more than benefiting from it. Also, because it is relatively young, AI will not be much help when you run into a problem.
Intuit Quickbooks API
This is the first accounting system I have interfaced with in code. It is, by far, not the first API I have coded against. But it was, by far, the most convoluted. Maybe all accounting systems are archaic and difficult to work with? I hope not.
Conclusion
Overall, I am happy with the results of this project. I was able to implement a full-featured application in a short amount of time. The Filament library was a big help in this. I would recommend this library to anyone who needs to implement an interface quickly and does not have the time or resources to build a custom interface. I would like to say it was a *fun* project, but the problems in the backend communications with an external API kind of sucked the joy out of it. If your project needs a good looking interface and the majority of your interactions will be CRUD, then Filament is a good choice.