Finally. It took me about five rounds of dropping everything I made for having this blog on the internet. I even switched some base intentions of my desired audience (this has always been written in german). Nonetheless, here it is. The all new netz-basis.com is live again. You're going to find articles of daily developers live, mixed with some everyday-learnings I tend to share with you.

But back to topic. This blog now runs on a small custom Laravel application I recently wrote. As a sidenote: Frank Van der Herten did something similar and wrote an impressing article about his aproach. Make sure to give him a visit, if you like.

As I said, this one also runs on Laravel 5.5, which is one of my main interest (and by far my favorite PHP framework). So, without further ado, lets give you some insights:

PHP / composer

Here it is, the required-section of my current composer.json file, holding all the dependencies I use.

{
	"require": {
		"php": ">=7.1.0",
		"barryvdh/laravel-debugbar": "^3.1",
		"barryvdh/laravel-ide-helper": "^2.4",
		"caffeinated/menus": "^3.0",
		"doctrine/dbal": "^2.6",
		"fideloper/proxy": "^3.3",
		"graham-campbell/markdown": "^8.0",
		"guzzlehttp/guzzle": "^6.3",
		"intervention/image": "^2.4",
		"laravel/framework": "5.5.*",
		"laravel/tinker": "~1.0",
		"laravelcollective/html": "^5.5",
		"mockery/mockery": "^1.0",
		"msurguy/honeypot": "^1.0",
		"spatie/laravel-sitemap": "^3.3",
		"spatie/laravel-sluggable": "^2.1"
	}
}

There are some quite interesting packages in here. I'd like to give a special mention to both laravel-debugbar and laravel-ide-helper from Barry vd. Heuvel which both are incredibly useful during development.

Also worth mentioning (okay, all of them are, but ..) is spatie/laraval-sitemap, which makes it incredibly easy to get a valid XML-Sitemap for Google.

The frontend side / npm

Alongside with the forementioned Laravel application, the user facing frontend is powered by npm. I dropped orchestration of JS/CSS with gulp (which I used a looooong time) in favor of Webpack, which totally suits my needs.

Again, lets see what gets grabbed with npm:

{
"axios": "^0.17.0",
	"babel-core": "^6.26.0",
	"babel-loader": "^7.1.1",
	"babel-preset-env": "^1.6.1",
	"cross-env": "^5.1.1",
	"css-loader": "^0.28.5",
	"dropzone": "^5.2.0",
	"extract-text-webpack-plugin": "^3.0.2",
	"file-loader": "^1.1.5",
	"font-awesome": "^4.7.0",
	"glob-all": "^3.1.0",
	"img-loader": "^2.0.0",
	"jquery": "^3.2.1",
	"less": "^2.7.3",
	"less-loader": "^4.0.4",
	"lodash": "^4.17.4",
	"postcss": "^6.0.14",
	"postcss-loader": "^2.0.9",
	"prismjs": "^1.9.0",
	"purgecss": "^0.14.0",
	"purgecss-webpack-plugin": "^0.14.0",
	"simplemde": "^1.11.2",
	"style-loader": "^0.19.0",
	"tailwindcss": "^0.3.0",
	"vue": "^2.5.9",
	"vue-loader": "^13.5.0",
	"vue-template-compiler": "^2.5.9",
	"webpack": "^3.10.0"
}

So, lets talk about this. Nothing so special, I think. As I said, I'm using webpack for orchestration tasks, babel for ES2015 transpiling, LESS as my CSS-Preprocessor alongside with some fancy PostCSS/PurgeCSS tasks for further improvements. The CSS is currently based upon tailwind.css and there is vue for the fancy shit.

Behind the scenes

So what's left? The page is hosted on a simple vServer by Strato, it is running on nginx and PHP 7.1. The database is a single mariadb-instance and the code is version controlled by the fine folks @gitlab.

I'd like to hear your feedback. Be sure, I'm kinda aware of some glitches in the frontend, which already made their way into my issue tracker.