Blog33 articles
In recent years, I've poured a lot of time into writing, mostly on tech but occasionally venturing into other areas. Over 1000 people read my articles every month, and I'm thrilled to share my knowledge with you.
Articles
2025
Elements & Children Props
--- views
Learn how React elements work and how passing children as props can optimize performance by preventing unnecessary re-renders.
SEO Audit with AI: 56 Posts, One Afternoon
--- views
I used Cursor AI to audit SEO across 56 blog posts in one afternoon. Meta descriptions, broken links, and alt text — all fixed systematically.
The early return pattern in JavaScript
--- views
Discover how early return and guard clauses can simplify your JavaScript functions, reduce nesting, and free your mind to focus on the real logic.
Generic Type Parameters in TypeScript
--- views
Learn TypeScript generic type parameter naming conventions. Understand when to use T, K, V and when descriptive names like TKey make your code more readable.
Custom Hooks Pitfalls
--- views
Learn about performance risks in React custom hooks, how they cause unexpected re-renders, and strategies to manage state efficiently.
Ignore files in Git without adding them to .gitignore
--- views
Learn about Git's hidden alternatives to .gitignore for managing file exclusions locally without affecting your team's workflow.
React Re-Renders
--- views
Dive into the mechanics of React re-renders — learn what causes them, how they impact performance, and how to manage them effectively.
GraphQL Certified – How I earned my certification
--- views
My journey to getting Apollo GraphQL certification for free. Learn about the exam structure, preparation tips, and how to earn your credential.
Semantic Versioning in npm
--- views
A friendly, practical guide to SemVer in npm. Learn versioning rules, avoid dependency chaos, and manage updates with confidence.
Why Are JavaScript Naming Conventions Important?
--- views
Master JavaScript naming conventions with this guide. Learn best practices for naming variables, functions, and classes to write cleaner code.
2024
Discriminated Unions in TypeScript
--- views
Discover how discriminated unions in TypeScript help you write cleaner, safer code. Learn what they are, how to use them, and why they're great!
How to Build an Astro.js Image Component on Vercel
--- views
Fix Astro.js image component issues when deploying to Vercel. Learn how to configure Sharp image service correctly and avoid common deployment errors.
My personal Linktree with Astro.js and Vercel
--- views
Learn how to build a fast link tree with Astro.js and Vercel. Set up a custom subdomain and implement analytics for performance insights.
Conventional Commits
--- views
Master Conventional Commits to write clear, structured commit messages. Learn the format, types like feat and fix, and how to automate changelog generation.
How to decrease deployment time by 44% with pnpm
--- views
Migrate from npm to pnpm and cut your deployment time by 44%. Step-by-step guide covering installation, lockfile conversion, and CI/CD configuration.
Unsubscribe from Email Newsletters Immediately
--- views
Stop letting unwanted emails pile up. Learn why unsubscribing from newsletters immediately saves time, reduces distractions, and keeps your inbox focused.
2023
How to add SSH keys to your GitHub account
--- views
Learn how to add SSH keys to your GitHub account. Boost security and ease your workflow by connecting your local machine to GitHub repositories.
Mastering HTML Class Naming: Boosting CSS Efficiency
--- views
Discover the art of crafting clean HTML class names with BEM methodology. Learn to create maintainable, scalable, and SEO-friendly CSS code.
What is Astro Framework?
--- views
Comprehensive guide to the Astro framework. Learn what makes it special, explore its core features, and understand why it's great for static sites.
Node Version Manager
--- views
Learn how to install and use Node Version Manager (NVM) to switch between Node.js versions. Essential for projects with different Node version requirements.
Cross-browser testing
--- views
Learn how to test your website across different browsers and devices using BrowserStack. Ensure cross-browser compatibility without maintaining a device lab.
Postgres connect to database with URL
--- views
Learn how to connect to PostgreSQL using a connection URL string. Simple guide for Node.js, DataGrip, or any client supporting URL-based database connections.
2022
JavaScript 101: Arrays
--- views
Master JavaScript array methods with this beginner-friendly guide. Learn map, filter, reduce, find, and other essential methods with practical examples.
PHPStorm Allow Network Connections on Startup
--- views
Fix the "allow network connections" popup appearing every time PHPStorm starts on macOS. Quick codesign solution to stop repeated permission requests.
Difference between absolute and relative URL in HTML
--- views
Understand when to use absolute vs relative URLs in HTML. Clear examples showing how each type works, their pros and cons, and best practices for web links.
How to create a grid with flexbox in React
--- views
Learn how to build a reusable flexbox-based Grid component in React using BEM methodology and clsx for clean class management.
My "every programmer should know" list - 2025
--- views
Curated list of the best resources, blogs, and websites every developer should know in 2025. Essential reading for staying up-to-date.
Dispatch table in javascript
--- views
Replace messy switch statements with dispatch tables in JavaScript. Learn this clean code pattern for handling multiple conditions with maintainable code.
for...in vs for...of Loops
--- views
Understand the key differences between for...in and for...of loops in JavaScript. Learn when to use each for iterating over arrays, objects, and iterables.
Introducing the new shramko.dev
--- views
A deep dive into building my developer portfolio with Next.js, React, and Tailwind CSS. Learn about the tech stack, design decisions, and features.
How to use ESLint with TypeScript
--- views
Step-by-step guide to configuring ESLint with TypeScript. Set up linting rules, integrate with your IDE, and catch errors before they reach production.
Expressions vs Statements
--- views
Learn the difference between expressions and statements in JavaScript. Understanding this distinction helps you write better code and avoid syntax errors.
How to fix "__dirname is not defined in ES module scope"
--- views
Fix the "__dirname is not defined in ES module scope" error in Node.js. Learn how to recreate __dirname and __filename using import.meta.url in ES modules.