This is a complete tutorial on how to create a blog using a static website generator and free web hosting in 2021. It is better to have at least basic programming experience to proceed with the tutorial.

We will use Hexo as a blog framework, GitLab Pages as a free hosting with HTTPS and a custom domain, Node JS and Git.

In the end, I will give you a recommendation about website monitoring.

Let’s get started.

What is a static site generator

A static website is a website that is not generated on every request on the server-side. …


What is a website monitoring

Website monitoring is a way to be sure your website, web-service, or API endpoint works and works properly. Tools described below will provide you comprehensive information about website availability, performance, hosting resource usage, and a lot of other valuable data.

Why is a website monitoring important

There are a lot of reasons to monitor your website.

You may use simple hosting, for example, shared hosting. Monitoring will show you website uptime. Uptime is a percentage of time a website has been working and available. If uptime is low, people can’t reach the website often and it is reasonable to change your hosting provider.

You may update…


I was needed to send emails for my new project. I have explored SaaS services first. Free packages provided by them have a small amount of sending emails. So as long as I am a programmer, I decided to host my own sending email server.

After some research, I decided to stay with Postfix send-only configuration. Continue to read how to install and configure SMTP server to send emails and not send them to a spam folder.

Prerequisites

I used a single-core VPS with Ubuntu 18.04 for just 2.5 USD per month. My main app uses a table in DB as…


My goal was to add Continue with Facebook (Log In) button into the existing Symfony application. I do not provide here full code. Only the main parts to creating your Facebook login button. Here is what I did.

Overview

Workflow overview is:

  1. User clicks the Facebook login button
  2. Facebook authenticate user
  3. App sends facebook token (auth data) to Symfony backend
  4. Backend gets user data (name and email) using auth data and logs in with Symfony handlers.

So Facebook is only necessary for the only first part — checking the person who wants to log in. …


I decided to make an app that will change display color while music playing. Kind of disco lights. Just to practice Android app development.

Sounds pretty simple. You just need to enable a microphone and respond to sound. But you need to implement a beat detection algorithm.

During development, I studied what is sound and how electronic devices work with it. Let’s get started.

How a microphone works

Sound waves move the diaphragm and coil inside a microphone back and forth. These movements converted into electrical current. The electrical current then converted to discrete values. …


Here is a short reference of some points in source code, which should help you to create XenForo 2 add-on. At first, I recommend you follow the official tutorial with an add-on sample.
You can find it here:
https://xenforo.com/xf2-docs/dev/lets-build-an-add-on/
Below you will find additional information I discovered during writing my add-on.

Prepare environment

I usually use Docker for such kind of app. I worked on an app with Memcached, so you will see it in the files below.
Here is the content of Dockerfile:

FROM php:7.2-apache RUN apt-get update \ && apt-get install -y \ zip \ zlib1g-dev \ libz-dev \ libmemcached-dev…


It is good to know if someone has logged in to your web server. Let’s do it.

Create telegram bot

To send a message to Telegram group or channel, you should first create your own bot. Just open Telegram, find @BotFather and type /start. Then follow instructions to create bot and get token to access the HTTP API.

Create Channel

Create a new Channel in Telegram and add your bot as a member. So your bot could send messages to the Channel. In order to get Channel Id, first, post any message to the Channel. Then use this link template to get Channel Id: https://api.telegram.org/bot<YourBOTToken>/getUpdates

Konstantin Bogomolov

Web Developer | PHP Certified | Digital Nomad

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store