<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Serhii Kolodych</title>
    <description>The latest articles on Forem by Serhii Kolodych (@serhii_kolodych).</description>
    <link>https://forem.com/serhii_kolodych</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2004642%2Fcd75077a-9102-4614-b627-459fcd9c1df4.jpg</url>
      <title>Forem: Serhii Kolodych</title>
      <link>https://forem.com/serhii_kolodych</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/serhii_kolodych"/>
    <language>en</language>
    <item>
      <title>Nginx Configuration Guide: From Zero to Production Ready 🚀</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Sat, 31 Jan 2026 11:07:22 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/nginx-configuration-guide-from-zero-to-production-ready-ajp</link>
      <guid>https://forem.com/serhii_kolodych/nginx-configuration-guide-from-zero-to-production-ready-ajp</guid>
      <description>&lt;p&gt;Just updated a comprehensive guide on nginx performance optimization and best practices! Here's what you'll learn:&lt;/p&gt;

&lt;h2&gt;
  
  
  🗂️ Complete Roadmap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Infrastructure (&lt;a href="https://kolodych.com/articles/nginx#vps-server" rel="noopener noreferrer"&gt;Step 1&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;nginx sizing guide: minimum requirements, VPS selection criteria, budget hosting recommendations&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Setup (&lt;a href="https://kolodych.com/articles/nginx#nginx-configuration" rel="noopener noreferrer"&gt;Step 2&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;nginx installation, nginx.conf optimization (worker_connections, SSL protocols, gzip, logging)&lt;/p&gt;

&lt;h3&gt;
  
  
  Virtual Hosts (&lt;a href="https://kolodych.com/articles/nginx#nginx-domain" rel="noopener noreferrer"&gt;Step 3&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;nginx domain configuration: server blocks, SSL/TLS setup, HTTP/2, redirects (www, IPv4/IPv6)&lt;/p&gt;

&lt;h3&gt;
  
  
  Upload Handling (&lt;a href="https://kolodych.com/articles/nginx#file-upload" rel="noopener noreferrer"&gt;Step 3*&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;client_max_body_size configuration for file uploads&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance Layer (&lt;a href="https://kolodych.com/articles/nginx#htaccess-file" rel="noopener noreferrer"&gt;Step 4&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;.htaccess: compression, cache control, security headers, HSTS&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO Layer (&lt;a href="https://kolodych.com/articles/nginx#robots-txt" rel="noopener noreferrer"&gt;Steps 5-6&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://kolodych.com/articles/nginx#robots-txt" rel="noopener noreferrer"&gt;robots.txt&lt;/a&gt; and &lt;a href="https://kolodych.com/articles/nginx#sitemap-xml" rel="noopener noreferrer"&gt;sitemap.xml&lt;/a&gt; configuration&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Performance Metrics
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;nginx market share data (18.98%)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kolodych.com/articles/nginx#faq" rel="noopener noreferrer"&gt;FAQ section&lt;/a&gt; answering common nginx questions&lt;/li&gt;
&lt;li&gt;nginx best practices for security&lt;/li&gt;
&lt;li&gt;nginx performance optimization strategies&lt;/li&gt;
&lt;li&gt;Copy-paste ready configuration files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://kolodych.com/articles/nginx" rel="noopener noreferrer"&gt;Read the technical guide →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Includes FAQ and real nginx config examples! 💻&lt;/p&gt;

</description>
      <category>nginx</category>
      <category>webserver</category>
      <category>devops</category>
      <category>performance</category>
    </item>
    <item>
      <title>Finally. Common sense. Commits are noise, not signal. Real work often leaves no public trace.</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Fri, 16 Jan 2026 08:45:17 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/finally-common-sense-commits-are-noise-not-signal-real-work-often-leaves-no-public-trace-3abb</link>
      <guid>https://forem.com/serhii_kolodych/finally-common-sense-commits-are-noise-not-signal-real-work-often-leaves-no-public-trace-3abb</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/sylwia-lask" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3535771%2Fe22860d5-274b-43c9-819b-56b162e5bd5a.jpeg" alt="sylwia-lask"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/sylwia-lask/your-github-contribution-graph-means-absolutely-nothing-and-heres-why-2kjc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Your GitHub Contribution Graph Means Absolutely Nothing - And Here’s Why&lt;/h2&gt;
      &lt;h3&gt;Sylwia Laskowska ・ Jan 13&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>github</category>
      <category>discuss</category>
      <category>programming</category>
    </item>
    <item>
      <title>This kind of content is what WordPress documentation lacks.</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Tue, 16 Dec 2025 13:47:54 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/this-kind-of-content-is-what-wordpress-documentation-lacks-394f</link>
      <guid>https://forem.com/serhii_kolodych/this-kind-of-content-is-what-wordpress-documentation-lacks-394f</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/anemnavinrao/common-wordpress-errors-and-how-to-fix-them-like-a-pro-318l" class="crayons-story__hidden-navigation-link"&gt;WordPress Common Errors (And How to Fix Them Like a Pro) ⚠️&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/anemnavinrao" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F166192%2Fe551b0ec-2d37-43db-8691-cf5689d63f99.jpg" alt="anemnavinrao profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/anemnavinrao" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Navin Rao ✍️
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Navin Rao ✍️
                
              
              &lt;div id="story-author-preview-content-3012984" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/anemnavinrao" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F166192%2Fe551b0ec-2d37-43db-8691-cf5689d63f99.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Navin Rao ✍️&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/anemnavinrao/common-wordpress-errors-and-how-to-fix-them-like-a-pro-318l" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 11 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/anemnavinrao/common-wordpress-errors-and-how-to-fix-them-like-a-pro-318l" id="article-link-3012984"&gt;
          WordPress Common Errors (And How to Fix Them Like a Pro) ⚠️
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/help"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;help&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/wordpress"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;wordpress&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/troubleshooting"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;troubleshooting&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/anemnavinrao/common-wordpress-errors-and-how-to-fix-them-like-a-pro-318l" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;7&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/anemnavinrao/common-wordpress-errors-and-how-to-fix-them-like-a-pro-318l#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              3&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>wordpress</category>
      <category>help</category>
      <category>troubleshooting</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Looking forward to participating and seeing useful projects of others</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Tue, 16 Dec 2025 13:46:54 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/looking-forward-to-participating-and-seeing-useful-projects-of-others-5hnh</link>
      <guid>https://forem.com/serhii_kolodych/looking-forward-to-participating-and-seeing-useful-projects-of-others-5hnh</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/devteam/devs-worldwide-show-and-tell-challenge-presented-by-mux-pitch-your-projects-3000-in-prizes-40g7" class="crayons-story__hidden-navigation-link"&gt;DEV's Worldwide Show and Tell Challenge Presented by Mux: Pitch Your Projects! $3,000 in Prizes. 🎥&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/devteam"&gt;
            &lt;img alt="The DEV Team logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg" class="crayons-logo__image"&gt;
          &lt;/a&gt;

          &lt;a href="/jess" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2Fb75f6edf-df7b-406e-a56b-43facafb352c.jpg" alt="jess profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/jess" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Jess Lee
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Jess Lee
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png"&gt;&lt;/a&gt;
              
              &lt;div id="story-author-preview-content-3079574" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/jess" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2Fb75f6edf-df7b-406e-a56b-43facafb352c.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Jess Lee&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/devteam" class="crayons-story__secondary fw-medium"&gt;The DEV Team&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/devteam/devs-worldwide-show-and-tell-challenge-presented-by-mux-pitch-your-projects-3000-in-prizes-40g7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 3 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/devteam/devs-worldwide-show-and-tell-challenge-presented-by-mux-pitch-your-projects-3000-in-prizes-40g7" id="article-link-3079574"&gt;
          DEV's Worldwide Show and Tell Challenge Presented by Mux: Pitch Your Projects! $3,000 in Prizes. 🎥
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/muxchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;muxchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/devteam/devs-worldwide-show-and-tell-challenge-presented-by-mux-pitch-your-projects-3000-in-prizes-40g7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;213&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/devteam/devs-worldwide-show-and-tell-challenge-presented-by-mux-pitch-your-projects-3000-in-prizes-40g7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              61&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>showdev</category>
      <category>devchallenge</category>
      <category>muxchallenge</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Your WordPress Site Will Fail. Be Ready.</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Tue, 16 Dec 2025 12:50:20 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/your-wordpress-site-will-fail-be-ready-4874</link>
      <guid>https://forem.com/serhii_kolodych/your-wordpress-site-will-fail-be-ready-4874</guid>
      <description>&lt;p&gt;&lt;em&gt;After losing two weeks of work to a crash, I spent years perfecting my backup strategy. Here's everything I learned managing 10+ client sites.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I'm Writing This
&lt;/h2&gt;

&lt;p&gt;Three years ago, I lost two weeks of work because I trusted backups I never tested. The panic, the scrambling, the realization that my "backup solution" was just an empty promise — I wouldn't wish that on anyone.&lt;/p&gt;

&lt;p&gt;Since then, I've done 20+ website restorations, tested every major backup plugin, and built a system that works so well I actually sleep at night. I &lt;a href="https://kolodych.com/articles/wordpress-backup-guide.html" rel="noopener noreferrer"&gt;documented the complete process on my site&lt;/a&gt;, but wanted to share it here with the Dev.to community too.&lt;/p&gt;

&lt;p&gt;Because if there's one thing I've learned: &lt;strong&gt;hope is not a backup strategy.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Website Crashes Are Normal
&lt;/h2&gt;

&lt;p&gt;Updates fail. Plugins conflict. Servers go down. Themes break layouts. Hackers exploit weak spots.&lt;/p&gt;

&lt;p&gt;You do not control when this happens. You control how fast you recover.&lt;/p&gt;

&lt;p&gt;Most site owners panic. They search logs. They contact hosting. They wait. Hours pass. Sometimes days. Without backups, recovery becomes guesswork.&lt;/p&gt;

&lt;p&gt;A backup removes fear. It turns a crash into a routine task. Restore. Check. Move on.&lt;/p&gt;




&lt;h2&gt;
  
  
  The WordPress Backup Plugin Solution
&lt;/h2&gt;

&lt;p&gt;While there are many backup plugins available, not all are created equal. Some are lightweight and reliable, while others can slow down your site or cause conflicts.&lt;/p&gt;

&lt;p&gt;I've tried them all: UpdraftPlus, Backuply, Jetpack, BackWPup, WPvivid, Duplicator, All-in-One WP Migration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After 20+ website restorations, &lt;a href="https://wordpress.org/plugins/wpvivid-backuprestore/" rel="noopener noreferrer"&gt;WPvivid&lt;/a&gt; is my choice.&lt;/strong&gt; It strikes the perfect balance between comprehensive protection and ease of use, without the complexity that makes you need a computer science degree to configure it properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  What WPvivid Can Do For You
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Full website backups&lt;/li&gt;
&lt;li&gt;✅ Database-only backups&lt;/li&gt;
&lt;li&gt;✅ Files-only backups&lt;/li&gt;
&lt;li&gt;✅ Manual backups on demand&lt;/li&gt;
&lt;li&gt;✅ Automatic scheduled backups&lt;/li&gt;
&lt;li&gt;✅ One-click restore&lt;/li&gt;
&lt;li&gt;✅ Website migration&lt;/li&gt;
&lt;li&gt;✅ Staging site creation&lt;/li&gt;
&lt;li&gt;✅ Remote storage support (Google Drive, Dropbox, Microsoft OneDrive, Amazon S3, FTP, SFTP)&lt;/li&gt;
&lt;li&gt;✅ Backup splitting for large sites&lt;/li&gt;
&lt;li&gt;✅ Incremental backups in Pro version&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Your First Backup with WPvivid
&lt;/h2&gt;

&lt;p&gt;Here's the critical part most tutorials skip: &lt;strong&gt;you need to verify that it works correctly for YOUR specific setup.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every website is unique — different themes, plugins, hosting environments and configurations. Backups mean nothing if restore fails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never trust blindly — test once, then relax.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Create Your First Backup
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Install and activate WPvivid plugin&lt;/li&gt;
&lt;li&gt;Open WPvivid Backup in WordPress, tab "Backup &amp;amp; Restore"
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52lro2ihnr8y68f52jhy.webp" alt="WPvivid Backup Plugin Backup Now button and settings" width="800" height="229"&gt;
&lt;/li&gt;
&lt;li&gt;Choose "Database + Files"&lt;/li&gt;
&lt;li&gt;Choose "Save to Local"&lt;/li&gt;
&lt;li&gt;Click "Backup Now"&lt;/li&gt;
&lt;li&gt;Wait for the backup to complete&lt;/li&gt;
&lt;li&gt;Reload the page, click "Scan uploaded backup or received backup", then click "Download"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Congratulations! You have your first backup. But we're not done yet.&lt;/p&gt;




&lt;h2&gt;
  
  
  Testing the Restore Process (THE MOST IMPORTANT PART)
&lt;/h2&gt;

&lt;p&gt;This is where most people stop. Don't be most people.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Test on a Blank WordPress Site
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a blank test WordPress site (use a subdomain or local environment)&lt;/li&gt;
&lt;li&gt;Install and activate WPvivid plugin on the test site&lt;/li&gt;
&lt;li&gt;In the test site, open WPvivid, tab "Backup &amp;amp; Restore"&lt;/li&gt;
&lt;li&gt;Scroll down to find the "Upload" section&lt;/li&gt;
&lt;li&gt;Click 'Upload' and select the backup file from your local machine&lt;/li&gt;
&lt;li&gt;Wait for "The upload has completed" message - click "OK"
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6shr99l03tk152gid09s.webp" alt="WPvivid Restore backup process" width="800" height="146"&gt;
&lt;/li&gt;
&lt;li&gt;Click the "Backups" button (located next to the 'Upload' button)&lt;/li&gt;
&lt;li&gt;You should see the uploaded backup - click "Restore" and then "Restore" again&lt;/li&gt;
&lt;li&gt;Click "OK"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Don't close or switch to other tabs during the restore process.&lt;/p&gt;

&lt;p&gt;When finished you'll get the message "Restore completed successfully" - click "OK".&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Verify Everything Works
&lt;/h3&gt;

&lt;p&gt;Reload the page. Go to different pages and sections of your website. Confirm everything is working as expected.&lt;/p&gt;

&lt;p&gt;This entire test process takes 5-60 minutes (depending on the size of your site) and is &lt;strong&gt;worth every second.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Testing Matters (My Hard-Learned Lessons)
&lt;/h2&gt;

&lt;p&gt;I test my backups every couple of months. Here are issues I've caught BEFORE they became disasters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ File corrupted during transfer&lt;/li&gt;
&lt;li&gt;❌ PHP timeout during restore&lt;/li&gt;
&lt;li&gt;❌ Incompatible plugin files&lt;/li&gt;
&lt;li&gt;❌ Invalid backup file format&lt;/li&gt;
&lt;li&gt;...and so much more that can go wrong&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's why for every website I have or make, I create a test website to verify the backup works. This practice gives me peace of mind and ensures my clients' websites are always protected and recoverable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setting Up Remote Storage (CRITICAL)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5hebjhp8inxkgtbh50p.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5hebjhp8inxkgtbh50p.webp" alt="Meme: " width="800" height="684"&gt;&lt;/a&gt;&lt;br&gt;
I hope you now understand the importance of having your backups NOT in the same place as your website.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure Remote Storage:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqarn78pn12r908w2seg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqarn78pn12r908w2seg.webp" alt="WPvivid Remote Storage setup" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to tab "Remote Storage"&lt;/li&gt;
&lt;li&gt;Click on the cloud service you prefer (Google Drive, Dropbox, etc.)&lt;/li&gt;
&lt;li&gt;Click "Authenticate" (log in to your account)&lt;/li&gt;
&lt;li&gt;Give it a descriptive name so you'll know where to find your backups later&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Automating Your Backups
&lt;/h2&gt;

&lt;p&gt;Now let's set it and forget it:&lt;/p&gt;

&lt;h3&gt;
  
  
  Schedule Settings:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9pfm0btjidsbdwo0fhg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9pfm0btjidsbdwo0fhg.webp" alt="WPvivid Backup Plugin - Settings - Schedule backups" width="800" height="753"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to tab "Schedule"&lt;/li&gt;
&lt;li&gt;Tick "Enable backup schedule"&lt;/li&gt;
&lt;li&gt;Choose frequency (daily or weekly - I recommend daily for active sites)&lt;/li&gt;
&lt;li&gt;Choose "Database + Files"&lt;/li&gt;
&lt;li&gt;Select "Send backups to remote storage" (your authenticated service will show as active)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Most importantly: Click "Save"&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  General Settings:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgsypahuhqhqhyy7z7nu.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgsypahuhqhqhyy7z7nu.webp" alt="WPvivid Backup plugin - set maximum backups retained and merge all files into one" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to tab "Settings" → "General settings"&lt;/li&gt;
&lt;li&gt;Set maximum backups retained = 7 (keeps one week of daily backups)&lt;/li&gt;
&lt;li&gt;Tick "Merge all the backup files into single package"&lt;/li&gt;
&lt;li&gt;Click "Save"&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How often should I backup my WordPress site?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Most websites:&lt;/strong&gt; Daily backups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;E-commerce sites:&lt;/strong&gt; Multiple times per day&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blogs with infrequent updates:&lt;/strong&gt; Weekly backups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The key:&lt;/strong&gt; Always backup before any major changes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why should I test my WordPress backups?
&lt;/h3&gt;

&lt;p&gt;Testing backups ensures they actually work when disaster strikes. Many website owners discover their backups are corrupted or incomplete only after they need them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is WPvivid free?
&lt;/h3&gt;

&lt;p&gt;Yes! WPvivid has a robust free version that includes full site backups, scheduling, cloud storage integration, and one-click restore. The premium version adds incremental backups, staging sites, and advanced features for $79/year.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Results: Peace of Mind
&lt;/h2&gt;

&lt;p&gt;Since implementing this system, I've had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servers crash&lt;/li&gt;
&lt;li&gt;Hard drives fail&lt;/li&gt;
&lt;li&gt;Hosting accounts suspended due to billing errors&lt;/li&gt;
&lt;li&gt;Security breaches that required immediate rollback&lt;/li&gt;
&lt;li&gt;Plugin updates that broke entire sites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Every single time:&lt;/strong&gt; Restored from backup and was back online within 20 minutes.&lt;/p&gt;

&lt;p&gt;My clients never knew there was a problem. My visitors never saw downtime. I never lost sleep or spent hours on emergency support calls.&lt;/p&gt;




&lt;h2&gt;
  
  
  One Final Rule
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you remember nothing else from this article, remember this:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every update — every single one — should happen on a test environment first. Not sometimes. Not for "small" updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every. Single. Time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I learned this the hard way. You don't have to.&lt;/p&gt;




&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;p&gt;If you want even more details, screenshots, and specific settings, I've documented everything on my site: &lt;a href="https://kolodych.com/articles/wordpress-backup-guide.html" rel="noopener noreferrer"&gt;Complete WordPress Backup Guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also check out my other web development guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kolodych.com/articles/nginx.html" rel="noopener noreferrer"&gt;Nginx: What is It and Why Should You Care?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kolodych.com/website/web-dev-tools.html" rel="noopener noreferrer"&gt;My Go-To Web Arsenal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nuukmedia.com/2024/08/mastering-google-search-console-a-complete-guide-for-beginners/?kolodych.com" rel="noopener noreferrer"&gt;Beginner's Guide to Google Search Console&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;What's your backup horror story?&lt;/strong&gt; Drop it in the comments. Let's learn from each other's mistakes.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://kolodych.com/articles/wordpress-backup-guide.html" rel="noopener noreferrer"&gt;kolodych.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>backup</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Scraping Data with Telegram Bots: My Amazon Project</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Thu, 10 Oct 2024 15:33:56 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/scraping-data-with-telegram-bots-my-amazon-project-340k</link>
      <guid>https://forem.com/serhii_kolodych/scraping-data-with-telegram-bots-my-amazon-project-340k</guid>
      <description>&lt;p&gt;If you’ve ever wanted to create a Telegram bot, my guide walks you through the entire process step-by-step. From using BotFather to set up the bot to coding it using popular frameworks, I’ve got you covered. I even include a video tutorial to help you get started. Interested? Read more in my article &lt;a href="https://kolodych.com/articles/telegram.html" rel="noopener noreferrer"&gt;here.&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🛠️ Website Development Tools I use every day 💻</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Wed, 25 Sep 2024 22:39:31 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/website-development-tools-i-use-every-day-4g2i</link>
      <guid>https://forem.com/serhii_kolodych/website-development-tools-i-use-every-day-4g2i</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Image Optimization with &lt;a href="https://imageresizer.com" rel="noopener noreferrer"&gt;Image Resizer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Broken Link Management with &lt;a href="https://www.deadlinkchecker.com" rel="noopener noreferrer"&gt;Dead Link Checker&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Overview of &lt;a href="https://pagespeed.web.dev" rel="noopener noreferrer"&gt;Google PageSpeed Insights&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SEO Check Overview with &lt;a href="https://www.seobility.net/en/seocheck/" rel="noopener noreferrer"&gt;Seobility&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Optimize Your Social Sharing with &lt;a href="https://opengraph.dev" rel="noopener noreferrer"&gt;Open Graph tags&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Full article 📄 &lt;a href="https://kolodych.com/website/web-dev-tools.html" rel="noopener noreferrer"&gt;Read Here!&lt;/a&gt; 📈&lt;/p&gt;

</description>
      <category>website</category>
      <category>seo</category>
      <category>webperf</category>
    </item>
    <item>
      <title>Hello dev.to! 🚀 My Journey as a Web Developer</title>
      <dc:creator>Serhii Kolodych</dc:creator>
      <pubDate>Fri, 30 Aug 2024 18:00:48 +0000</pubDate>
      <link>https://forem.com/serhii_kolodych/hello-devto-my-journey-as-a-web-developer-2lk9</link>
      <guid>https://forem.com/serhii_kolodych/hello-devto-my-journey-as-a-web-developer-2lk9</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;I'm thrilled to share my very first post on dev.to! My name is Serhii Kolodych, and I'm a passionate developer with a focus on WordPress development, Python automation, and building Telegram bots. I've been fortunate to work on a range of exciting projects, from creating custom websites to automating tasks that save time and effort.&lt;/p&gt;

&lt;p&gt;If you're interested in exploring more about what I do, feel free to check out my website &lt;a href="https://kolodych.com/" rel="noopener noreferrer"&gt;kolodych.com&lt;/a&gt;. There, I showcase my latest projects and offer insights into the world of web development, automation, and beyond.&lt;/p&gt;

&lt;p&gt;I look forward to connecting with this amazing community, sharing knowledge, and learning from all of you. Let's code something awesome together!&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Serhii Kolodych&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>website</category>
      <category>python</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
