In almost every project we create, we install a piece of software called Laravel Nova. We've found Nova to be an invaluable tool for both our developers and clients—but it's always a bit difficult to explain what it is and what it does.
Laravel Nova is a first-party add-on package to Laravel (the backend framework that we base our applications on) that allows us to easily setup an administration dashboard for admin specific tasks. It costs about $200 dollars per project and probably saves us at least ten times that cost in saved development hours.
How does it work?
When we setup your project, we purchase a license from Laravel and then add the package to your app. After adding the package, you can then navigate to /nova and sign in (if your username and password is on a special list) and see any of the dashboards we setup for you there. This will be the place where you have direct access to app data you don't want users to have.
Which brings me to...
Who is it for?
Nova is not for your end users. They shouldn't even know it exists. Depending on how your app is setup, it might not even live on the same domain as your application. If one of your main users were to accidentally land on a Nova page, they would be met with a message saying that they don't have access and redirecting them back to the main site.
Nova is for a small group of app administrators. This would include the client, people on the client's team and developers working on the project. This is for people who you trust with special access to your app's data you wouldn't share with anyone else. Again, the only way to ever see Nova is to have your username coded into a special administrator list.
What does it do?
Nova provides developers an easy way to quickly create dashboards that give you quick access to your apps data. You basically use this two ways:
You can create dashboard screens that tell you things like, how many purchases you made last week, how much money entered your stripe account on the site this month, how many new users you had, etc.. Nova makes it easy to get that information from the app's database and then to display it in interesting ways using charts and graphs.
For quick editing
If you want to quickly create a way to edit any kind of application data, but you don't necessarily want to spend the time to create a custom feature for it or allow any user access, Nova makes this easy. For example, if you have a section on your sign-up page, and you want the text to be easily editable, we can spin up a section in Nova for that in about an hour. If you want to be able to quickly access and edit all of your users information for support, Nova has this built in.
How we use it?
We have found that almost every app we make has the same needs that Nova can help us solve with minimal time:
Our clients want an easy way to access data about how their app is doing, and Nova allows us to get any data they want and provide it to them in a visually pleasing way without coding out a custom dashboard.
Support (User access and impersonation)
Our clients need to help users who are seeking support for their app. This means they may need to be able to see and manipulate the user's data or even sign in as the user (what is called user impersonation) to see what the user is seeing. This kind of thing could take weeks to make from scratch, but with Nova, we can have it setup in an hour.
Light content management
Parts or your app are going to need some kind of light content management system. While we wouldn't use Nova for full fledged landing pages, it's perfectly suitable for bits of content here and there in your app you may want to change from time to time.
At some point you are going to want to be able to send notifications to your users. This could be letting a specific group of users know about early access to a new feature, letting one user know you are having an issue with their billing, or letting all of your users know you have a special campaign. Nova provides an easy way for us to give you a space to write, edit, schedule, and send these notifications. Our system can send out SMS messages, emails, in-app notifications, or all of the above.
Early data entry
Early on in an application's development, it's common for the client to need to enter a lot of data that users will interact with later on in the app. For example, one client's app depended on a database of nearly every plant and landscape material in the US. For the app to work, we needed to give him a way to enter that data, and Nova made that easy.
Laravel Nova is an invaluable tool in our toolkit and one of many reasons we stick with the Laravel framework and ecosystem. It has saved our clients tens of thousands of dollars in saved labor. You'll probably find yourself using it often should you have us build an app for you.