Laravel Nova Import v0.7

12th Sep '233 of your Earth minutes

I recently spent a little time on my Laravel Nova CSV Import package, one of my main open source packages. This came at the request of a sponsor.

This gave me the opportunity to level-up some of the UI and spend some time diving into some of the open PRs and issues.

Please watch the video above for more details about the features that have been added, or check these changes.

The end result is v0.7. Yep, still not a v1. Even after over 4 years, I've not really had time to flesh it out and test it to get it to a point where it's stable enough to qualify as a v1.

Despite that, it's been downloaded over 200,000 times, which is staggering to me 🤯

Why Nova?

Laravel Nova is a great piece of premium software from the Laravel team and well worth every penny. I've used it since its release and it has made so many tasks easier.

It provides an excellent pluggable admin panel interface, which is brilliant for building internal tools or as a client admin for just about any kind of database-backed application.

What's more, it uses Vue (which I love), so building really rich UIs on it is dead easy, especially since Nova v4.

I've spent a lot of time with it and I'm proud to be a part of the Nova Internals group that is supporting David and Muhammad in evolving Nova into an even more powerful tool.

What about Filament?

I've been watching Filament closely and have even used it on a couple of projects. I am really excited for that team and the awesome work they're putting into the project seems to be paying off as I see and hear a lot of other engineers raving about Filament, especially now that v3 has launched.

I really like where that project is headed too and honestly I'm tempted to port CSV Import there if it's wanted.

The main difference, of course, is that Filament uses Livewire and Alpine in place of Vue. I love Livewire too and I'm using it more and more. I think it would be an good challenge to build out the two front-ends and maintain them.

The problem is time - or rather, the lack of it. I fear that I won't have time to maintain both versions concurrently, which means one will always be a little behind.

If an easy to use, powerful CSV Import tool is what the Filament community wants, I'd love to fill that gap, but let's see if that's needed.

Is a package really necessary?

If you can build this with your team for your use-case rapidly enough without needing to depend on a third-party package, I will always advise you to do so! Fewer dependencies generally means lower risk, which means fewer problems.

We've all experienced dependencies being left behind and going stale, maintainers disappearing seemingly without a trace and no way to get their attention, multiple forks all going in weird and wonderful directions... heck, I've been a bit like that with CSV Import!

But not every individual or team has the skills, time or resources to build and maintain a powerful CSV import tool - even though that might be what your client/business needs.

If you're already using Nova, CSV Import can have you importing CSV data into your database in minutes, with powerful validation and transformation, batching, and even asynchronous processing

That's a huge time-saver.

I guess the main concern is "will it still be around when we've moved onto Nova 5, 6, 7...".

The only sane answer to that is: Yes, if you can support its existence financially.

I believe CSV Import serves an important niche: folks who want an open-ended CSV import utility for admin panels they're building for paying clients.

As a completely free and open source package, there's literally nothing forcing anyone to contribute anything for the effort that I've put into it over the years.

All I ask is that if it serves you and enables you to save money or make money by adding this powerful feature to the tools you're building, please consider sponsoring my efforts - even with just a small one-off amount - every little helps!

I will be extremely grateful.

#notadesigner • #sometimesitworks

All content licensed CC BY-SA 4.0  •  Code highlighting by Torchlight