In this post I'll talk a bit about all the steps required in building a website. I lot of developers I've met (who are developing for the web) only knows about the thing they do and then nothing about web servers or HTTP. I think this is a part of your field of you are a web developer and therefor something that you should know a bit about.

The Planning Phase

I think planning a homepage is pretty much like moving into a new flat, you have functionality and design. Design is important but in my experience I think functionality should come first in the general case, unless everyone already knows about you product/service. Also designs are more flexible than functionality. Long story short: write down functions first and colour theme second.

The Design Phase

Designing for the web is not different from designing in general - it's all about the Fibonacci. I could go on but the beauty in a painting is that invokes something in us that we can relate to, this can be a memory or a feeling. The same goes for attraction - not every woman is attracted to stomach abs but most women are because it's the sign of a good climber, which was a big advantage in 90% of the human evolution. Long story short: most people probably think design and beauty is in the eye of the beholder but only to some extend, there's a lot of math behind it.

And Finally We Need Somewhere To Put Our Web App

Sometimes I wish I'd started with more money so I could tell you all about different VPS-like services. But I haven't used Laravel Forge, not even Digital Ocean actually. I push to my own web server, which is free except for the domain name and DynDNS.

Let's start from the beginning. If you're homepage is just one file: index.html, and inside that file is just: Hello world!, you'll be fine with basically any web hosting service. But if you're anything like me, and you're using Laravel or something a bit more powerful, you'll need at least Node installed on the server, also a recent version of PHP. Here's a list of extensions that Laravel requires. Forge is built for Laravel apps, so they'll have everything setup for you probably.

Finishing Thoughts

Unfortunately, we're not done... a lot of things you can learn on the way. You don't need to know too much about PHP or CSS actually to start building web apps with Laravel. But you need to install Laravel for local development, and learn Git. Git isn't super hard, there's great information out on YouTube etc but installing Laravel for local development actually isn't super easy. I need to make a separate post about this because now when I look at the Laravel docs, it looks like they've removed the stuff on Homestead. Homestead was cool because it's obvious that the Laravel Team wanted to make it easier to set up the local environment, but it was still sort of messy.