Articles
April 07, 2026
How to avoid localStorage, cookie, and service worker conflicts between projects — automatic port assignment based on package.json.
March 17, 2026
Analyzing when to use <style scoped> in Vue and when unique class names are sufficient.
February 20, 2026
How to truncate text in the middle using Flexbox, text-overflow, and ResizeObserver without dependencies.
February 17, 2026
A repository template for automating version publishing, generating changelogs, and creating GitHub Releases using GitHub Actions.
November 04, 2025
When regex-based email validation is unnecessary and how to correctly ensure the entered address is valid.
October 14, 2025
A concise guide to CSS properties for text wrapping and truncation: overflow-wrap, text-wrap, word-break, white-space, and text-overflow.
September 25, 2025
Strict typing and immutability of objects in TypeScript: how to use as const and satisfies to validate object fields and lock literal values.
August 26, 2025
Exports from modules are visible globally, clutters autocomplete in the IDE, and prevents code encapsulation — analysis of the problem and possible workarounds.
August 21, 2025
How to run TypeScript files directly, without intermediate transpilation, using modern Node.js versions.
August 19, 2025
How to quickly create a Telegram Mini App — simple bot registration via BotFather and a link to your website.
August 05, 2025
A web service for tracking metrics and dependencies of GitHub repositories: stars, forks, issues, dependencies. Quick setup, local storage, no deployment — a simple and intuitive dashboard for your pet projects.
July 31, 2025
A plugin for ESLint that helps monitor the style and architecture of Pinia stores. Supports recommended rules, structure checking, and naming.
July 29, 2025
A plugin for ESLint that checks Markdown files against markdownlint rules. Useful when working with documentation, README files, and articles. Supports configuration, custom rules, and autofix.
July 24, 2025
ESLint plugin that checks the compatibility of your code with target browsers. Easy to install, supports polyfills, configurable via browserslist.
July 22, 2025
How to automatically assign size/M and size/XL labels to Merge Requests in GitLab CI based on the number of changes.
July 17, 2025
Abandoning Prettier — why the popular code formatter is losing relevance and how ESLint has become a convenient and flexible alternative.
July 15, 2025
How to create a custom Stylelint plugin: from the basic API to autofix support. Parse CSS tokens using PostCSS without manual value replacement.
July 10, 2025
Why do Vue components in defineProps not work correctly with imported types? How does props compilation work, and why does local type declaration help.
July 08, 2025
Postman and Insomnia have become overloaded and overgrown with paid features. A new alternative is Yaak. A lightweight REST client with a basic set of features.
July 03, 2025
Downloading an APK from RuStore without registration via the official API: how to get information about the app and download the APK from RuStore.
July 01, 2025
How to find merged git branches and check related tasks in the tracker. Simplifies cleaning up the repository after releases and helps you not to lose anything important.
June 27, 2025
How to automatically add icons to links to external resources using CSS — without JavaScript and with security in mind.
June 25, 2025
How to use npkill to find and delete node_modules folders with a single click — freeing up gigabytes of disk space in a couple of minutes.
June 23, 2025
How to implement a typed CustomEvent service in Vue with autocompletion, strict types, and useEventListener support from VueUse.
June 20, 2025
How to set up spell checking in code using cspell — support for Russian and English, dictionaries, masks, and integration into a project.
June 18, 2025
How to find and remove outdated polyfills from node_modules using nolyfill to speed up the installation, build, and launch of a JavaScript project.
June 16, 2025
How to prohibit implicit state mutation in Pinia using TypeScript so that changes are explicit and controllable, improving application stability.
June 13, 2025
The convenient tld-list aggregator collects prices, terms, and WHOIS privacy options for domain zones to help you easily choose the best registrar and rate.
June 11, 2025
Let's figure out whether it's worth using setup store in Pinia: pros, limitations, and why option store remains a reliable choice for most projects.
June 09, 2025
Why you should migrate from CommonJS to ESM, what advantages the new module format offers, and when migration may cause issues.
June 06, 2025
How to add superscript explanations to words using the <ruby> tag. Works for Japanese, Chinese, and any other languages.
June 04, 2025
Improved typing for querySelector and querySelectorAll with typed-query-selector for accurate output of element types based on CSS selectors in TypeScript.
June 02, 2025
The ts-reset utility improves TypeScript's standard typing, making the API stricter and safer without changing existing correct code.
May 28, 2025
A convenient way to automatically update npm dependencies using npm-check-updates: more control, filters, and interactivity for easy project maintenance.