██╗   ██╗██╗      █████╗ ██████╗ ██╗███╗   ███╗██╗██████╗     ██╗   ██╗ ██████╗ ██╗   ██╗██╗  ██╗
  ██║   ██║██║     ██╔══██╗██╔══██╗██║████╗ ████║██║██╔══██╗    ██║   ██║██╔═══██╗██║   ██║██║ ██╔╝
  ██║   ██║██║     ███████║██║  ██║██║██╔████╔██║██║██████╔╝    ██║   ██║██║   ██║██║   ██║█████╔╝
  ╚██╗ ██╔╝██║     ██╔══██║██║  ██║██║██║╚██╔╝██║██║██╔══██╗    ╚██╗ ██╔╝██║   ██║╚██╗ ██╔╝██╔═██╗
██╗╚████╔╝ ███████╗██║  ██║██████╔╝██║██║ ╚═╝ ██║██║██║  ██║     ╚████╔╝ ╚██████╔╝ ╚████╔╝ ██║  ██╗
╚═╝ ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝╚═╝     ╚═╝╚═╝╚═╝  ╚═╝      ╚═══╝   ╚═════╝   ╚═══╝  ╚═╝  ╚═╝

Hi and welcome to my blog! 👋
I usually write about mobile and web development. React Native, React and anything else I'm interested in.

Exposing Methods from React Functional Components

Electronic Components

In React we are using props to control our components. But sometimes we need more...

Read more →

Starting React Native Project in 2026

Rocket takeoff

We will use Expo's create-expo-app command recommended by the docs. Also, we will add ESLint, Prettier, and some custom configurations that will make our development process better.

Read more →

Better Image Placeholders with ThumbHash

Progress bar loading

ThumbHash is a very compact representation of a placeholder for an image. Store it inline with your data and show it while the real image is loading for a smoother loading experience.

Read more →

Absolute Path Imports with Typescript and Node.js

A path in the forest

With absolute path imports, we can do import { functionA } from 'src/modules/moduleA'. Notice that the path starts with src instead of ../../.. dots when we use relative paths.

Read more →

Fastify API with Postgres and Drizzle ORM

Server dashboard

Fastify is a fast and low overhead web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture.

Read more →

Split Keyboard Adventure

Mechanical keyboard

Recently, I decided to give a try to a split keyboard. You can find a lot of people saying that spit keyboards improve their productivity, and posture, remove hand pain, etc. Sounds interesting, right?

Read more →

Automate Your Dev Environment Setup

Developer desk

How many hours do you need to set up all your favorite tools on a new machine? What if your colleague or friend wants the same setup and asks you for help? Or maybe you want to change something, but you set it up a long time ago and have no idea what you need to change...

Read more →

Terminal Animations with Node.js

Terminal running htop

Node.js has the process object with stdout property which is a stream connected to stdout. Using the process.stdout property, we can access several useful properties and methods: columns, rows, cursorTo, and write. These are essentials to start "animate" something in the terminal.

Read more →

How to Change iOS Push Notifications Permission Dialog with Expo

Mobile phone

To receive push notifications we need to ask the user permission first. The requestPermissionsAsync function will show the user standard dialog asking to allow displaying alerts, setting badge count, and playing sounds. Unfortunately, the docs have no information on how to change the dialog's text and make it more personal for our app.

Read more →

Compress, Convert and Trim Videos with Command Line

Video editor timeline

Often, we have videos of different formats and resolutions from our phones and cameras, and also from our friends and family. Sometimes, these videos are uncompressed, so they take up a lot of space. There are many methods how we can solve this problem. But here, I would like to tell you about FFmpeg.

Read more →

Learning Flexbox Details by Building a Button in React Native

A woman stretching

Imaging we need to build a simple UI for an article preview with a button. Let's start building it from the button. Why not? 🙃

Read more →

Default Exports vs Named Exports

A river in the forest

When comparing default exports with named exports, I think that both methods are good. But I can see some advantages of named exports.

Read more →

React Native Conditional Rendering

A mountain edge

In general, conditional rendering in React Native is the same as in React. But be aware, that in React Native we can render strings only inside the Text component. So, for example, if we will try to put a string inside a View we will get an error.

Read more →

When to use React.memo and React.useCallback for Performance Optimisation

This is the way - Mando

Sometimes we can see that people tend to wrap every callback function into useCallback hook and use memo for every component in their app (even for really simple components like buttons). And if you will ask why do they do that, the answer probably will be "to make the app faster". But is it really true?

Read more →