Petr Tcoi skills

Petr Tcoi Official Website

Hello!
My name is Petr. I am a self-taught Full Stack developer with over 6 years of commercial experience.
Create websites using React, NextJS, Typescript, TailwindCSS, and other modern technologies. I am also familiar with the basics of backend development using NodeJS, Express, MongoDB, PostgreSQL and Firebase.
contact me

Some examples of work

Heating radiators VelarShop

VelarShop.ru

Online store for designer radiators and floor convectors. Created with SEO requirements in mind.

Astro
Tailwind
Supabase
TubogShop.ru screenshot

TubogShop.ru

Another stock of radiators. Realized on Next. Google Sheets is used as a database for editing prices.

NextJS
MUI
Google Sheets
KreditGuide.ru screenshot

KreditGuide.ru

Online directory of microcredit organizations and credit card banks. There are sections for news and articles.

Astro
Tailwind
Supabase

Posts

My experiment with HTMX and Astro
I share my experience and first impressions of working with the HTMX library. It is unlikely to become the #1 solution for me, but it will definitely occupy its niche.
read more:
dev.tovc.ru
A small example of how to use the satisfies operator in TypeScript
This article explores the usefulness of the `satisfies` operator in TypeScript, which allows developers to specify expected variable types without changing their original types. The article provides a practical example to demonstrate the usefulness of the operator. It explains how to prepare an object with keys as arbitrary strings and values from a given product list, demonstrating how the satisfies operator can streamline type management in TypeScript applications.
2024-03-15
read more:
dev.tovc.ru
NextJS API + React Query + Zod = type safety
One of the advantages of Next.js is the ability to combine frontend and backend within a single project and use shared types and interfaces. Unfortunately, the server-side part of the framework operates independently from the frontend, functioning as a largely standalone application. Therefore, ensuring type safety requires additional effort. In this article, I will share my experience in addressing this issue.
2023-09-06
read more:
dev.tovc.ru
My experience with FSD (Feature-Sliced Design) architecture.
In this article, I want to share my experience of developing applications using the FSD (Feature-Sliced Design) approach.
2023-07-03
read more:
dev.tovc.ru
State management with Astro and @nanostores
My first experience with Astro. A simpler and more efficient alternative to NextJS for small websites.
2023-05-12
read more:
dev.tovc.ru
Performance of the spread operator
A brief analysis of the performance of the spread operator and possible alternatives.
2023-04-04
read more:
dev.tovc.ru
Functional Programming with fp-ts Library
A brief introduction to the fp-ts library. Practical example breakdown with the use of TaskEither / Either.
2023-02-06
read more:
dev.tovc.ru
A little bit of Ramda for React and Redux
A brief overview of possible ways to use Ramda with React/Redux. My first experiments with this library.
2023-01-05
read more:
dev.tovc.ru
Testing with Storybook !!
The final article on testing. Basic setup of Storybook. Connecting the theme selector. Visual testing using Chromatic.
2022-12-06
read more:
dev.tovc.ru
Testing with Playwright !
Continuation of testing the site. More accurate checking of the sidebar menu and theme change using the Playwright framework. Testing website interactions, snapshot tests, and checking whether elements appear in the visible area of the screen.
2022-11-16
read more:
dev.tovc.ru
Testing with @testing-library
Configuration and implementation of unit tests and integration tests using the testing-library library. The functionality of the buttons to open and close the sidebar menu has been checked.
2022-11-13
read more:
dev.tovc.ru
Changing theme via CSS variables
Demonstration of changing the theme via CSS variables and manipulating the DOM: setting the data-theme attribute for the tag. Also, smooth transition is added when changing the color scheme of the site using the transition property.
2022-11-07
read more:
dev.tovc.ru