Blog about JavaScript, performance and security
The Complete Guide to Setting up React with ReScript and Vite
If you're intrigued by the idea of exploring another strongly typed, functional language, you should definitely give ReScript a try. This guide is designed to assist you in setting up a fundamental React application using ReScript and Vite, offering you a fantastic opportunity to delve into this exciting combination of technologies. With ReScript's type safety and the speed of Vite, you'll be well on your way to building robust and highly performant web applications that are a joy to work with. So, let's embark on this journey of enhancing your web development skills by seamlessly integrating React, ReScript, and Vite into your workflow
How to create and configure Next.JS v.13 application - prettier, eslint, husky
Learn how to create a Next.js app with Prettier, ESLint, Husky, Jest, and deploy it on Azure. This guide covers setting up a new project, configuring Prettier and ESLint, using Husky for pre-commit hooks, writing tests with Jest, and deploying to Azure. Enhance your development experience and optimize your app for production.
Next.JS and new React Server Components - How to Use and Caveats
Recently I have spent a lot of time dealing with the new feature in Next.js - server components, and now I want to share my experience and some thoughts about this update, including the benefits, limitations, and how to use them in real-life scenarios.
All materials for the new course React For Beginners have been published!
As you already know, on April I started working on the free React Course for Beginners. It was a long ride and now I am extremely happy to announce, that all program already finished and all materials published for everybody:
- What is React
- A new project with create-react-app
- What is React Component
- React with Hooks
- Building React Component
- Styling in React - from plain CSS to CSS in JS
- Tracking Changes
- Managing state in React
- Forms - Default way and React-Hook-Forms
- Routing in React
- React and network
- UI libraries
- Tests
- TypeScript
What is even more exiting, I've opened the YouTube channel where I am giving talks based on this topics. Right now all talks are in Ukrainian (I am Ukrainian, you remember this, right?), but I have some plans about translations.
Hope to see you after the war ended.
Advanced TypeScript Tips and Tricks - Case Study
It would seem that in 2022 it is a bit too late to talk about TypeScript - the technology is well known and popular. Despite this, some times TypeScript still used half-heartedly. Simple type annotations, null checking and nothing more. Therefore, I brought some interesting, purely practical cases to show mighty TypeScript in action!
Start working on free React course to support Ukraine
Hello, I am from Ukraine 🇺🇦
To support #Ukrainians in the war, I am launching free react course for beginners.
It will cover 12 topics and lasts around a month.
All materials will be opened an published on my github - https://github.com/Drag13/react-learning-course-short. Updates will be post in twitter - https://twitter.com/drag137
Feel free to contribute or ask questions!
Performance testing on a slow network and weak CPU using Puppeteer and React
This article shows how to build the script for gathering performance metrics with a slow network or weak CPU using Puppeteer and React. We will also explore cache and cacheless testing to cover the first-time visit and returning scenario. The example might be helpful in case you want to get some insights on how does your site behave on mobile devices that usually are weaker than laptops.
Getting performance metrics from React application using Puppeteer
This article will show how to build the script to gather main performance metrics and Core Web Vitals from the React application using Puppeteer and TypeScript. I will also describe how to create and extract custom performance events using the React Profiler component. This example might be helpful if you decide to do some performance research or implement advanced performance testing into your CI/CD pipeline.
How to opt-out Federated Learning of Cohorts (FLoC) using JavaScript
Federated Learning of Cohorts (FLoC) - is the new way proposed by Google that allows Chrome to collect and share customer's personal information without the need for cookies. This article describes how to opt-out FLoC using JavaScript and why HTTP headers might not be enough.
Twitter bot dedicated only to #webperf is here!
Hi all! Interested in creating a faster web? Subscribe to my Twitter bot to get the latest news from all over the world regarding web performance. Or simply use #webperf tag to be retweeted.
Built using #Azure and Azure Logic Apps with 0 lines of code.
TypeScript Tips and Tricks - Utility Types With Examples
TypeScript is a very powerful language, however, it heavily relies on the types. And sometimes, you may found that you write more types than actual code. In this case, you should take a look into the Utility types that will help you to write fewer types and still keep your code type-safe.
Hey ho! Perfrunner's config file already available with v.0.9! 🥳
Hi all! Configuration file for the Perfrunner already available in 0.9 version.
It supports:
- Tuning network conditions
- Multiple URL in a single test run
Create config file with npx perfrunner init
command and use it running Perfrunner without arguments.
And you don't need hardcode long string in the package.json anymore 😎!
If you have any question or spotted an issue - feel free to open an issue
TypeScript Tips and Tricks - Declarations With Examples
TypeScript is a very powerful language and it is becoming more and more popular. It is easy to start but hard to master. In this article I will show you some useful tips and tricks about TypeScript declarations that may help you in everyday coding and will keep your code type-safe.
Perfrunner - automated tool to track your website speed changes
A few months ago I worked on the performance improvements for one React-based web application. I tried different tricks to improve initial application loading and I was really annoyed with the way of testing my changes. I had to launch the application several times to get average results. I had to repeat all launches against at least two types of networks (4g and my current). And I must do all mentioned once again for cache and cashless scenarios. So, for the one single change, I must run at least 12 tests. This was not fun. I decided that I don't want to do this anymore and this is how the Perfrunner appeared.
How to use React without unsafe-inline runtime chunk and why
React.JS is an awesome library that widely used all over the world. However, it also contains some pitfalls that might negatively impact your application. And here I want to discuss one of such pitfalls - inlined runtime chunk that might prevent you from correct using one of the most useful security header - Content-Security-Policy.
Hey ho! Perfrunner already in alpha now! 🥳
The good news just arrived (at least for me :)) Alpha version of the Perfrunner already available via npm. It is still fresh and lacks some nice features but it is fully functional and ready to work.
If you wondering what Perfrunner is - it's a simple automation tool to track the performance of the web application built on top of puppeteer. It tracks performance metrics, custom marks, amount of the resources, and much more. Feel free to try it with:
npx perfrunner drag13.io
The code is not very nice and development still in progress, but I am on the way, so new features will arrive soon.
How to add custom types into the TypeScript project
Working with TypeScript is very comfortable. It provides Intellisense, type-checking, and makes the developer's life much easier. But, sometimes, when I am using external libraries, I got a problem. They don provide types or shipped types that are outdated. In this case, there is no other option but to define custom typings my own. Luckily, it's not that hard as you may expect.