I have a dream: everyone in the world has the option to make a living through computer programming, from anywhere, anytime.
I could tell you my story, but I will leave that for a future post! Pinky swear! ☝️ Also, let's just pretend that is a pinky!
TLDR; I will show you a way to create a full solution, on building a web application, with a smile on your face, using tools that allow you to be very fast, from idea, to live launch, and to support the whole application life!
This being around:
- Laravel Nova
- Docker
Ok, to the blog post!
As it seems, I'm not the only one that had a ZX Spectrum as the first computer and wrote the first program in a calculator (OMG! I don't want to do the math, how many years have passed!!). These were exactly the models I had. Thanks, mom and dad!!
Having a massive passion for creating stuff in general (better if complex problems) and technology, it seems to me so logical that the taste for developing applications in a rapid way was always a constant in my journey. The tricky part is that they generally throw a wall at us when we want to have the full power of customization. Because yes, we all know in real life, beyond "Blog" and "To-do" apps, things get really tricky, really fast.
The thing that really clicked for me is Laravel Nova. It's an "Administration Panel" for Laravel apps, co-authored by the creator of Laravel.
Just look at how cool it looks:
Despite being amazing at what it promises to do, it's not an application builder by default, so it has its downsides, like just anything in life. Pros and cons. Always.
But, but(!), this is the solution where I found the most productive experience while keeping the lowest friction in several key points:
- When switching between projects (that both have Nova)
- When wanting to distribute (privately or publicly) a "full-stack component"
- When wanting to have a marketplace and get a ready component to use
I will expand on these, and grow a list of advantages I find that are way above any other option I've tried.
Ok, so we can have ourselves an application real quick, because there's a way. But this is not enough, we have to deploy it somewhere, somehow, don't we?!
Right, and in 2022 there are way too many options, which might come as daunting! Relax, sit tight, because I'm not here to discuss what is the better one!
What I can tell you is that adopting or using Docker is one of the best things you can do! I'll expand on that too, later.
But rest assured, if you do, you are so much ready to:
- Deploy anywhere. In your local machine, in a bare metal server, in a 5$/mo VPS, in a cluster of VPS, in a managed service like Laravel Vapor, AWS, Digital Ocean, and so much more!
- Configure environments of CI/CD. Think Github Actions, Gitlab CI/CD, Bitbucket Pipelines, and more!
- Peace of mind about environment. Just with a few text files (which live inside your project) you get the full setup for development, production, CI, all of it. Revisit older projects and all is there, conveniently.
- ...
I have to stop here. There are so many advantages in learning this tool, that I will have to expand later, and yes, expect content on that, for sure!
Thank you for reading, and please, don't be shy, let me know your thoughts, feedback, anything!!
Happy coding!
Patricio