Blog33 articles
In recent years, I've poured a lot of time into writing, mostly on tech but occasionally venturing into other areas. Over 2000 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
Learn the early return pattern (guard clauses) in JavaScript and TypeScript. Reduce nesting, improve readability, and write cleaner functions with real-world examples.
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 Fix MissingSharp Error in Astro.js on Vercel
--- views
Fix the [MissingSharp] Could not find Sharp error when deploying Astro.js to Vercel. Step-by-step Sharp image service setup and configuration guide.
Build Your Own Link Tree with Astro.js and Vercel
--- views
Build a custom link tree with Astro.js and deploy it on Vercel. Step-by-step tutorial with TypeScript, analytics setup, and performance optimization tips.
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? The Complete Framework Guide for 2026
--- views
Master the Astro framework with this hands-on guide. Islands Architecture, Content Collections, View Transitions, and client directives with code examples.
Node Version Manager
--- views
Learn how to install and use Node Version Manager (NVM) to switch between Node.js versions effortlessly. Manage multiple Node versions for different projects.
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.
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. Recreate __dirname and __filename using import.meta.url.