<?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: Ingo Steinke, web developer</title>
    <description>The latest articles on Forem by Ingo Steinke, web developer (@ingosteinke).</description>
    <link>https://forem.com/ingosteinke</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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg</url>
      <title>Forem: Ingo Steinke, web developer</title>
      <link>https://forem.com/ingosteinke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ingosteinke"/>
    <language>en</language>
    <item>
      <title>Balancing CMS, Custom Code and Business Logic</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Fri, 03 Apr 2026 13:37:18 +0000</pubDate>
      <link>https://forem.com/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8</link>
      <guid>https://forem.com/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8</guid>
      <description>&lt;p&gt;Software-as-a-service reminds me of fast fashion or flat-pack furniture. Simple solutions often don't live up to their promise. Call it AI, no-code, or building blocks, but a bespoke website or online shop is always more than a one-click installation. The reason is simple. It's called owning your business.&lt;/p&gt;

&lt;p&gt;Even when we, as developers, design a dashboard that feels like a cool DJ device, you'll still have to choose the music, to stick with this comparison.&lt;/p&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%2Fb7oeh7nzh6twa9t5zz0y.png" 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%2Fb7oeh7nzh6twa9t5zz0y.png" alt="AI image of an imaginary Shopware control center inspired by a musical device" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Action speaks louder than words
&lt;/h2&gt;

&lt;p&gt;Action speaks louder than words. Apart from my portfolio website as a professional web developer, I released open-source software, including plugins for Shopware, npm and code editors. My blog, &lt;a href="https://www.open-mind-culture.org/" rel="noopener noreferrer"&gt;Open-Mind-Culture.org&lt;/a&gt;, started as a technical demonstration and testing environment for WordPress development. Likewise, the &lt;a href="https://shop.open-mind-culture.org/" rel="noopener noreferrer"&gt;Open Mind Culture fan shop&lt;/a&gt; runs my own Shopware theme and extensions. So I know e-commerce from a real shop owner's perspective and have up-to-date first-hand experience about hosting, payment and fulfilment beyond theme and web development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Balancing specialized skills and broad knowledge
&lt;/h2&gt;

&lt;p&gt;I don't do all of this alone. Well, there's a lot that I can and will do alone. I'm part of a network of professional partners, working together with designers, developers, data scientists, admins, copywriters, and financial, legal and marketing experts. &lt;/p&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%2Fdq493sk7s5t16lqlzdtl.png" 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%2Fdq493sk7s5t16lqlzdtl.png" alt="Open Mind Culture blog screenshot" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Small side project demos like my Open Mind Culture blog and fan shop featured in developer discussions are far from scalable big business projects, but that's where I have 100% control as a developer.&lt;/p&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%2F3waac2r2drphsftfgbn3.png" 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%2F3waac2r2drphsftfgbn3.png" alt="Projects screenshots: native web themes, design system, React web app" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I did work on corporate projects. As a freelance lead developer, I oversaw and coded a new career portal for an international construction company. I developed a highly configurable native WordPress theme reusable by thousands of sites in a Kubernetes cluster. I worked with Shopware, Intershop, Xsite and WooCommerce, for fashion retailers, online pharmacies, and ethical startups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding business values as a developer
&lt;/h2&gt;

&lt;p&gt;Finding the right balance between content, custom code and business logic also implies finding the right experts to work with, a responsible contact person, but without avoidable overengineering and overhead that large corporate agencies often offer. If you know what you need, hiring a freelancer directly can be quick and cost-effective. An experienced senior will know and tell you if they can do it or if your requirements are too big or small for them.&lt;/p&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%2Fn7xcn8r7jiquvrl6bqt3.png" 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%2Fn7xcn8r7jiquvrl6bqt3.png" alt="Laptop with website storefront and source code next to fresh fruit sold in the online shop" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First-hand experience: eating the fruit sold in my client's online shop that I was working on. 🍋🍊&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing CMS and E-Commerce Systems
&lt;/h2&gt;

&lt;p&gt;When it comes to choosing content management and e-commerce systems, I obviously prefer what I already know as a developer, but that still includes several alternatives. You probably heard about WordPress, WooCommerce, and Shopify. Maybe you also heard about Astro, Gatsby, or Hugo. And what about Typo3, Drupal, Magento and Shopware? Can you still follow me?&lt;/p&gt;

&lt;p&gt;Technical details aside, crucial aspects for choosing a software include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;features (does it do what I need?)&lt;/li&gt;
&lt;li&gt;support (will this still work in five years?)&lt;/li&gt;
&lt;li&gt;maintenance (is it easy to change?)&lt;/li&gt;
&lt;li&gt;cost (inital and running costs)&lt;/li&gt;
&lt;li&gt;integration (does this fit my workflow?)&lt;/li&gt;
&lt;li&gt;performance (see above)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Software as a service
&lt;/h3&gt;

&lt;p&gt;Software as a service sounds promisingly easy: register, pay, import your data, customize, and wait for the customers to come. Still enough work, but focused on your key skills as a merchant.&lt;/p&gt;

&lt;h3&gt;
  
  
  Self-hosted but managed
&lt;/h3&gt;

&lt;p&gt;A "self-hosting" solution does not necessarily mean that you need to learn technical skills and install software updates. But it usually means more control, often for a lower total cost of ownership. Instead of pricing plans that often grow enormously as soon as it becomes hard to switch to an alternative provider, a self-hosted server and a long-term maintenance agreement with a professional web developer can reduce the total cost of ownership in the long term, despite additional costs for the initial setup that you pay only once.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software choice as a case for control and ownership
&lt;/h3&gt;

&lt;p&gt;I chose Shopware and WordPress for my Open Mind Culture demo for several reasons. Both are provided on a freemium basis, which means that there is a free open-source software core maintained by a non-profit community, but driven by a commercial company and their official partners, offering optional paid add-ons and services.&lt;/p&gt;

&lt;p&gt;Shopware and WordPress can be customized and extended, and, thanks to decades of technical progress, the latest software versions are valid choices for business-level use cases. WordPress also has WooCommerce as an integrated e-commerce extension, and Shopware has content management (CMS) options, but I'd rather let each software do what it's best at.&lt;/p&gt;

&lt;h2&gt;
  
  
  Balancing customization and standardization
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Configuration vs custom code
&lt;/h3&gt;

&lt;p&gt;Hard-coded content and design limits and guides editors, preventing accidentally changing settings or violating design decisions. Settings can look overwhelming to non-technical users. Consider this example.&lt;/p&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%2Ftbtnv4i3uxx12i2qr18s.png" 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%2Ftbtnv4i3uxx12i2qr18s.png" alt="Shopware settings screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to empower editors and site owners to update content and adjust simple settings that they don't need an expert for. Here is a CMS dashboard balancing visual preview with useful restrictions. &lt;/p&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%2F26wpzbqelyn7v683cmez.png" 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%2F26wpzbqelyn7v683cmez.png" alt="Customized CMS collage" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fixing settings and output with custom code can prevent undesirable changes caused by updates or unwise content editing. Restricting customization too rigidly limits content creation control and might make merchants miss out on future features from upcoming updates.&lt;/p&gt;

&lt;p&gt;Thus, there is a trade-off, and maintenance is inevitable in the long run. Maintenance means accepting the need to change anything at all in the future, and to plan ahead for regular checks and possible improvements. Like bringing a car to an inspection or have your body checked by a doctor, prevention is better than cure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code customization challenges and strategies
&lt;/h3&gt;

&lt;p&gt;Often, there are different possible ways to implement a technical customization. Simpler, quicker coding might come with trade-offs in speed, cost or maintenance in the long run, while striving for perfect coding can also become perfectionist overoptimization that doesn't pay off either. AI-assisted and agentic vibe coding doesn't even consider the choice and just use any solution that works. &lt;/p&gt;

&lt;h2&gt;
  
  
  Technical debt prevention
&lt;/h2&gt;

&lt;p&gt;Regular check points are chances to question prior architecture decisions and business strategies and check if the goals are still correct and we are moving in the right direction.&lt;/p&gt;

&lt;p&gt;Technical debt does not only stem from unfinished work or over-customization, but since 2026, so-called vibe coding promised to produce more code more quickly thanks to AI. What sounds promising and might work at first glance, might not perform so well in the long run.&lt;/p&gt;

&lt;p&gt;That's what audits and metrics are for. Even without consequently adopting test-driven-development, we can measure accessibility, code quality, and web performance at least to a certain extent. Tools like linters, Lighthouse, PageSpeed Insights and various SEO services can pinpoint weak spots that need optimization. We can even use AI to check AI recommendations. Just don't trust anything blindly. If something sounds too good to be true, then it probably is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aspects and meanings of web performance
&lt;/h3&gt;

&lt;p&gt;As a senior web developer working at the intersection of business, UX/web design, and technology, my partners and I often hear questions about&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;business logic&lt;/li&gt;
&lt;li&gt;customer retention&lt;/li&gt;
&lt;li&gt;design decisions&lt;/li&gt;
&lt;li&gt;domain concepts&lt;/li&gt;
&lt;li&gt;marketing&lt;/li&gt;
&lt;li&gt;multi-language domain decision&lt;/li&gt;
&lt;li&gt;payment problems&lt;/li&gt;
&lt;li&gt;security issues&lt;/li&gt;
&lt;li&gt;search engine optimization&lt;/li&gt;
&lt;li&gt;web performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Web performance" is one of those terms one of the terms whose official definition competes with more obvious ideas. While web performance technically means making loading times faster and ensure usability, there are synergies with load time optimization and web performance optimization in an economic sense as in making more potential customers buy your products or services.&lt;/p&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%2Fvzsabthpd8806iezl5hi.png" 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%2Fvzsabthpd8806iezl5hi.png" alt="Image showing people shopping in a city" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or in other words: smart developer, happy shopper, happy revenue&lt;/p&gt;

&lt;p&gt;Further reading: &lt;a href="https://dev.to/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln"&gt;Legacy Code Maintenance: Keeping your Website Up To Date&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln" class="crayons-story__hidden-navigation-link"&gt;Legacy Code Maintenance: Let me keep your website up to date&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" width="166" height="102"&gt;&lt;/a&gt;
              
              &lt;div id="story-author-preview-content-3284621" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 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/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln" id="article-link-3284621"&gt;
          Legacy Code Maintenance: Let me keep your website up to date
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&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/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln" 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/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&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/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&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;
            3 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>shopware</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>An Unfiltered Slop Era?!</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Thu, 19 Mar 2026 08:53:29 +0000</pubDate>
      <link>https://forem.com/ingosteinke/unfiltered-slop-era-7a7</link>
      <guid>https://forem.com/ingosteinke/unfiltered-slop-era-7a7</guid>
      <description>&lt;p&gt;Recently, many meta discussions mock and condemn content trends on DEV and everywhere else. I already regret recently writing about &lt;a href="https://dev.to/ingosteinke/online-community-demise-and-why-dev-is-different-16km"&gt;online community demise and why DEV is different (at least a little bit, I hope)&lt;/a&gt;, as the little bit seems to get smaller.&lt;/p&gt;

&lt;p&gt;DEV's setting to hide tags, isn't working well anymore, if it ever did. Or it does, but only as a negative following priority. When there is too much spam, slop and fad shitposting, there's not much left to prioritize against.&lt;/p&gt;

&lt;p&gt;My recommendations, sidebar, trends, discussions, and, not much of a surprise, the latest recent posts feed is full of crap, although I have already put #codingwithai, #claudecode, #cryptocurrency and #ai and several other hype hashtags on my hiding list.&lt;/p&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%2Fpmlmljjh27e31lr63z9s.png" 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%2Fpmlmljjh27e31lr63z9s.png" alt="Hidden tags list screenshot" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how DEV typically presents itself to me recently when I open the front page: AI and trope titles.&lt;/p&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%2Fnqlpe8ics5ahhd1ilpob.png" 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%2Fnqlpe8ics5ahhd1ilpob.png" alt="DEV front page screenshot" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The trends have changed. No more listicles, no more emoji overload, instead, five out of ten posts contain an em dash character, that long hyphen, hard to find on international developer keyboards, popular with American scholars—and with AI chatbots.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Here is what I learned"
&lt;/h2&gt;

&lt;p&gt;Other telltale signs that smell of sloppy writing assistance: "here is what I learned". Intended to signal authenticity, they have become red flags for the opposite, at least in most cases. The current year, 2026 right now, is one of the few evergreen attempts that might be legitimate, but adds negative points to my gut feeling heuristics. Similarly, I couldn't care less about the best dentists in Jaipur or posts in a language that I can't even read.&lt;/p&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%2F64kj7vov63p05y4cc2o9.png" 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%2F64kj7vov63p05y4cc2o9.png" alt="Latest posts feed with spammy, Chinese and unreadable titles" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maybe DEV and their productive AI community can vibe-code a spam filter that actually works? I will check back in a few weeks and see if things improved.&lt;/p&gt;

&lt;p&gt;What I learned in the past years, writing and ranting on DEV, devrant, blogs and forums about work culture and society is that a single voice rarely changes anything, unless amplified or already popular. I'm far from being an influencer, despite being recommended every now and then.&lt;/p&gt;

&lt;p&gt;I'm really getting bored about AI art and vibe coding discussions and how we're getting or not getting replaced by AI as developers. Maybe I should have chosen a different career path and become a    physical therapist. I might have contributed more value to society and spared myself our industry's self-absorbed intellectual overhead that usually leads nowhere, or at least nowhere good. I will not digress into political topics here, although it's hard not to when, apart from some medical advancements, technological progress has failed to solve any of humanity's most important problems so far.   &lt;/p&gt;

&lt;h2&gt;
  
  
  Write-only
&lt;/h2&gt;

&lt;p&gt;I might just treat DEV like LinkedIn and medium, as a write-only platform to dump my marketing content. I really hope that's not where DEV is going.&lt;/p&gt;

&lt;p&gt;I will keep sharing some of my thoughts and practical takeaways anyway. But reading and scrolling social media is no fun anymore.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>neither naive nor nostalgic</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Mon, 16 Mar 2026 09:43:35 +0000</pubDate>
      <link>https://forem.com/ingosteinke/neither-naive-nor-nostalgic-1mmp</link>
      <guid>https://forem.com/ingosteinke/neither-naive-nor-nostalgic-1mmp</guid>
      <description>&lt;p&gt;Do we have to choose between becoming nostalgic or going all in embracing new technology? Some &lt;a href="https://dev.to/the_nortern_dev/i-think-a-lot-of-developers-are-quietly-grieving-the-old-internet-3d8"&gt;think a lot of developers are quietly grieving the old internet&lt;/a&gt;. I doubt that. Why "quietly" by the way? Some of those who do are quite vocal and they should be. I'm a known critic of what's going on in tech today, but I think we just trade improvements and deterioration. I don't see linear progress but I don't see constant decline either.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/the_nortern_dev/i-think-a-lot-of-developers-are-quietly-grieving-the-old-internet-3d8" class="crayons-story__hidden-navigation-link"&gt;I Think a Lot of Developers Are Quietly Grieving the Old Internet&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="/the_nortern_dev" 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%2F3630167%2F2e206d7e-04d3-484b-8a73-1f98d17a0e1a.png" alt="the_nortern_dev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/the_nortern_dev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              NorthernDev
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                NorthernDev
                
              
              &lt;div id="story-author-preview-content-3357241" 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="/the_nortern_dev" 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%2F3630167%2F2e206d7e-04d3-484b-8a73-1f98d17a0e1a.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;NorthernDev&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/the_nortern_dev/i-think-a-lot-of-developers-are-quietly-grieving-the-old-internet-3d8" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 16&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/the_nortern_dev/i-think-a-lot-of-developers-are-quietly-grieving-the-old-internet-3d8" id="article-link-3357241"&gt;
          I Think a Lot of Developers Are Quietly Grieving the Old Internet
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/culture"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;culture&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/the_nortern_dev/i-think-a-lot-of-developers-are-quietly-grieving-the-old-internet-3d8" 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;226&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/the_nortern_dev/i-think-a-lot-of-developers-are-quietly-grieving-the-old-internet-3d8#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              146&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;
            2 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;


&lt;p&gt;Here's what the "good old times" really felt like for me:&lt;/p&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%2Fb00z0csmvgm6xn89aqce.png" 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%2Fb00z0csmvgm6xn89aqce.png" alt="Image of a person in front of an old computer screen, text: ftp.exe Connection reset. Retry (1/3)..."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Staring at a CRT monitor, waiting for a very slow internet connection.&lt;/p&gt;

&lt;p&gt;But I'm not in "team AI utopia" either.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI is not the future ...
&lt;/h2&gt;

&lt;p&gt;AI in its current form is an understandable reason to look back in nostalgia: slop content, spam and scam are getting better all the time. But so does anti-spam protection. AI is the industry's current excuse for layoffs. But there were waves of layoffs before. AI helps military. But military was there before and it even played a foundational role in the creation of the internet.&lt;/p&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%2Fcz9o3ci6fubwwiblu1jh.png" 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%2Fcz9o3ci6fubwwiblu1jh.png" alt="AI image of a robot named Claude drafted as a soldier"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  faster, but not better
&lt;/h2&gt;

&lt;p&gt;AI creates boilerplate code much faster and people claim it creates working apps in minutes. They must be very proud of missing quality control and never really trying to do test-driven development or understand any of the fundamental software engineering principles established over decades. But then again, some of those principles are just opionions as well. Like functional vs. object-oriented programming paradigms, like monolith vs. microservices, like agile methodologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  "yelling at the sky"
&lt;/h2&gt;

&lt;p&gt;I remember arguing with people campaigning against the Internet. Many years later, one might think that I've become that "old man yelling at the sky". I criticised React as an overcomplicated disimprovement. I had my tinfoil hat phase using a rooted Android without any Google services at all. Now I'm the AI sceptic dismissing a new digital trend innovation while still using it eventually.&lt;/p&gt;

&lt;h2&gt;
  
  
  ... not in its current form
&lt;/h2&gt;

&lt;p&gt;No, I don't really miss the old internet at all. Those who do just glorify the days when they were young. I mean, I miss USENET in a way. I miss the imperfection and DIY diversity, but I don't want to travel back in time. I want fast internet, Figma designs, kanban boards, pull requests, annotated coding history, open-source-based freemium frameworks, smartphone cameras, code completion, and, yes, artificial intelligence. Only not necessarily in their current form.&lt;/p&gt;

&lt;p&gt;I have ideas and experience. I can spot errors and smell spam and enshittification. We are not moving towards an utopia and we're not living in the best of all possible worlds. Not at all. But we didn't back then, either.&lt;/p&gt;

&lt;h2&gt;
  
  
  try to keep an open mind
&lt;/h2&gt;

&lt;p&gt;I try to balance both and I try to keep an &lt;a href="https://www.open-mind-culture.org/" rel="noopener noreferrer"&gt;open mind which is what I called my blog website&lt;/a&gt; where I try to share a less technical perspective beyond my DEV articles.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI art
&lt;/h2&gt;

&lt;p&gt;I have been obsessed with AI art for a while, since an old friend of mine did his first psychedelic Midjourney experiments in 2022, but I mostly abstained from AI image generation until DEV launched it's cover editor. &lt;/p&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%2Fvdvmvf6tak3qtxhdippd.png" 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%2Fvdvmvf6tak3qtxhdippd.png" alt="Strikingly unironic AI art image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The current cover image is so bad that it's good again in a way. AI's striking failure of irony and subtlety and its stubbornness of trying anyway, adding details like the "digital anxiety simulator" caption is in a league of its own. Placing the spectator inside the shop window instead of in front of it. Trying to draw the prompeted "modern drone" according to DEV's retrofuturistic steampunk style preset. We'll surely feel nostalgic about that as well in a few years from now.&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>ai</category>
    </item>
    <item>
      <title>Using Slightly Broken Smartphones thanks to Accessibility</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Mon, 02 Mar 2026 17:57:49 +0000</pubDate>
      <link>https://forem.com/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf</link>
      <guid>https://forem.com/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf</guid>
      <description>&lt;p&gt;I rescued my water-damaged phone thanks to Android's powerful accessibility features and open-source app replacements. Tips for Android 13 or newer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Water Damage and what it taught me
&lt;/h2&gt;

&lt;p&gt;Pinch-to-zoom is efficient for many users, but it excludes others: people with motor impairments, temporary injuries, or damaged hardware. Hardware is not equally waterproof everywhere. Replacing a touchscreen can be more expensive than buying a new smartphone. Android apps, features and workarounds help using a slightly broken smartphone without repair or replacement. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Course of Events and Extent of Destruction&lt;/li&gt;
&lt;li&gt;One-Finger Zoom Gestures: Double Tap vs. Double Touch Drag&lt;/li&gt;
&lt;li&gt;Android Accessibility Menu&lt;/li&gt;
&lt;li&gt;App Accessibility by Design: Maps and Camera Apps&lt;/li&gt;
&lt;li&gt;Working around Unresponsive Touch Points&lt;/li&gt;
&lt;li&gt;Water Resistance, Rust Protection and eSIM&lt;/li&gt;
&lt;li&gt;What did NOT Work and Why it Failed&lt;/li&gt;
&lt;li&gt;Notes, Credits and Conclusions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Course of Events and Extent of Destruction
&lt;/h3&gt;

&lt;p&gt;After suffering severe water damage, my Google Pixel phone worked again and the touch screen seemed to operate normally in some apps. Others didn't properly recognise gestures like pinch, punch,  drag and drop fully anymore, either ignoring my intent or not working as smoothly as before. It took me some research and observation to understand the seemingly erratic behavior.&lt;/p&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%2F61c9x5jlkuhvp87pas7c.png" 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%2F61c9x5jlkuhvp87pas7c.png" alt="Set in a rainy, retro-futuristic, neon-lit urban synthwave cyberspace, a person looks distressed while holding a smartphone with a shattered screen. Another person is falling into a blue pool of water, accompanied by several flying tablets and devices. Bystanders are holding transparent umbrellas to protect themselves and vintage personal computer devices from the rain."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike the last time when I had to use my device in heavy rain and I had to replace the whole touchscreen, this time the device fell into the water completely. I rescued it quickly and dryed it as good as I could. &lt;/p&gt;

&lt;p&gt;A single unresponsive touchscreen row stops drag and drop gestures, but why does pinch zoom no longer work at all? I still don't know, but I learned how to use a phone without two-finger zoom. &lt;/p&gt;

&lt;p&gt;As the Pixel 4 is one of the last compact high end smartphone series, and it still works well otherwise unless you need much memory for editing video or a bigger battery. However, replacing the touchscreen costs as much as buying a similar new phone. Let's explore how to make use of the working hardware as a sustainable developer. &lt;/p&gt;

&lt;h2&gt;
  
  
  One-Finger Zoom Gestures
&lt;/h2&gt;

&lt;p&gt;Android, and possibly other smartphone systems as well, offer at least two alternative zoom gestures that do not require using two fingers. They require only one point of contact, bypassing multi-touch detection issues.&lt;/p&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%2Flxawfi711dbqo1evgfma.png" 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%2Flxawfi711dbqo1evgfma.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Double Tap
&lt;/h3&gt;

&lt;p&gt;A double tap without additional action toggles 1x zoom in Google photos. This well-known feature keeps zooming deeper into Maps on each tap without a simple way to zoom out again.&lt;/p&gt;

&lt;h3&gt;
  
  
  Double Touch Drag
&lt;/h3&gt;

&lt;p&gt;The one-finger zoom gesture is a little known alternative to the common two-finger pinch zoom, also known as the one-finger-workaround: Double-tap the screen, but don't lift your finger on the second tap. Slide your finger up or down to zoom in and out.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Support and Limitations
&lt;/h3&gt;

&lt;p&gt;One-finger tap gestures work in Google Maps, Photos and Camera, although it opens Camera settings, it still zooms in and out nevertheless. It also works in Seznam's Open Street Map based MAPY app and in all Android apps that don't prevent or intercept double tap with their own handler.&lt;/p&gt;

&lt;p&gt;Tapping twice with or without secondary one finger swipe is not working in Instagram, where double tapping means to like or unlike a post, and double-touch-dragging in the post and stories editor does exactly nothing. But Meta's notorious disregard for accessibility is not the only reason against Instagram anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Android Accessibility Menu
&lt;/h2&gt;

&lt;p&gt;Turning on the Accessibility Menu shortcut in Settings &amp;gt; Accessibility &amp;gt; Accessibility Menu., a large floating button appeared. Tapping it opens another large-button menu. However, I failed to add or activate zoom buttons missing in the default accessibility menu. There is a distinct magnification tool that enables zooming into the whole screen and adds a draggable square screen loupe, independent from missing app functionality. Take a look at the screenshots below.&lt;/p&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%2Fyivsczal4k88jm9h7y16.png" 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%2Fyivsczal4k88jm9h7y16.png" alt="Accessibility menu, magnification and accessibility settings screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ironically, Google's AI assistant advised me to disable magnification. That's unnecessary as it only conflicts with one-finger tap-and-drag while the loupe is active. The accessibility menu does not contain big "+" and "-" buttons to zoom, at least not without further customization (comments welcome!)&lt;/p&gt;

&lt;h2&gt;
  
  
  App Accessibility by Design
&lt;/h2&gt;

&lt;p&gt;Many apps used to include optional plus (+) and minus (-) zoom buttons specifically for accessibility and users with limited hand mobility who are physically unable to make pinch and punch gestures with their fingers. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://osmand.net/docs/user/widgets/map-buttons/" rel="noopener noreferrer"&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%2F9bm93pv89t7nv7mtrk2i.png" alt="OsmAnd Map Buttons Documentation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Navigation Apps with or without Zoom Buttons
&lt;/h3&gt;

&lt;p&gt;I failed to find the "hidden setting" to turn on permanent zoom buttons in the Google Maps app to show up on the right side of the map, formerly found after tapping my profile icon, going to settings -&amp;gt; navigation settings as a Show zoom buttons toggle.&lt;/p&gt;

&lt;p&gt;Google had removed the button option from the Google Maps app in a past update. As an alternative, Google's Gemini AI assistant highly recommended switching to the &lt;strong&gt;open street map&lt;/strong&gt; client &lt;strong&gt;OsmAnd&lt;/strong&gt; as the "gold standard for accessibility. It uses large, high-contrast + and - buttons by default and allows you to place them anywhere on the screen."&lt;/p&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%2Fvrxatokarvbhtwstsgcb.png" 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%2Fvrxatokarvbhtwstsgcb.png" alt="Screenshots of OsmAnd and Open Camera interface and settings"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OsmAnd and Open Camera interface and settings with Android accessibility menu and magnifier buttons floating on top of the apps on the right side.&lt;/p&gt;

&lt;h3&gt;
  
  
  Photo &amp;amp; Camera Apps with Zoom Buttons
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Open Camera&lt;/strong&gt; is a professional camera app that is much easier to use with hardware damage or accessibility needs than Google Camera. I had already installed Open Camera before, because of its explicit external microphone settings for recording video.&lt;/p&gt;

&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/ingosteinke/microphone-choice-and-cancelling-noise-1d7k" class="crayons-story__hidden-navigation-link"&gt;Microphone Choice and Cancelling Noise&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-2831146" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/microphone-choice-and-cancelling-noise-1d7k" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 12 '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/ingosteinke/microphone-choice-and-cancelling-noise-1d7k" id="article-link-2831146"&gt;
          Microphone Choice and Cancelling Noise
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&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/ingosteinke/microphone-choice-and-cancelling-noise-1d7k" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;9&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/ingosteinke/microphone-choice-and-cancelling-noise-1d7k#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&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;
            6 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;




&lt;p&gt;Open camera has volume key zoom using the phone's physical volume buttons and a large on-screen slider for zooming without using pinch gestures. Open camera has many "more camera controls" in its settings menu. It's probably one of the most customizable open source camera app according to my own experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improving Privacy by Design
&lt;/h3&gt;

&lt;p&gt;Switching to the open street map client OsmAnd from Google Maps and replacing Google Camera with Open Camera app also provides privacy by design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working Around Unresponsive Touch Points
&lt;/h3&gt;

&lt;p&gt;Button taps are not affected as long as buttons are big enough.&lt;/p&gt;

&lt;p&gt;Android app icon drag and drop positioning becomes a puzzle game when you can't drop to a certain x,y position by moving from above because an unresponsive cell acts like an invisible wall on your way to the intended drop target.&lt;/p&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%2Fk8q0fs3pglgsltxe7mjb.png" 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%2Fk8q0fs3pglgsltxe7mjb.png" alt="Image inspired by vintage drag and drop games"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you enjoyed those kind of games, you can imagine possible solutions. When you can't drag from top down, try to find a way from bottom up, like removing and re-adding the same app shortcut icon.&lt;/p&gt;

&lt;p&gt;Cursor placement and text selection are restricted by the unresponsive row as well. A workaround is scrolling. In my notes app, I sometimes add two extra lines to make the note long enough for scrolling to work. &lt;/p&gt;

&lt;h2&gt;
  
  
  Water Resistance and Rust Protection
&lt;/h2&gt;

&lt;p&gt;Pro tip: Don't drop your phone into the water!&lt;/p&gt;

&lt;p&gt;Avoid using your phone while it's wet. Wait until it's dry instead.&lt;/p&gt;

&lt;p&gt;But if you do, Android can automatically disable the USB slot when it detects humidity to protect an otherwise vulneraby exposed  electrical port capable of destroying the device electronic.&lt;/p&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%2F0e6povn7l8blzs7y0xn9.png" 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%2F0e6povn7l8blzs7y0xn9.png" alt="eSIM setup and illustration, USB settings and notification"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Physical hardware SIM card slots and SIM cards can get damaged by corrosion as well. Luckily, there is eSIM now.&lt;/p&gt;

&lt;h3&gt;
  
  
  eSIM as an easy solution?
&lt;/h3&gt;

&lt;p&gt;A subscriber identity module, or SIM for short, is the historic micro chip card you buy at a bodega (Späti) or phone shop or obtain postal mail from your phone provider. Most customers don't need it at all. The embedded software replacement (eSIM) is available in almost all modern smartphones and many recent precursors, including my Pixel 4a which was originally manufactured in 2020.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did NOT Work and Why it Failed
&lt;/h2&gt;

&lt;p&gt;Asking AI assistants about settings can be informative, inspiring or misleading. Infamously overconfident about their suggestions and hallucinations, asking for proof and authoritative sources produced a "why this works" section, no matter if it does, even when it's clear that they can't be sure.&lt;/p&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%2Fmeyto2jqtn6rlpx687ai.png" 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%2Fmeyto2jqtn6rlpx687ai.png" alt="Cartoon meme: perplexity failed me"&gt;&lt;/a&gt;&lt;/p&gt;

&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/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac" class="crayons-story__hidden-navigation-link"&gt;If Writing still Matters, How to Do it Right and Avoid AI Suspicion?&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-3263290" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 18&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/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac" id="article-link-3263290"&gt;
          If Writing still Matters, How to Do it Right and Avoid AI Suspicion?
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/watercooler"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;watercooler&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/writing"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;writing&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/nanobanana"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;nanobanana&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/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;45&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/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              19&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;
            12 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;




&lt;p&gt;We should all know that AI is unreliable, but some suggestions sound too good to be true or too scary to ignore. &lt;/p&gt;

&lt;h3&gt;
  
  
  Incorrectly Attributed Issues
&lt;/h3&gt;

&lt;p&gt;Perplexity claimed that my Pixel 4a was one of those models not supporting virtual SIM card software, attributing Pixel 3a information to the Pixel 4a series. All Pixel 4a phones should support eSIM, just as Gemini and Google Help seemed to agree on initially. If mine had not, in the worst case, I would have had to order a new physical hardware SIM card from my phone provider.&lt;/p&gt;

&lt;p&gt;Always check authoritative sources and product specifications!&lt;/p&gt;

&lt;h3&gt;
  
  
  Imaginary System Settings
&lt;/h3&gt;

&lt;p&gt;Gemini was initially right about the eSIM issue but changed its mind after evaluating Perplexity's claims. Gemini later hallucinated system settings and app options that don't exist. The artistic recap below illustrates imaginary system settings and proves that AI is still better at imagination than at researching facts correctly.&lt;/p&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%2F3mpv1bgv6maytb0z85ss.png" 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%2F3mpv1bgv6maytb0z85ss.png" alt="Imaginary system settings in artistic pseudo screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These imaginary system settings look nice and graphical, but that's not the point. Searching for nonexistant settings that were either removed or never implemented is a waste of time. Here are some screenshots of the real Android 13 system settings.&lt;/p&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%2F9m1ftaekhop61toc4ukl.png" 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%2F9m1ftaekhop61toc4ukl.png" alt="Android 13 system settings screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is another informative screenshot collage taken on Android 13 on a Google Pixel phone in 2026. The image might be outdated when you read it, but it proves that there are no zoom buttons in Google Map settings in the mobile Android app anymore.&lt;/p&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%2Fp4rwz0o9y3xuu3c73qid.png" 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%2Fp4rwz0o9y3xuu3c73qid.png" alt="Settings screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Neither Google Maps Go, nor the Open Street Maps based czech Mapy app offer accessible zoom buttons, but OsmAnd does. Official documentation, forums and search results can point you in the right direction. But there are so many different system configurations and frequent software updates that not every experience or official documentation might work in your specific situation. Instead of relying on rumors and guessing, I find it's always a good idea to inspect and learn about the apps that you have and check for useful options that you might have been missing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Screen Protector Mode to Enhance Touch Sensitivity
&lt;/h2&gt;

&lt;p&gt;Android settings offer a so-called screen protector mode to ehance touch sensitivity. Originally intended to compensate weaker contact caused by protective plastic or glass applied to the touchscreen, screen protector mode might also help in other situations.&lt;/p&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%2Fkl9b8umpguhz7jlbi4r0.png" 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%2Fkl9b8umpguhz7jlbi4r0.png" alt="Artwork showing two smarphone users with and without enhanced touch sensitivity inaccurately symbolized by a glow efffect"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To increase touch sensitivity, go to &lt;a href="https://support.google.com/pixelphone/answer/6111557#zippy=%2Caccessibility%2Cscreen-settings" rel="noopener noreferrer"&gt;Settings &amp;gt; Display &amp;gt; Touch sensitivity and toggle the Screen protector mode to ON&lt;/a&gt;. Forcing the digitizer to detect weaker signals might bypass minor input issues.&lt;/p&gt;

&lt;p&gt;In my case, this did not fix the partial unresponsiveness caused by the water damage. In fact, I perceived no difference at all. But at least the protector mode is a system setting that really exists and didn't hurt to give it it a try.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disable Magnification
&lt;/h3&gt;

&lt;p&gt;Android Accessibility and magnification button overlays don't interfere with other apps any more than they need to. Unless activated, the magnification button just sits on the side of the screen, can be dragged out of the way and does nothing until you touch it.&lt;/p&gt;

&lt;p&gt;A "top priority" according to AI, the advice to disable magnification was probably a mistake confusing the overlay button with another, even less known gesture refered to as a triple-tap to zoom, breaking an otherwise functioning pinch-to-zoom gesture.&lt;/p&gt;

&lt;p&gt;Anyway, toggling the maginifcation shortcut setting to OFF in Settings &amp;gt; Accessibility &amp;gt; Magnification did not help me in any way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Android System Intelligence Cache
&lt;/h3&gt;

&lt;p&gt;AI also advised me to clear the Android System Intelligence cache, based on "reasoning" about possible "cached error states" that turned out as mere speculation. Interestingly, there is a system app called System Intelligence on my phone that I had already disabled before. What does it do?&lt;/p&gt;

&lt;h4&gt;
  
  
  Suspicious Agent or Helpful Assistant?
&lt;/h4&gt;

&lt;p&gt;Android System Intelligence is supposed to provide helpful intelligent assistance locally while respecting users' privacy. &lt;a href="https://support.google.com/pixelphone/answer/12112173?hl=en" rel="noopener noreferrer"&gt;According to Google Help, Android System Intelligence&lt;/a&gt;  features include automatic live captions, assistant voice typing, language translation and music recognition and smart autorotate.&lt;/p&gt;

&lt;p&gt;However, in times of growing concerns about reliance on American tech companies and so-called artificial intelligence, disabling an unsolicited Google system app is legitimate action to &lt;a href="https://en.wikipedia.org/wiki/DeGoogle" rel="noopener noreferrer"&gt;degoogle&lt;/a&gt; your Android device at least a little bit without switching to pure &lt;a href="https://en.wikipedia.org/wiki/Android_(operating_system)#Development" rel="noopener noreferrer"&gt;Android Open Source (AOSP)&lt;/a&gt; alternatives completely (which might not be a good idea anyway if you rely on online banking and other commercial apps that expect a Google-based infrastructure to be part of a legitime end-user device).&lt;/p&gt;

&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/ingosteinke/25-google-alternatives-every-dev-must-use-in-2025-20n2" class="crayons-story__hidden-navigation-link"&gt;26 Google Alternatives every DEV must know&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-2289799" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/25-google-alternatives-every-dev-must-use-in-2025-20n2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 20 '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/ingosteinke/25-google-alternatives-every-dev-must-use-in-2025-20n2" id="article-link-2289799"&gt;
          26 Google Alternatives every DEV must know
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/watercooler"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;watercooler&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/indieweb"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;indieweb&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/google"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;google&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&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/ingosteinke/25-google-alternatives-every-dev-must-use-in-2025-20n2" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;54&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/ingosteinke/25-google-alternatives-every-dev-must-use-in-2025-20n2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              23&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;
            2 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;




&lt;p&gt;I can assure you that at least autorotate works in Android 13 when system intelligence is disabled. Although the help article does not mention touch sensitivity and gestures explicitly anywhere, there might be some connection that I didn't proceed to explore. &lt;/p&gt;

&lt;h2&gt;
  
  
  Notes, Credits and Conclusions
&lt;/h2&gt;

&lt;p&gt;Both fascinated and critical about AI-generated art let my disclose, disclaim and clarify image sources, facts, and (mis)information used in this article.&lt;/p&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%2Frq2i2174be4yeiq50arq.png" 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%2Frq2i2174be4yeiq50arq.png" alt="Image of two men standing at the shore of a lake, one is looking at a smartphone he is holding in his hand. Text: don't drop it"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Generated Images
&lt;/h3&gt;

&lt;p&gt;Except for the real screenshots, all images used in this article have been generated with the help of AI, either using Google's Nano Banana via the Forem cover generator, as it is currently encouraged by DEV, or by OpenAI's ChatGPT partially based on actual photography showing myself and generated cover images.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Information, Misinformation and Text Generation
&lt;/h3&gt;

&lt;p&gt;Misinformation, misattribution and hallucinations wasted precious time and energy and made-up recommendations did not work and some even made the situation worse. I haven't cited all of them so as not to inspire anyone to harmful actions.&lt;/p&gt;

&lt;p&gt;However, experimenting with AI as a developer can teach us what AI can do, what it can't do, and how to spot fakes and hallucinations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don't trust AI.&lt;/li&gt;
&lt;li&gt;Don't rely on Google.&lt;/li&gt;
&lt;li&gt;Don't ditch a working device before trying repair and recovery.&lt;/li&gt;
&lt;li&gt;Alternative Open Source Apps are worth a try.&lt;/li&gt;
&lt;li&gt;Accidents can make me learn something new.&lt;/li&gt;
&lt;li&gt;Accessibility can benefit everyone.&lt;/li&gt;
&lt;li&gt;Always be skeptical.&lt;/li&gt;
&lt;li&gt;Don't let your device drop into the water.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>android</category>
      <category>mobile</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Legacy Code Maintenance: Let me keep your website up to date</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Wed, 25 Feb 2026 13:33:55 +0000</pubDate>
      <link>https://forem.com/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln</link>
      <guid>https://forem.com/ingosteinke/legacy-code-maintenance-keeping-your-website-up-to-date-beyond-2026-4cln</guid>
      <description>&lt;p&gt;In the future, maintaining legacy code will be more important than ever before. AI and visual no-code editors empower founders, managers and designers to build a working website from scratch in seconds that suits their basic needs. AI learned to code and produce good enough results since about 2025. Good enough at least for simple websites with some nice effects. Suitable for a startup or a design pitch.&lt;/p&gt;

&lt;h2&gt;
  
  
  When AI is no longer Good Enough
&lt;/h2&gt;

&lt;p&gt;Problems start when they need to extend, change and optimize their website that became outdated or does not perform as expected.&lt;/p&gt;

&lt;p&gt;Thing is, AI is good at building quick prototypes from scratch, but it fails to follow sustainable strategies and fails to understand existing websites and apps. Luckily, &lt;a href="https://dev.to/ingosteinke/8-alternatives-to-ai-for-coding-and-creativity-26k3"&gt;senior developers can use alternative&lt;/a&gt; solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developers Taking Long-Term Responsibility
&lt;/h3&gt;

&lt;p&gt;Long-term maintenance is the best motivation for coding professionally and sustainably copliant to best practices. Continuous long-term work experience also helps to understand, select and adapt suggested solutions. Experienced senior developers see shortcomings in vibe code and refine their prompts or the generated code accordingly.&lt;/p&gt;

&lt;p&gt;Likewise, automated testing and documentation can be generated more quickly and easily thanks to AI, but blind faith is a recipe for disaster. We need to know if a test makes sense and document reasons and decisions rather than repeat the obvious in documentation, code comments, issue trackers and commit messages. &lt;a href="https://en.wikipedia.org/wiki/Robert_C._Martin#Clean_Code" rel="noopener noreferrer"&gt;Clean code&lt;/a&gt; principles encourages us as developers to follow proven design patterns and choose meaningful names for functions, files and components. &lt;/p&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%2Fi0anuvxmglfakuedqsyk.png" 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%2Fi0anuvxmglfakuedqsyk.png" alt="Screenshot with highlighted code and git history hints" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This screenshot shows a simple code snippet with additional annotations revealing who has last edited the code and why.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you Understand Legacy Code?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Technical_debt" rel="noopener noreferrer"&gt;Technical debt&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Legacy_system" rel="noopener noreferrer"&gt;legacy&lt;/a&gt; code are disputed, yet helpful, terms when we talk about code written before yesterday. The more time has passed, the less it matters who has last edited a given line. Even if we wrote it ourselves, sometimes we remember, sometimes we don't. That's what clean code strategies and documentation are for.&lt;/p&gt;

&lt;p&gt;Often, however, legacy code lacks meaningful documentation. We need to read and analyze or search for helpful patterns using debuggers and coding assistance.&lt;/p&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%2Fzlgpb4fhvortfjg54tft.png" 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%2Fzlgpb4fhvortfjg54tft.png" alt="Claude code analysis" width="800" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Screenshots of a Claude conversation prove how AI assistants notoriously provide broken or buggy code and fail to understand meaningful features and obscure issues of legacy code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Migration, Modernization, and Maintenance Case Study
&lt;/h3&gt;

&lt;p&gt;In a combined &lt;a href="https://www.ingo-steinke.com/projects/legacy-migration-modernization-maintenance-case-study.html" rel="noopener noreferrer"&gt;case study of migration, modernization and maintenance projects as a senior web developer&lt;/a&gt; I reviewed and summarized how I approach maintenance projects and how my customers profit.&lt;/p&gt;

&lt;p&gt;Comprehensive analysis of existing code, documentation and requirements, the working software and wisely used Ai assistentes by an experiences expert, leads to an understanding that artificial intelligence alone, especially when working with legacy code, cannot achieve, at least not yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Care
&lt;/h3&gt;

&lt;p&gt;"Never touch a running system" is often quoted half-jokingly, as it holds true, like "if it ain't broke, don't fix it."&lt;/p&gt;

&lt;p&gt;But changing requirements may make it necessary to modify the code base and business logic during ongoing operations without compromising existing functionality. &lt;/p&gt;

&lt;p&gt;Once you decide that you need a (new) professional (web) developer to modify an existing code base, be realistic and take your time and budget to do it properly and save on the total cost of ownership in the long run.&lt;/p&gt;

&lt;h4&gt;
  
  
  Long-term Considerations
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;prefer professional high quality from the beginning&lt;/li&gt;
&lt;li&gt;hire an experienced senior expert for maintenance&lt;/li&gt;
&lt;li&gt;plan ahead and agree on a long-term contract&lt;/li&gt;
&lt;li&gt;save on total cost of ownership&lt;/li&gt;
&lt;li&gt;profit from fixed prices and payment terms&lt;/li&gt;
&lt;li&gt;hire a &lt;a href="https://www.ingo-steinke.com/services/freelance-webdeveloper-berlin.html" rel="noopener noreferrer"&gt;freelancer directly, without intermediate&lt;/a&gt; agency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;As a developer, learn and remember best practices and proven principles, like clean code and design patterns. Vibe coding is a shortcut, not a replacement for knowledge and experience. &lt;/p&gt;

&lt;p&gt;As a customer, don't trust advertising promises blindly. Consider total cost of ownership and the value of preventing costly failures. Code quality and maintenance is like an insurance: in the best case it feels like you don't need it. But you do. &lt;/p&gt;

&lt;p&gt;Further reading: &lt;a href="https://dev.to/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8"&gt;Balancing CMS, Custom Code and Business Logic&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" class="crayons-story__hidden-navigation-link"&gt;Balancing CMS, Custom Code and Business Logic&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" width="166" height="102"&gt;&lt;/a&gt;
              
              &lt;div id="story-author-preview-content-3327857" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 3&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" id="article-link-3327857"&gt;
          Balancing CMS, Custom Code and Business Logic
        &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/shopware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;shopware&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" 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="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&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;
            6 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>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>27 Ironical Parody Posts that belong on Dumb Dev not on my Main Page Profile 😇😈🙈</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Mon, 23 Feb 2026 13:53:24 +0000</pubDate>
      <link>https://forem.com/ingosteinke/27-ironical-parody-posts-that-belong-on-dumb-dev-not-on-my-main-page-profile-57a8</link>
      <guid>https://forem.com/ingosteinke/27-ironical-parody-posts-that-belong-on-dumb-dev-not-on-my-main-page-profile-57a8</guid>
      <description>&lt;p&gt;I wrote a bunch of publications that better belong here than on DEV's main page, including the following 27 posts. Actually there are not really twenty-seven such posts but it makes a nice catchy headline. Both of the 22 posts are updated as "evergreen content" at least until 2027 when they expire and get blown away. 🧨🤯🤡 &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why do numbered lists attract readers? Listicles have been mocked as a typical clickbait cliché, but post titles like "27 things every dev MUST know in 2027 - no. 7 will ..." seem to appeal to readers. But why?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/ingosteinke/24-antipatterns-to-avoid-in-2024-2024-175f"&gt;27 Antipatterns to Avoid in 2027 🚫2️⃣0️⃣2️⃣4️⃣🚫 🤖💩🤡🤯&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As the first posts's title reveals, there is two times two-thousand and twenty-four in it, thus 4048. What does that mean?&lt;/p&gt;

&lt;p&gt;Annual prediction posts were another thing. Luckily, they don't seem to work well anymore.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/ingosteinke/2026-web-design-and-tech-predictions-3694"&gt;2027 Web, Design, and Tech Predictions - and a Review of Last Year's Forecast&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I included 2028 and 2926 in the prediction posts' cover image, just in case. Thus, if you are reading this in 2028, this is still valid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you are reading this in 2028, this is still --valid-- dumb.&lt;/p&gt;

</description>
      <category>dumb</category>
      <category>parody</category>
      <category>2027</category>
    </item>
    <item>
      <title>If Writing still Matters, How to Do it Right and Avoid AI Suspicion?</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Wed, 18 Feb 2026 14:10:39 +0000</pubDate>
      <link>https://forem.com/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac</link>
      <guid>https://forem.com/ingosteinke/if-writing-still-matters-how-to-do-it-right-and-avoid-ai-suspicion-2nac</guid>
      <description>&lt;p&gt;Does writing still matter? Does anyone still care? I care. I write. Because it matters.&lt;/p&gt;

&lt;p&gt;"Still" refers to the ongoing "AI will replace us all" anxiety/promise/discussion as the AI hype hasn't yet collapsed in 2026. Meta discussions about DEV, writing, and AI usage keep going recently. As &lt;a href="https://dev.to/georgekobaidze/could-vibe-coding-be-the-missing-communication-link-between-pms-and-developers-3bch"&gt;Georgi Kobaidze said&lt;/a&gt; AI (or, more specifically, vibe coding) "is not a topic I like to talk about." But it seems like we need to.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Art and Stereotypes
&lt;/h2&gt;

&lt;p&gt;AI art is part of this dilemma and discussion. Abundant tools encourage laziness and distraction. DEV is no toxic social media platform &lt;a href="https://dev.to/ingosteinke/online-community-demise-and-why-dev-is-different-16km"&gt;or at least it's a little bit different&lt;/a&gt;. However, still it collaborates with Google's AI team, a company that has long ditched its famous former motto "don't be evil." I updated my &lt;a href="https://dev.to/ingosteinke/8-alternatives-to-ai-for-coding-and-creativity-26k3"&gt;post about alternatives to AI for coding and creativity&lt;/a&gt; adding reliability risks and ethical reasons against relying on mainstream AI assistants in 2026.&lt;/p&gt;

&lt;p&gt;From a distance, the hype around generative AI reminds me of Web3, only that this time, enthuasiasts are louder and more mainstream. Naive early adopters risk failure and invest plenty of money and energy getting excited about mediocre results that they see as early examples of a promising future. I wonder if they're still trading their bored panda NFT cartoons in 2026?&lt;/p&gt;

&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/ingosteinke/artificial-intelligence-and-controversial-ideas-about-future-technology-1chj" class="crayons-story__hidden-navigation-link"&gt;Artificial "Intelligence" and Controversial Ideas about Future Technology (2026 Update)&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-1264558" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/artificial-intelligence-and-controversial-ideas-about-future-technology-1chj" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 21 '22&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/ingosteinke/artificial-intelligence-and-controversial-ideas-about-future-technology-1chj" id="article-link-1264558"&gt;
          Artificial "Intelligence" and Controversial Ideas about Future Technology (2026 Update)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/web3"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;web3&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/openai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;openai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/chatgpt"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;chatgpt&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/machinelearning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;machinelearning&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/ingosteinke/artificial-intelligence-and-controversial-ideas-about-future-technology-1chj" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;31&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/ingosteinke/artificial-intelligence-and-controversial-ideas-about-future-technology-1chj#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              2&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;
            11 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;




&lt;h3&gt;
  
  
  Cover Image Generator
&lt;/h3&gt;

&lt;p&gt;This post's cover image was generated by Google's Nano Banana AI image generator with DEV's retro-futuristic preset and my spontaneous prompt description: An intellectual women with dark colored skin and large glasses and dreadlocks sits at a table in a cafe with an opened sketchbook, pens and an opened small vintage laptop computer visible from its backside with a lot of overlapping laptop stickers. The woman looks thoughful and hopeful.&lt;/p&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%2F1040wbz2kpik0tjtj0oc.png" 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%2F1040wbz2kpik0tjtj0oc.png" alt="Cover image described above."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would have expected a more intellectual, more text-focused, and less "hippie" interpretation of my prompt, but at least the generated image avoids social stereotypes prevailing in the tech industry's California Dude culture, while there might be more black women in Lagos, Nairobi and New Delhi coding than white guys in the Bay Area. Even though I'm a white tech dude myself, I try to counter culture the old stereotypes. Below are some of my recent AI-assisted Meme Monday contributions. But what's that got to do with writing? Well, we'll see in a minute...&lt;/p&gt;

&lt;h2&gt;
  
  
  Modern Monday Memes
&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%2F2iuu723s7msvgig3wk2o.png" 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%2F2iuu723s7msvgig3wk2o.png" alt="A dialoge between a barista and her customer: How do you take your coffee? Like ... in my mouth?"&gt;&lt;/a&gt;&lt;/p&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%2F705dc5xknh03ls0f7hib.png" 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%2F705dc5xknh03ls0f7hib.png" alt="A prompt engineering meme."&gt;&lt;/a&gt;&lt;/p&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%2Fe7tkb4si7kb0zo61qvie.png" 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%2Fe7tkb4si7kb0zo61qvie.png" alt="A meme about developers while vibe coding: we built an entire application in just 3 days. Developers after vibe coding: adding that icon is going to take 3 weeks."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Flag Episode Analogy
&lt;/h2&gt;

&lt;p&gt;So, I made AI create cartoons and cover images with modern women instead of beardy dudes. So what? These are still stereotypes.&lt;/p&gt;

&lt;p&gt;After notable experts have left American IT and AI companies, here I am, a privileged white dude wasting his coffee break time and CPU power generating cartoon memes trying to fix what's broken on a more fundamental level?&lt;/p&gt;

&lt;p&gt;In a way, I remind myself of the South Park "flag war" episode officially known as "Chef Goes Nanners". Maybe it still matters. Maybe it even matters if the story is retold based on vague text prompts resulting in generic cartoons like this one below.&lt;/p&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%2F2a12aptravj0l3mi3caf.png" 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%2F2a12aptravj0l3mi3caf.png" alt="People arguing about a flag on a pole."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I won't post a screenshot or replication of the said TV series. That would be an avoidable signal for getting shadow-banned in the current cultural climate, maybe not here but it did happen on Meta platforms and it might raise suspicion when applying for an immigration visa eventually, banning critics for alleged racism or copyright violations to silence their justified message, unless they are backed by an established media outlet and their legal department. Thus, one part of my content creation recommendations: don't be more "political" than you have to. I mean, if you have an attitude, you will probably still be political and critical between the lines, no matter how hard you try to be mainstream and stick to professional content.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Intoxication and Echo Chambers
&lt;/h2&gt;

&lt;p&gt;Without mentioning skin color in an image generation prompt, all cartoon characters created by AI are white. Not yellow, as that might infringe copyrights. The stereotypical white Americans seem nondescript enough that AI providers don't seem to fear copyright issues, at least not by artists that have the power to claim fair pay. Maybe they don't have to. As creatives, they can advance and grow, while AI will train on its own output and become even more stereotypical than before.&lt;/p&gt;

&lt;p&gt;I will follow up on that thought in an upcoming Open Mind Culture blog post about information intoxication as an echo chamber phenomenon also observable in the telephone game also known as Chinese whispers (or Stille Post, literally "silent mail" in German).&lt;/p&gt;

&lt;h3&gt;
  
  
  Inevitable Knowledge Collapse?
&lt;/h3&gt;

&lt;p&gt;Are we &lt;a href="https://dev.to/dannwaneri/were-creating-a-knowledge-collapse-and-no-ones-talking-about-it-226d"&gt;creating a knowledge collapse and no one is talking about it&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;I have asked myself often these days how much our work as developers and content creators still matters when "AI is going to replace us all" while the very same AI needs quality training data. According to research and reasoning there is not necessarily an "AI intoxication" echo chamber effect and no gap of years without meaningful documentation and tutorials either.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful Lying Machines
&lt;/h2&gt;

&lt;p&gt;AI can lie a thousand times as long as it still produces valuable insights, and my preferred one-line code completion after disabling an unhelpful GitHub copilot plugin is also "AI" just on a smaller scale. A scale that actually helps me. I ask, AI rolls the dice, I filter, I test and commit. If the code goes into a public repository, AI can train and other can see it. If I mind commenting and documenting, even better. I'm still not a big fan of AI, but relying on my memory and search engine results isn't good enough these days. I'm still not a big fan of StackOverflow either, which is why I've contributed so much DEV content already.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relevant Ones
&lt;/h2&gt;

&lt;p&gt;As individual developers, authors, and part-time open source contributors, every one of us is just one out of many. So why and how can a single person's contribution still matter among all the noise? "Long tail" is the answer. &lt;/p&gt;

&lt;h2&gt;
  
  
  Long Tail
&lt;/h2&gt;

&lt;p&gt;While mainstream information audience might matter even less unless you can invest costly marketing power to push it, and niche content might be discarded by search engines and AI training as irrelevant, classic long-tail publishing still seems to work: popular enough, filling gaps, catering for real demand. Consider Google's "people also search for", "answer the public", keyword tools, Matomo or search console insights and similar sources suggesting relevant keywords and W-questions. Add meaningful detail to prove authenticity while also trying to come up with a more general "today I learned" takeaway.&lt;/p&gt;

&lt;h2&gt;
  
  
  IndieWeb
&lt;/h2&gt;

&lt;p&gt;IndieWeb, also known as POSSE or "own your content" principle, means you should have and maintain at least one personal website and never rely on external third-party platforms alone. Consequentially, I wrote several &lt;a href="https://www.open-mind-culture.org/en/" rel="noopener noreferrer"&gt;open mind culture blog&lt;/a&gt; posts focusing more on the cultural and art-related aspects of content creation and contemporary AI usage and misuse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unsung Elephant Hero
&lt;/h2&gt;

&lt;p&gt;DEV.to, as one of the few truly useful social web sites, also counts as a reputable content source at least partially included in &lt;a href="https://en.wikipedia.org/wiki/Common_Crawl_Foundation" rel="noopener noreferrer"&gt;Common Crawl&lt;/a&gt; snapshots, the unsung elephant hero in the room that nobody talks about in SEO/GEO discussions.&lt;/p&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%2Fttyuje8eflecoj2q6ute.png" 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%2Fttyuje8eflecoj2q6ute.png" alt="A cute cartoo elephant similar to the blue PHP mascot walking in a room between conservatively clad businessmen and businesswomen holding flipcharts and laptops looking confused ."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Crawl
&lt;/h2&gt;

&lt;p&gt;AI assistants are trained on Common Crawl derivates and public code repositories like those on GitHub. If you want to feed your niche solutions back into their training material, have a handful of public demo repositories that you can actively maintain, both as templates for future projects, personal code snippet libraries, and to rediscover them via Google, Claude or Copilot in case you forgot. That's when DEV proves handy again. You can describe your issue, approaches and solution(s) in a concise abstract and in lenghty detail, using different synonyms to describe the same thing and comment your code more verbosely than you would in a StackOverflow issue or answer. Add or embed your source code, codepen demos, screenshots, demo websites, and a call to action and wait for helpful comments!&lt;/p&gt;

&lt;h2&gt;
  
  
  Interlinked Web
&lt;/h2&gt;

&lt;p&gt;I have already linked to several community members' and some of my own DEV posts here, and that's one part of a good post leveraging the power of hypertext thus what still makes the internet special and useful. We don't want to get stuck in biased echo chambers and walled gardens either, so let's link to content outside of the current platform. Those links can point to reputable sources like StackOverflow, GitHub, Wikipedia or &lt;code&gt;.edu&lt;/code&gt; domains possibly helping to make a post look more reliable and authoritative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Factful Examples
&lt;/h2&gt;

&lt;p&gt;Linking or embedding CodePen demos, screenshots or proof of concept demos are always a good idea as well. Show and tell! AI can imitate authentic style and fake expertise but actual first-hand real-world experience goes far beyond adding "honest" and "why this works" to a text while relativizing its stubborn insistence on made-up alternative "facts" by adding "may", "many", "could", "often" etc. Testable real-world examples and opinions based on relevant experience is one thing that AI can't fake at least not in its current LLM-based form.&lt;/p&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%2Fibs1tvnmqm78xb579hf6.png" 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%2Fibs1tvnmqm78xb579hf6.png" alt="Generic image of a computer screen with abstract content"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clean aesthetics devoid of meaning: generic AI imagery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perplexity
&lt;/h2&gt;

&lt;p&gt;Unlike the principle of least surprise to facilitate colloboration when coding, perplexity measures the unlikeliness of words or ideas in a text, and LLM-based AI is bad at perplexitiy by design. The "unsung elephant hero" subheadline and the cute elephant mascot cartoon is an example for perplexity: too creative, unlikely and costly to appear in a usual AI answer, it's still relevant on-topic enough for a post in a developers' community.   &lt;/p&gt;

&lt;p&gt;Perplexity is also the name of an AI service with an interface similar to Gemini, Claude and ChatGPT, but praised for researching the web and fact-checking by default. The promising concept doesn't always work well though. Perplexity failed me several times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perplexity Failed Me
&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%2Fmeyto2jqtn6rlpx687ai.png" 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%2Fmeyto2jqtn6rlpx687ai.png" alt="Cartoon meme: perplexity failed me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Perplexity insisted that DEV.to adds &lt;code&gt;rel="nofollow"&lt;/code&gt; to outgoing links, that Chrome web store descriptions support clickable do-follow links and that any of this matters in 2026. Perplexity also falsely attributed Pixel 3a issues to a Pixel 4a device.&lt;/p&gt;

&lt;p&gt;The phone issue makes an interesting follow-up blog post topic for my &lt;a href="https://dev.to/ingosteinke/series/22597"&gt;Sustainable Low-Waste Tech series&lt;/a&gt; in 2026.&lt;/p&gt;

&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/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf" class="crayons-story__hidden-navigation-link"&gt;Using Slightly Broken Smartphones thanks to Accessibility&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-3210004" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 2&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/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf" id="article-link-3210004"&gt;
          Using Slightly Broken Smartphones thanks to Accessibility
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/android"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;android&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mobile"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mobile&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&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/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf" 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/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;19&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/ingosteinke/using-slightly-broken-smartphones-thanks-to-accessibility-28pf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              5&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;
            10 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;




&lt;p&gt;You can find more AI-generated, retro-futuristic, synth-wave, cyberpunk aesthetic images, plus some up-to-date, first-hand, real-world screenshots, there as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Failed Me Too
&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%2Fyugqk9r4uli873fvwksg.png" 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%2Fyugqk9r4uli873fvwksg.png" alt="Cartoon meme: Claude failed me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claude repeatedly suggested broken code and insisted his failed attempts count against my token limit. After another dubious suggestion, it stated that the code "honestly still may not" work in every case. I challenged his relativizing statement.&lt;/p&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%2Fdjxcfil7to58kvn7mb9k.png" 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%2Fdjxcfil7to58kvn7mb9k.png" alt="Screenshot of the conversation quoted below."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Likewise Claude, why do you say "honestly this still may". Is the matter too difficult to give a fact-based correct answer?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You're right to call that out. I was being vague when I should have been precise.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;after_setup_theme&lt;/code&gt; hook &lt;strong&gt;does not fire&lt;/strong&gt; during async media uploads because the theme is not loaded in that context. So that alternative I offered won't work — it's not uncertain, it simply won't work.&lt;/p&gt;


&lt;/blockquote&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%2F205kjbom7ovvy2reyd0u.png" 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%2F205kjbom7ovvy2reyd0u.png" alt="Screenshot of the Claude quote below"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Can I please use the same Claude version that the other developers are so enthusiastic about? The one that works?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That genuinely made me laugh — and I deserve it.&lt;/p&gt;

&lt;p&gt;I've been bad in this conversation. I gave you confident wrong answers, contradicted myself, speculated as if it were fact, and made you chase dead ends. That's frustrating and a waste of your time.&lt;/p&gt;


&lt;/blockquote&gt;

&lt;p&gt;Claude wasted my time, lied to me and that made him &lt;em&gt;laugh?&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't be Claude!
&lt;/h2&gt;

&lt;p&gt;That's a perfect example how not to write technical articles. Don't suggest untested code! Share what you did and why and let others decide if that looks like it might be useful. Use structure, suspense, and a sense of humor, if you like. But don't fool or gaslight your readers.&lt;/p&gt;

&lt;p&gt;I want to be absolutely clear that every current AI service based on large language model technology is fundamentally flawed and unreliable. What's true for Claude and Perplexity also applies to Google Gemini, Mistral's Le Chat and small energy-saving and privacy-focused alternatives like Ecosia AI and Thaura.&lt;/p&gt;

&lt;p&gt;No paid pro search or guardrails services can prevent errors completely. Agentic peer pool voting would still need a human to check for a minority report possibly discarded in favor of a false assumption agreed upon by the agent's majority&lt;/p&gt;

&lt;p&gt;Although some services might do better fact-checking and reasoning refinements, every single one of them can hallucinate and give misleading, incorrect or outright dangerous answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dangerous Destruction
&lt;/h2&gt;

&lt;p&gt;Whether AI makes us more or less productive (according to the recent METR study, linked and discussed further below) might not be the point after all. Playing around with AI tools as developers, we are helping to improve weapons of mass destruction. The case of US-American military use of Anthropic and OpenAI technology was one of many reasons sparking a #QuitGPT shitstorm early in 2026. But the damage is done. Computers are playing wargames and burning fossil fuels for artificial reasoning making humans write more code, more marketing slop content, bomb each other and destroy our planet more efficiently.&lt;/p&gt;

&lt;p&gt;This is not me being political, this is just quoting normal news and discussion. The Dead Internet Theory has a point, but AI-as-a-soldier is much more dangerous and cute cartoons mocking high tech gone wrong might just be a grim sense of humor on the eve of destruction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude as a Soldier
&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%2F29q4jz8oheph57ehbxqq.png" 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%2F29q4jz8oheph57ehbxqq.png" alt="Claude as a cute robot drawn to war, firing a machine gun in front of burning oil refineries, thinking on a lawn in front of gas power plants, caption: Claude drafted for war, Claude burning fossil fuels for deep thinking"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that this doesn't only apply to Anthropic's Claude AI, Sonnet models, or OpenAI's ChatGPT. Copilot, DeepSeek, Grok and Perplexity, they all share the same fundamental dilemma, varying in ethical and technical implementation details only. And the same goes for Google AI Studio, Google Gemini, and AI-powered image generation and alteration tools like Google's Nano Banana, all currently cooperating with DEV in several ways.  &lt;/p&gt;

&lt;h2&gt;
  
  
  (Don't) Use AI Images
&lt;/h2&gt;

&lt;p&gt;All images in this post were generated with the help of artificial intelligence. AI images can be helpful, funny or aesthetically pleasing.&lt;/p&gt;

&lt;p&gt;However, creation is a waste of energy and often also an unfair unpaid exploitation of uncredited artists. As an experiment, I have used different image generators in different contexts. DEV's cover editor integrates Nano Banana with DEV's retrofuturistic synthwave nerd style system prompt, recognizeable by its neon purple and aqua lines, vintage monitors, and a preference for centered and symmetric retro aesthetics reminding of Wes Anderson movies.&lt;/p&gt;

&lt;p&gt;The orange-brownish cartoon variation "Claude failed" me was created by OpenAI's ChatGPT, formerly known as Dall-e, using two input pictures: Nano Banana's neon-retro "Perplexity failed me" DEV scene above, and the brownish barista cartoon in this post's Modern Monday Memes section, which is based on another barista cartoon which Nano Banana created inspired by a collage of a stock image preview showing AI replicas of human models. An artistically and technologically fascinating layered technique, but too elaborate and expensive for everyday use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take Your Time
&lt;/h2&gt;

&lt;p&gt;Taking pictures in a studio or outdoors is a complex and time consuming process and so is writing. Even highly productive best selling authors typically published one book per year. Stephen King was a notable early adopter using personal computers for writing. In his memoir On Writing, King notes that he moved from his electric typewriter to the computer system in the early 80s, primarily because it made the assembly of his massive manuscripts significantly faster and allowed him to reuse text more easily. Still, King wasn't famous for the sheer amount of output but for his style, suspense and relevant content criticizing real-world American anxieties, institutions, and social failings.&lt;/p&gt;

&lt;h3&gt;
  
  
  All Work and No Play?
&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%2F808evyfdw6135pde2hug.png" 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%2F808evyfdw6135pde2hug.png" alt="AI-generated image quoting all work no play repeatedly on a computer monitor in front of an author at a desk next to a stakc of paper and a flying house and a distorted clock reminding of paintings by Salvador Dalí"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Writing a good post takes time or a rare moment of hyper-focused inspiration. I think I can take an occasional shortcut like copy-pasting and only slightly rephrasing a three-sentence summary about an American author without fact-checking, because it aligns with what I already thought I knew before, but 90% of my content are my own ideas in my own words. ZeroGPT rates this text as &amp;lt; 3% AI GPT while other popular DEV posts score 10% or more. However, like recent discussions pointed already, that's not the point. AI can help neurodivergent and non-native speakers express themselves and share valuable knowledge and inspiration, and just the fact that a vintage nerd writes on an analog typewriter in a mountain cabin disconnected from internet and electricity does not make their text better per se.&lt;/p&gt;

&lt;p&gt;Take your time and do as you please, but please &lt;strong&gt;don't stop writing&lt;/strong&gt;!&lt;/p&gt;

</description>
      <category>writing</category>
      <category>ai</category>
      <category>watercooler</category>
      <category>nanobanana</category>
    </item>
    <item>
      <title>Online Community Demise and why DEV is Different (at least a little bit, I hope)</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Mon, 02 Feb 2026 12:47:08 +0000</pubDate>
      <link>https://forem.com/ingosteinke/online-community-demise-and-why-dev-is-different-16km</link>
      <guid>https://forem.com/ingosteinke/online-community-demise-and-why-dev-is-different-16km</guid>
      <description>&lt;p&gt;I recently claimed that we might look back on the 2010s decade and early 2020 years as a golden age of the internet, collaboration and information exchange. The good old days when tools had evolved, users were still ambitious to share and collaborate online for free and knowledge didn't get lost in AI chats ending in dubious almost-good recommendations below the quality of the once-good-now-outdated StackOverflow answers and crafted tutorials that the LLM had been trained on.&lt;/p&gt;

&lt;p&gt;March 2026 &lt;strong&gt;&lt;em&gt;Update&lt;/em&gt;&lt;/strong&gt;: I wrote this post shortly before DEV announced its acquisition by &lt;a href="https://dev.to/mellen/what-does-mlh-stand-for-2cbg"&gt;MLH (see: What does MLH stand for?)&lt;/a&gt;. Nobody can predict the future, but we discussed the same dilemma when DEV announced its partnership with Google's AI team. At the time of writing, I was not aware how much quantity surged and engagement dropped during the past twelve months, due to spam and slop trying to exploit DEV's permissive publishing options. However, we had similar discussions earlier on as well, and the Dead Internet Theory has a point. Still, maybe that's just Sturgeon's law, and detecting meaning and relevance among similar noise is still a genuinely human curation ability.&lt;/p&gt;

&lt;p&gt;I didn't see a sellout either. I'm not against bigger companies aquiring smaller ones, at least not in general. I'd rather see more non-profit models like Wikipedia but that's rare and hard to achive in a capitalist system. From a pramgmatic perspective, what's the point of independence if the small communities can't survive independently? DEV, at least, seems to prefer the proverbial "driver seat" and have a say about their future before investors take over without asking questions, like we saw when Twitter became X or TumblR was temporarily renamed to Oath and never reclaimed its former role again - or StackOverflow desperately doing "experiments" deliberately giving up what made their site special.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's DEV.to and why does it matter?
&lt;/h2&gt;

&lt;p&gt;I discovered the DEV community when I got disappointed about Medium's lack of quality and StackOverflow's gatekeeping. I had criticised DEV's badges as rewarding quantity over quality, but DEV's challenges focus more on quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  No good questions anymore?
&lt;/h2&gt;

&lt;p&gt;Apart from developer-focused forums and communities, more general platforms include SubStack, Reddit, Quora and LinkedIn globally. In Germany, Gutefrage.net ("good question network") has acquired several contenders and its desperation for clicks and content attracted dubious propaganda and adolescent Q&amp;amp;A to an extent that its TrustPilot score dropped below 2 which is very sad for a platform built upon a good idea and an active community providing questions, answers and ideas for free for decades.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is StackOverflow "almost dead"?
&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%2Fotf3yndz261o8x9s1sqy.png" 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%2Fotf3yndz261o8x9s1sqy.png" alt="Screenshot photography of an annotated graph of the number of monthly asked StackOverflow questions in a post by Gergely Orosz" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Image source, inspiration and further reading: &lt;a href="https://newsletter.pragmaticengineer.com/p/the-pulse-134" rel="noopener noreferrer"&gt;Stack overflow is almost dead&lt;/a&gt; in The Pulse by The Pragmatic Engineer Gergely Orosz on Substack.&lt;/p&gt;

&lt;p&gt;On a much higher level, &lt;a href="https://stackoverflow.com/" rel="noopener noreferrer"&gt;StackOverflow&lt;/a&gt; has built its reputation on the free contributions of skilled experts since it obsoleted Experts Exchange nearly twenty years ago. However, even without contemporary AI and Google's zero-click summaries, it was seen past its best days with decreasing contributions and with upvoted answers getting outdated as time went by.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blaming AI for a Self-Inflicted Decline?
&lt;/h2&gt;

&lt;p&gt;It's easy to blame AI for lack of user engagement, but bad UX and wrong business decisions play just as big a role in my opinion. Toxic social media algorithms have destroyed Web 2.0 and Web3's ideas of a decentralized non-commercial Web 1 revival never lived up to its promise, at least not yet.&lt;/p&gt;

&lt;p&gt;Although AI can help naive users publish a lot of content without learning and researching before publishing, AI can also help to detect its own slop and distinguish quality content from spam. But it needs constant human curation and high-quality authored by human beings based on their authentic experience to keep up a high level of AI output. Otherwise, that will deteriorate just like prior knowledge management strategies started out promising but deteriorated without continuous maintenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Curiosity and Curation: Growth without Losing Quality
&lt;/h2&gt;

&lt;p&gt;DEV has grown a lot, and it is full of dubious content both by beginners who are welcome to share their stories and learn in public, and by spammy marketing authors often mixing actual value with sloppy filler content and opinionated links to their clients' services. DEV's tag filters don't really work. I used "negative subscriptions" to ignore content with the #ai hashtag for example, but I keep seeing those posts everywhere every day, and we keep discussing it. Nevertheless, DEV shows me relevant and inspiring high-quality content by developers that I follow and by those trending or getting featured in curated best-of-last-week's lists.&lt;/p&gt;

&lt;h2&gt;
  
  
  DEV vs. StackOverflow, Wikipedia and Blog Platforms
&lt;/h2&gt;

&lt;p&gt;In conclusion, what's different here? DEV grows, while others decline. DEV has more content, more users, more engagement at the same time that users turn their back on StackOverflow. More general blog platforms might have more active users, but also more slop and they're not much fun anymore. &lt;a href="https://en.wikipedia.org/" rel="noopener noreferrer"&gt;Wikipedia&lt;/a&gt;, the most popular general knowledge platform, has managed to maintain high quality through gatekeeping, like StackOverflow risking to turn away potential contributors who don't easily fit their quality criteria or don't have enough time or priorities to spend unpaid time and effort contributing to a knowledge base which, in Wikipedia's case, is entirely nonprofit and succeeded in staying relevant and up-to-date enough for decades while other platforms rose and fell.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Medium without a Message?
&lt;/h3&gt;

&lt;p&gt;Medium has hidden most of its content behind paywalls, even content contributet for free by volunteering hobby authors, and it has encouraged writers to start ever post with a huge poster image usually taken from Unsplash or other free stock image libraries. DEV's integrated Google's Nano Banana AI image generator has created dubious artwork mostly following a neon retrofuturistic aesthetic that at least sets its post apart from other blogging platforms at first sight. I still use Medium to publish German versions of my Substack posts.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Stack without Overflow
&lt;/h3&gt;

&lt;p&gt;Substack is praised as an independent alternative, but I totally dislike its pushy user experience, constantly asking me to support, share, upgrade, recommend or post, contribute to a twitter-style comment timeline and accept cookies on every single one of their distinct subdomains. I don't get many views or followers &lt;a href="https://ingosteinke.substack.com/" rel="noopener noreferrer"&gt;there&lt;/a&gt;, but I continue to use it for its alleged search engine marketing value.&lt;/p&gt;

&lt;h3&gt;
  
  
  IndieWeb Posse: The Blogosphere Web
&lt;/h3&gt;

&lt;p&gt;I also consistently publish on my own weblog again, which is even more disappointing regarding regular visitors, but then again, I don't need quantity when I don't sell ads. &lt;a href="https://www.open-mind-culture.org/" rel="noopener noreferrer"&gt;Open Mind Culture&lt;/a&gt; is an independent, personal, ad-free blog that does get feedback and domain authorit without striving to attract the masses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: Last but not Least
&lt;/h2&gt;

&lt;p&gt;Last, but not least, DEV. I get tired of reading and writing on DEV from time to time, but I keep coming back. I was &lt;a href="https://dev.to/ingosteinke/stop-rewarding-quantity-20o8"&gt;critical to DEV's badges and voting system&lt;/a&gt;. I was skeptical about their Google AI collaboration. I got annoyed by spammy listicles. I don't like all of the posts that I wrote in the past, and I did edit some and deleted others, but I kept most as legitimate historical documents that might feel helpful or entertaining in the eyes of future readers.&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Website Builders vs. Web Designers and Developers</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Tue, 27 Jan 2026 09:49:00 +0000</pubDate>
      <link>https://forem.com/ingosteinke/website-builders-vs-web-designers-and-developers-2ef7</link>
      <guid>https://forem.com/ingosteinke/website-builders-vs-web-designers-and-developers-2ef7</guid>
      <description>&lt;p&gt;Would you recommend page builders like Wix, Webflow, SquareSpace, Framer, Elementor, Divi, Gutenberg to build a website? When you say "it depends..." what does it depend on specifically? What if we also want an online shop, what about Shopify, Shopware, and WooCommerce? What about AI-assisted website builders?&lt;/p&gt;

&lt;p&gt;As I figured out by &lt;a href="https://dev.to/ingosteinke/series/20910"&gt;using WordPress as a developer&lt;/a&gt;, despite all its idiosynrasies, bugs, and shortcomings, I keep coming back to  WordPress sooner or later, at least for smaller customer projects like startups, that I occcasionally work for apart from large corporate projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wix/Webflow/Squarespace etc. vs. WordPress for Web Designers, Developers, and Customers
&lt;/h2&gt;

&lt;p&gt;Startups often already have a WordPress website and need a relaunch or someone to take over abandoned maintenance, or they want to break free from third-party vendor lock-in, be an opinionated WordPress page builder with subscription costs, or another service like Wix, Webflow, or Shopify. All of those seemingly beginner-friendly solutions tend to cause unexpected running costs, technical debt, and practical limitations like not being able to edit two pages in parallel at the same time, at least in my experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://iconick.io/cool-kids/" rel="noopener noreferrer"&gt;Iconick's blog post about "the cool kids&lt;/a&gt; leaving WordPress for Framer" has a point, although I doubt that "the cool kids" care about PHP, Python, or whatever programming language is involved, when the promise is "no-code", "AI", and a "look". Yes, WordPress (core) has been quite stable and accessible, and most critical vulnerabilities used to come from plugins, which are also responsible for the inconsistent backoffice. However, with the Gutenberg block editor, WordPress introduced its own Framer/Wix/Divi/Elementor equivalent with the exact same problems: an inconsistent and immature UI somewhere in between the shiny no-code solutions and the old-school classic WordPress.&lt;/p&gt;

&lt;h3&gt;
  
  
  "I neeed a Website"
&lt;/h3&gt;

&lt;p&gt;Customers often say something like "I neeed a website" (- What kind of website?) "similar to this or that" (completely different) "other website". They might tell an AI assistant or find a lookalike theme ready to use in some one-click-installer library, and a nice drag-and-drop, no-code interface to replace placeholder content with their own text and images, upload their logo and customize a color palette matching their corporate identity.&lt;/p&gt;

&lt;p&gt;Voilà! A complete website made in a few hours, so what do we even need web developers and designers for?&lt;/p&gt;

&lt;h3&gt;
  
  
  What's an Individual Website?
&lt;/h3&gt;

&lt;p&gt;What makes your website individual after all? There are some necessary ingredients like content (Who are you? What do you offer?) and design (your colors, your logo, your brand), and a lot of optional ones that might become more important once you try to sell an expensive service or product or when you want to outshine your competitors.&lt;/p&gt;

&lt;p&gt;That's when we start talking about user experience, fun and creativity, accessibility, search engine optimization, quick loading speed, no serious errors, and not sacrificing one aspect when optimizing another.&lt;/p&gt;

&lt;p&gt;I was part of teams that built 100% individual software in projects that ran several years, and I can write 100% individual HTML and CSS code from scratch for a simple individual website. In most projects though it wouldn't make much sense to reinvent the wheel instead of reusing existing default software components or services and accepting their quirks and limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing Existing Solutions
&lt;/h2&gt;

&lt;p&gt;I will focus on free and open-source software like WordPress in this post, because of its potential advantages, like more control and a lower total cost of ownership, but in practice, WordPress isn't the same as WordPress, and I know some customers who pay an incredible bill for plugins, themes, and traffic every month, no matter if their website makes a lot of money or none at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is WordPress anyway?
&lt;/h3&gt;

&lt;p&gt;"WordPress" has become an umbrella term for many completely different approaches to web development, some of which don't differ much from Wix, Webflow or Squarespace as simplified and thus limited third-party solutions with managed hosting for regular subscription fees.&lt;/p&gt;

&lt;h3&gt;
  
  
  Managed Hosting
&lt;/h3&gt;

&lt;p&gt;"Managed Hosting" is another unclear term that might mean paying a lot for hardly being able to change anything on your own website to a customer-friendly hosting service that comes with pre-installed plugins for backup, caching, cookie consent, and image compression and that automatically updates all of those and most of your custom plugins, like contact forms, image galleries or an online shop with WooCommerce, Germanized, and some popular payment providers.&lt;/p&gt;

&lt;p&gt;When I have the chance and the budget to build a custom theme, following best practices and optimize it for efficiency, accessibility, search engines, and social sharing, my customers get a custom website, but I can still save some development time and point them to free online resources to learn how to add and edit content, upload a video, or manage their incoming messages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measuring the Benefit
&lt;/h2&gt;

&lt;p&gt;Some advantages of one technical solution versus another are opinionated or anecdotical, so I built a practical example of a typical startup landing page and a minimal online shop to compare different solutions based on facts and numbers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing
&lt;/h3&gt;

&lt;p&gt;Can I even compare WooCommerce to Wix, Webflow and Shopify without paying money just to test? WordPress hosting starts at about 2,- € per month, however cheap plans might trigger hidden costs like signing up for a minimum of 12 months or more! To keep it cheap in the long run, we must be careful to avoid freemium plugins that turn into costly monthly subscription when we exceed a certain number of pages, users, or purchases.&lt;/p&gt;

&lt;p&gt;Likewise, website and ecommerce services can start cheap and get more expensive once your business or marketing volume grows. That said, the most basic web shops start at about 5,- € both for WordPress and Shopify, and at least 15,- € for Wix and Shopware, while we'd rather use the latter for complicated setups with dedicated managed hosting and professional support way beyond the price range that we look at here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer Experience
&lt;/h3&gt;

&lt;p&gt;Backend usablity is hard to quantify, although we could compare some typical use cases like adding and publishing a new page, replacing an image, or collaborating remotely while working on the same document. We might count necessary clicks, server response time and availability, or the statistical the risk of an error.&lt;/p&gt;

&lt;p&gt;While I'd prefer a slow and akward backend that works over a better one that's unreliable or breaks my installation, but still it's no fun to work with either.&lt;/p&gt;

&lt;p&gt;Developer experience beyond the backoffice dashboard: is it easy to customize features? Are there official APIs and up-to date documentation? Are we allowed to override core code or do we need a plan upgrade just to paste two lines of inline JavaScript?&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO and Accessibility Best Practices
&lt;/h3&gt;

&lt;p&gt;We can hardly measure success, as anything related to user engagement and search engine optimization is hard to attribute to specific changes to the website itself or external factors like backlinks, marketing campaigns, unless we have enough time and traffic for meaningful A/B testing and a data analyst who knows their bussiness and gets paid accordingly. Smalls startups aren't typically in such a situation. Most browsers omit referer data for security reasons, and ad blockers prevent client-side tracking. We can still follow best practices for on-site technical SEO and off-site marketing anyway. &lt;/p&gt;

&lt;h4&gt;
  
  
  Technical SEO and Structured Data
&lt;/h4&gt;

&lt;p&gt;Structured content with semantic markup also depends a lot on content editors. Sub-headlines, lists, captions, invisible metadata, and schema attributes help search engines and assistive technology to understand a website. Deciding on what to write where using which keywords is an art hard to master and measure, and as a web developer, I can only provide you the appropriate tools and advice to make that possible.&lt;/p&gt;

&lt;p&gt;On the other hand, choosing the wrong technology might make your good content hard to discover and discern even if you put a lot of effort into getting everything right.&lt;/p&gt;

&lt;h4&gt;
  
  
  Tools to Measure SEO and Accessiblity
&lt;/h4&gt;

&lt;p&gt;However, there are checklists of best practices and official (legal) requirements like sufficient color contrast, and we can simply count the number of failed or passed checks to get numbers to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frontend Performance and Usability
&lt;/h2&gt;

&lt;p&gt;Let's focus on the frontend and measurable metrics that can be compared and repeated empirically with automated audits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Lighthouse/PageSpeed audit (incl. tech. SEO, and accessibility)&lt;/li&gt;
&lt;li&gt;EDPB (WEC) website-audit (by the European Union)&lt;/li&gt;
&lt;li&gt;WAVE accessibility (a11y) audit&lt;/li&gt;
&lt;li&gt;Ecograder&lt;/li&gt;
&lt;li&gt;Websitecarbon&lt;/li&gt;
&lt;li&gt;Webpagetest (WPT)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Aspects and Metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Time to Interactive (ms)&lt;/li&gt;
&lt;li&gt;Interaction to Next Paint (ms)&lt;/li&gt;
&lt;li&gt;Initial Page Weight (KB)&lt;/li&gt;
&lt;li&gt;Accessibility Compliance (number of errors)&lt;/li&gt;
&lt;li&gt;Ecological Footprint (CO2e)&lt;/li&gt;
&lt;li&gt;Green Hosting (boolean)&lt;/li&gt;
&lt;li&gt;SEO/Best Practices (percentage)&lt;/li&gt;
&lt;li&gt;Overall Lighthouse/PageSpeed Score (percentage)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Synthetic Data Analysis
&lt;/h2&gt;

&lt;p&gt;I had created and published the following websites for the sake of this experiment. They were all hosted on the same server and contain similar content, as far as possible. At this point, I nearly gave up already.&lt;/p&gt;

&lt;p&gt;I didn't compare specific online shop performance metrics yet. That's probably worth another case study, including Shopify and Shopware for an e-commerce-focused feature.&lt;/p&gt;

&lt;p&gt;There is no free e-commerce option at all, and free plans of website builders like Wix or Webflow only offer limited functionality, and Squarespace onl offers a short free trial period, so it's hard to compare website projects realistically.&lt;/p&gt;

&lt;p&gt;Even if I wanted to spend the money, I don't have enough time and motivation to do this properly, setting up test environments, ensuring comparable server performance and caching options etc. and so I have my gut feeling from working with several of those components eventually. Maybe it doesn't even make sense to compare minimal installations and then the whole endeavour becomes even more complicated.&lt;/p&gt;

&lt;h3&gt;
  
  
  A More Pragmatic Data Analysis Approach
&lt;/h3&gt;

&lt;p&gt;So, I downsized my original experiment ideas to a pragmatic WordPress vs. WordPress experiment just by switching themes and plugins on the very same server instance (Prelovedshop.de) with the same pages, posts, products, and images, and run a small set of audits on the home pages that features a selection of products and post teasers. What I would have studied might be a setup like the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WordPress + WooCommerce + Elementor&lt;/li&gt;
&lt;li&gt;WordPress + WooCommerce + Divi&lt;/li&gt;
&lt;li&gt;WordPress + WooCommerce + Twenty Twenty-Five&lt;/li&gt;
&lt;li&gt;WordPress + WooCommerce + Twenty Twenty-Five Child, optimized&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Audits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lighthouse (page load, accessibility, privacy, SEO)&lt;/li&gt;
&lt;li&gt;SEObility (free plan)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a more hands-on scenario, and additionally, I could compare some of those values to real customer projects, "heavier" with more data, including images and even video, but also crafted more thoroughly than a quick tech demo like the half-baked second-hand shop without any real business value.&lt;/p&gt;

&lt;p&gt;Disclaimer: I didn't fully conduct any the research that I conceived above. I still have some consistent insights gathered from anecdotal observation across a lot of small to large customer projects across businesses for more than a decade.&lt;/p&gt;

&lt;p&gt;Key takeaways so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't overthink and overengineer demo sites!&lt;/li&gt;
&lt;li&gt;My optimized WordPress theme wins for sure, but only marginally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example with no content at all, the default Twenty Twenty-Five WordPress theme reaches an overall 93/100 Lighthouse performance score, slightly topped by my custom theme's 99/100, but both have 100/100 accessibility and best practice, and most real websites profit most from properly using and optimizing images and videos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real World Use Cases
&lt;/h2&gt;

&lt;p&gt;While demo site examples can be compared and measured quantitatively, they might not convince customers as much as real websites do. I maintain other customer projects that I don't want to mention here, as they still use Webflow or WordPress page builders that I wouldn't recommend to use for a new project. I have also worked on corporate projects using React, Shopware, or Java-based software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It might come as no surprise, that I prefer not to work with Wix, Webflow, Squarespace, HubSpot or WordPress page builders as a web expert. I'd rather build a static website from scratch, use tools like Astro, Eleventy and React, or build a custom WordPress theme as a compromise between ready-made elements and customizability.&lt;/p&gt;

&lt;p&gt;As a web designer, WordPress spares you from learning web development details, while stille offering more freedom of choice for a lower price compared to purely commercial hosting services. You can focus on your design or share development tasks between web designer and web developer.&lt;/p&gt;

&lt;p&gt;Many business owners know WordPress or are willing to learn how to edit their content, and if set up correctly, we can keep running costs low for everyone and focus on what makes our designs and business ideas special.&lt;/p&gt;

&lt;p&gt;Compared to Webflow and Wix, WordPress is the clear winner according to my metrics and my professional experience. And compared to page builders like Elementor or Divi, and an umodified default WordPress block theme, my optimized individual (child) theme wins within the WordPress ecosystem.&lt;/p&gt;

&lt;p&gt;Further reading: &lt;a href="https://dev.to/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8"&gt;Balancing CMS, Custom Code and Business Logic&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" class="crayons-story__hidden-navigation-link"&gt;Balancing CMS, Custom Code and Business Logic&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" width="166" height="102"&gt;&lt;/a&gt;
              
              &lt;div id="story-author-preview-content-3327857" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 3&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" id="article-link-3327857"&gt;
          Balancing CMS, Custom Code and Business Logic
        &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/shopware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;shopware&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8" 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="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&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/ingosteinke/balancing-cms-custom-code-and-business-logic-1bd8#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&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;
            6 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>webdev</category>
    </item>
    <item>
      <title>An erratic Xfce4 Black Screen (WIP)</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Fri, 16 Jan 2026 09:33:54 +0000</pubDate>
      <link>https://forem.com/ingosteinke/an-erratic-xfce4-black-screen-wip-2do3</link>
      <guid>https://forem.com/ingosteinke/an-erratic-xfce4-black-screen-wip-2do3</guid>
      <description>&lt;p&gt;Although I remain skeptical about AI, it often helps when you're quite clueless and have nothing to lose: even hallucinated lies can be better than nothing and might inspire creative solutions beyond. After AI helped me find an overlooked aspect of my recurring &lt;a href="https://dev.to/ingosteinke/there-is-still-no-internet-how-to-prevent-premature-timeouts-on-ubuntu-5hdk"&gt;network connectivity issues with public Wi-Fi in German trains&lt;/a&gt;, I was hopeful to resolve my erratic black screen issues as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Erratic Black Screen Issues on Linux
&lt;/h2&gt;

&lt;p&gt;I chose Linux Xfce on purpose for its classic UI and conservative lightweight energy usage. However, not choosing mainstream means not getting mainstream support, unless you hire an expert or take your time to fiddle with arcane system settings hoping to learn anything and feel proud of your nerdy half-knowledge.&lt;/p&gt;

&lt;p&gt;I already examined several logfiles and configurations, as detailed in one of the numerous forum threads about erratic black screen issues on Xfce:&lt;br&gt;
&lt;a href="https://forum.xfce.org/viewtopic.php?id=18738" rel="noopener noreferrer"&gt;https://forum.xfce.org/viewtopic.php?id=18738&lt;/a&gt;&lt;br&gt;
&lt;a href="https://forums.linuxmint.com/viewtopic.php?t=450484" rel="noopener noreferrer"&gt;https://forums.linuxmint.com/viewtopic.php?t=450484&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Half a year later, I lazily prompted Perplexity, which readily spat out a too-long-don't-read style mix of information that might or might not be helpful in my situation. Leveraging large language model technology, I then asked it to compare its answer with my forum thread on summarize only what I hadn't tried before.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.perplexity.ai/search/i-have-occasional-problems-tha-qusAirrqRtKaXXbujzdYzA#1" rel="noopener noreferrer"&gt;https://www.perplexity.ai/search/i-have-occasional-problems-tha-qusAirrqRtKaXXbujzdYzA#1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The link points to the AI conversation at the time of writing. The paragraphs below are based on that answer and helpful comments in the forum thread. That's a community effort after all, as AI wouldn't find any useful suggestions without prior work of real people making an effort to understand and explain. There are numerous other posts and threads about similar black screen issues, including &lt;a class="mentioned-user" href="https://dev.to/an3223"&gt;@an3223&lt;/a&gt; Ethan's XFCE blank/black screen with cursor after login (solution) on DEV.to. His solution was to delete ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml as suggested on the Arch wiki and on this thread from the Nvidia forums.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/an3223/xfce-blankblack-screen-with-cursor-after-login-solution-5fce"&gt;https://dev.to/an3223/xfce-blankblack-screen-with-cursor-after-login-solution-5fce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/Xfce#Black_screens_at_boot_with_NVIDIA_and_multiple_monitors" rel="noopener noreferrer"&gt;https://wiki.archlinux.org/index.php/Xfce#Black_screens_at_boot_with_NVIDIA_and_multiple_monitors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devtalk.nvidia.com/default/topic/1029381/linux/black-screen-at-desktop-login-gtx-750-ti-390-25-/3?fbclid=IwAR23GSnvpGS3IKRfYFqdS3ma1Je9NLfkbVemqwHMVT02P_nlZ3BSswnkMiw" rel="noopener noreferrer"&gt;https://devtalk.nvidia.com/default/topic/1029381/linux/black-screen-at-desktop-login-gtx-750-ti-390-25-/3?fbclid=IwAR23GSnvpGS3IKRfYFqdS3ma1Je9NLfkbVemqwHMVT02P_nlZ3BSswnkMiw&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The issue
&lt;/h3&gt;

&lt;p&gt;When I log into an Xfce4 session, the screen stays black, there is only a movable mouse pointer, but no menus, no right click, nothing interactive. Xfce, xfwm and compositor still work, as I can see when I either force another X session from a text cosole, or when I am lucky that one of the workarounds leads to a fully functional working Xfce desktop session.&lt;/p&gt;

&lt;p&gt;Xfce4 is running on Linux Mint 22. However, similar Xfce issues have been reported on Arch Linux and other Mint versions as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diagnostics and Observations
&lt;/h3&gt;

&lt;p&gt;System information from &lt;code&gt;lsb_release -a &amp;amp;&amp;amp; uname -a &amp;amp;&amp;amp; inxi &amp;amp;&amp;amp; sudo lshw -C display &amp;amp;&amp;amp; echo $XDG_SESSION_TYPE &amp;amp;&amp;amp; xfwm4 --version&lt;/code&gt; and diagnosis tool, contents of ~/.xsession-errors and /var/log/Xorg.0.log after a failed attempt: details can be found in the linked forum threads.&lt;/p&gt;

&lt;p&gt;The logs reflecting a defunct black screen session aren't showing any issues. No underrun log entries or any other logs that look related to the blackscreen issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workarounds and Failed Fixes
&lt;/h3&gt;

&lt;p&gt;I had the &lt;code&gt;xserver-xorg-video-intel&lt;/code&gt; package installed, but removing the obsolete package was not the solution yet.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The blackscreen issue used to happen erratically first, so a reboot "solved" the problem. One day, rebooting was not enough anymore.&lt;/li&gt;
&lt;li&gt;All other workarounds start with switching to a console session using Ctrl+Alt+F1&lt;/li&gt;
&lt;li&gt;if there is no cursor, type any key,&lt;/li&gt;
&lt;li&gt;log in at the login prompt,&lt;/li&gt;
&lt;li&gt;do one of the following:

&lt;ul&gt;
&lt;li&gt;remove blackbox screensaver: &lt;code&gt;sudo apt remove blackbox&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;get all updates: `sudo apt update &amp;amp;&amp;amp; sudo apt&lt;/li&gt;
&lt;li&gt;find, kill, and replace the running desktop session:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ps -aux | grep xfce&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;kill -9&lt;/code&gt; (+ the process id of the xfce session)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;startx&lt;/code&gt; or &lt;code&gt;startxfce4&lt;/code&gt; (without lightdm)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;switch back to the graphical desktop session using Ctrl+Alt+F7&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The system keeps behaving erratically. The black screen session that generated the logfiles above, later turned into a functional session when I switched back to it using Ctrl+Alt+F7, but most sessions don't. In rare occasions, after a reboot, everything works well without the black screen issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  Untested Fixes
&lt;/h3&gt;

&lt;p&gt;The hardware manufacturer, Tuxedo, and a Linux Mint forum user both suggested updating my BIOS, but I fear that I might risk getting even more problems, as I still hope this is just a software/configuration issue.&lt;/p&gt;

&lt;p&gt;Alternatively, the hardware manufacturer suggested to switch from their kernel to a default Linux kernel, but I fear I might lose working hardware support, especially for my laptop touchscreen.&lt;/p&gt;

&lt;p&gt;I could try enabling the experimental Intel Xe driver for my specific chip ID.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alternative Approaches
&lt;/h3&gt;

&lt;p&gt;Common troubleshooting suggestions cover session restarts, log checks, and kernel/BIOS notes similar to the forum thread, which remains unsolved with no replies beyond requesting logs.​&lt;/p&gt;

&lt;h4&gt;
  
  
  Diagnostics
&lt;/h4&gt;

&lt;p&gt;Check &lt;code&gt;xfce4-session logs&lt;/code&gt;: examine &lt;code&gt;~/.cache/sessions/xfce4-session-*:0&lt;/code&gt; for session restore errors, absent from forum post.​&lt;/p&gt;

&lt;p&gt;LightDM and systemd journals: Run &lt;code&gt;journalctl -b -u lightdm&lt;/code&gt; and &lt;code&gt;journalctl -b --user -u xfce4-session.service&lt;/code&gt; for DM-specific failures.​&lt;/p&gt;

&lt;h4&gt;
  
  
  more untried fixing suggestions
&lt;/h4&gt;

&lt;p&gt;Reset displays.xml: &lt;code&gt;mv ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml.bak&lt;/code&gt; then restart LightDM; targets multi-monitor config corruption.​&lt;/p&gt;

&lt;p&gt;Clear session cache systematically: &lt;code&gt;mv ~/.cache/sessions/* ~/.cache/sessions_backup/&lt;/code&gt; then test &lt;code&gt;startxfce4&lt;/code&gt;; prevents broken session reloads.​&lt;/p&gt;

&lt;p&gt;Test minimal session: Create temp user or disable autostart (&lt;code&gt;mv ~/.config/autostart/*.desktop ~/.config/autostart_disabled/&lt;/code&gt;); isolates user config vs. system issue.​&lt;/p&gt;

&lt;p&gt;Manual component start: From black screen TTY, &lt;code&gt;export DISPLAY=:0; xfce4-panel &amp;amp; xfdesktop &amp;amp;&lt;/code&gt; to verify if panel/desktop hangs.​&lt;/p&gt;

&lt;p&gt;Disable compositor: &lt;code&gt;xfconf-query -c xfwm4 -p /general/use_compositing -s false&lt;/code&gt;; rules out xfwm4 rendering stalls on Iris Xe.​&lt;/p&gt;

&lt;p&gt;Prevention: disable automatic session saving in Xfce's "Session and Startup" settings to avoid recurring cache corruption.​&lt;/p&gt;

&lt;p&gt;Only after further research (see conclusion and comments below) I found yet another alternative solution approach switching the display manager (or the entire desktop environment):&lt;/p&gt;

&lt;h3&gt;
  
  
  Alternative Desktops and Display Managers
&lt;/h3&gt;

&lt;p&gt;Asking narrow questions attracts narrow answers, both in specialized user forums and from AI chats that rarely question the question and its implicit assumptions.&lt;/p&gt;

&lt;p&gt;On DEV, &lt;a class="mentioned-user" href="https://dev.to/leob"&gt;@leob&lt;/a&gt; suggested, I might switch to another desktop environment. After further research, I tried and switched my display manager and switch the desktop from Xfce to Cinnamon (or Mate, but not Gnome or KDE, as the latter two are not officially supported for Linux Mint 22) and see if and when something breaks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Display Managers: LightDM, LXDM, SDDM
&lt;/h3&gt;

&lt;p&gt;Install and use an alternative display manager instead of LightDM is a good idea in theory, but what would be the alternative that's still supported for Linux Mint?&lt;/p&gt;

&lt;p&gt;It's not SDDM, which failed to start, hanging after login, no matter if I used the default (Wayland?) or switched back explicitly using x11. SDDM KDE stack dependencies don't make it an ideal replacement either.&lt;/p&gt;

&lt;p&gt;Alternative LXDM: minimal and traditional X11, no Wayland, no login screen customization. LXDM can be use as a drop-in replacement for LightDM on Linux Mint 22 XFCE. However, LXDM hangs at startup, just an unresponsive Linux Mint logo, not even an option to switch to a text console with Ctrl + Alt + F... so I had to reboot into recovery mode and I'm back at LightDM. Back on square one.&lt;/p&gt;

&lt;p&gt;I also tried another desktop environment:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;sudo apt install cinnamon-desktop-environment&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then log out and select Cinnamon in the session settings.&lt;/p&gt;

&lt;p&gt;Cinnamon desktop took a long time to set up so I first thought the black screen issue was back, but that's a one time issue - or at least, the second start was smooth.&lt;/p&gt;

&lt;p&gt;I'm still not a big Cinnamon fan, but that wouldn't matter much, if it solved the problem. But the black screen issue still occurs, erratically, not matter if I boot into Cinnamon or Xfce. So the desktop environment is not the root cause. Maybe it's the display manager. We'll never know.&lt;/p&gt;

&lt;p&gt;I will never feeld sure again that the black screen issue won't come back eventually, unless someone points to a convincing bug report that matches my problem exactly. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;One good thing about Linux is that you can still switch to a text console using Ctrl + Alt + F1 / F2 / F3 in most situations or hit Esc once during boot to enter recovery mode to reconfigure the system. And we have mobile browsers on our phones these days to facilitate research.&lt;/p&gt;

&lt;p&gt;Still, it can be hard to solve erratic issues and it's worth following different strategies in parallel, like asking on forums, researching risk-free configuration alternatives, and leveraging both AI and the human developer community to find a solution beyond the obvious suggestions.&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>I built a Mint Green Light Theme for IDEAs</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Wed, 07 Jan 2026 14:47:25 +0000</pubDate>
      <link>https://forem.com/ingosteinke/i-built-a-mint-green-light-theme-for-ideas-still-beta-4koi</link>
      <guid>https://forem.com/ingosteinke/i-built-a-mint-green-light-theme-for-ideas-still-beta-4koi</guid>
      <description>&lt;p&gt;Let's kick off the new year with a fresh new green theme designed to please your eyes and lift your spirit! &lt;a href="https://plugins.jetbrains.com/plugin/29656-mint-green-light-theme/" rel="noopener noreferrer"&gt;Mint Green Light Theme for IDEA&lt;/a&gt; is still beta (but better than never released). See known issues below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Euphoric Eucalyptus, Transformative Teal, Mint Green Light Theme for IDEAs
&lt;/h2&gt;

&lt;p&gt;When I heard that the color of the year 2026 might be in the greenish spectrum, I thought that's a good occasion to revive, finalize, and release my theme, which had been lurking on GitHub as an unfinished working draft by the name of &lt;a href="https://github.com/openmindculture/intellij-mint-green-light-theme" rel="noopener noreferrer"&gt;intellij-mint-green-light-theme&lt;/a&gt; for about two years.&lt;/p&gt;

&lt;p&gt;Reviewing my notes, pictures, and screenshot collages, I found other sources of inspiration like notebooks, Google's mint green Pixel phone, Linux Mint desktop themes, and, of course, the few existing green themes for my IDE.&lt;/p&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%2Fmlvuhm1w27s5rlosbqc0.png" 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%2Fmlvuhm1w27s5rlosbqc0.png" alt="Notes and fashion photo collage for a green theme"&gt;&lt;/a&gt;&lt;/p&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%2F5ru3u7xj15t1b44msub1.png" 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%2F5ru3u7xj15t1b44msub1.png" alt="Screenshot collage for a green theme with the text Euphoric Eucalyptus, Transformative Teal, Green Fashion, Mint Spring Green Theme for Ideas"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Misleading Moodboard Color Contrast
&lt;/h2&gt;

&lt;p&gt;Names and moodboard collages might be misleading for several reasons. Naming is creative and context-specific. Trend colors for fashion, interior design and glossy print magazines often don't like they're supposed to feel when reused with their official hex color codes in a web app or a website.&lt;/p&gt;

&lt;p&gt;That's also due to color contrast and preview size. Like those small swatch albums of thumbnail color samples that are hard to distinguish in miniature but make a great difference when painted on a wall or used as a full-screen background color.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing the Feeling
&lt;/h2&gt;

&lt;p&gt;That's why I said good bye to trend color codes while still being inspired by the feeling invoked by thoses beautiful names. Transformative teal and warm eucalyptus sound so much more positive and inspiring than Pantone's off-white official color of the year 2026. I made up more color names for a working draft CSS preview, like pistachio yellowish green, neon grass, faded footer, and light console.&lt;/p&gt;

&lt;p&gt;I hope that my theme will reflect my moodboard's spirit at least a little and that it can become another one of my current favorite editor themes, specifically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/16721-cute-pink-light-theme/" rel="noopener noreferrer"&gt;Cute Pink Light Theme&lt;/a&gt; (inspired by the VSCode theme)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/23794-orange-rain-light-theme/" rel="noopener noreferrer"&gt;Orange Rain Light Theme&lt;/a&gt; (my own creation)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/12100-dark-purple-theme" rel="noopener noreferrer"&gt;Dark Purple&lt;/a&gt; (by JetBrains)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I often switched between Dark Purple at night or on winter evenings and Cute Pink Light in the sun at high noon, while Orange Rain Light is a comforting allrounder and it has replaced Sepia themes from my previous favourites.&lt;/p&gt;

&lt;p&gt;I also admire and aspire the serene flow of existing greenish and yellowish themes that I compared in a previous post.&lt;/p&gt;

&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/ingosteinke/idea-themes-for-emotion-driven-development-27oa" class="crayons-story__hidden-navigation-link"&gt;IDEA themes for emotion-driven development&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-1761423" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/idea-themes-for-emotion-driven-development-27oa" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 21 '24&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/ingosteinke/idea-themes-for-emotion-driven-development-27oa" id="article-link-1761423"&gt;
          IDEA themes for emotion-driven development
        &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/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tooling"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tooling&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/ingosteinke/idea-themes-for-emotion-driven-development-27oa" 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/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/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;49&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/ingosteinke/idea-themes-for-emotion-driven-development-27oa#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              4&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;
            8 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;




&lt;p&gt;The greenish Light Green and Love Your Eyes theme felt a little too cold, while the yellowish Espresso and Sepia themes were not green enough. Also I don't like editor fonts with ligatures that display character sequences like &lt;code&gt;!==&lt;/code&gt; as single characters. While that might be correct in a traditional academic sense of typography and computing science, it still jars me when I'm coding.&lt;/p&gt;

&lt;p&gt;Don't get me wrong, I think that every working theme deserves its place in a theme selection, the more diversity, the better. But I also produced some themes that I wouldn't use for every day work, including Mocha Mouse, my mock contribution to last year's alleged trend color of the year according to the Pantone company.&lt;/p&gt;

&lt;p&gt;Although my Mocca Mouse got downloaded more than 1000 times, I don't consider it something serious to showcase. &lt;/p&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%2F2e53ip9pvdg6keju1k5q.png" 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%2F2e53ip9pvdg6keju1k5q.png" alt="Mocha Mouse theme download stats"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For comparison: my Orange Rain Light theme has been downloaded (only) 2600 times, while my Cute Pink Light Theme, my earliest public release, adapting an existing VSCode theme, has 87,296 total downloads by now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Care for Subtle Details
&lt;/h2&gt;

&lt;p&gt;My green light theme has kind of a dark pre-release history, as it used to break the IDE and I had no idea why, and I wasn't really happy with the first color palette. I took a closer look at my Orange Rain Light theme, as a stable working code to build upon, with a gentle color palette. I noticed its subtle details again, that connect the unequal blue and orange "rain" themes: thin hair lines (thanks to JetBrains' UI layout) colored in vivid, contrasting blue tones.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rebuilding Green based on Orange
&lt;/h3&gt;

&lt;p&gt;With the colour palettes side by side, I tried to apply the orange rain theme's visual rhythm to my newly designed green theme.&lt;/p&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%2F69b5c3npmntmb8ao8ni6.png" 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%2F69b5c3npmntmb8ao8ni6.png" alt="Palette editing screenshot"&gt;&lt;/a&gt;&lt;br&gt;
^ Work in progress screenshot: editing the green theme inspired by the orange one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mint Green Light Theme Release Candidate
&lt;/h2&gt;

&lt;p&gt;This is what it looks like when released as version 1.1.1 in January 2026:&lt;/p&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%2Feug58596bxoarmc9q4jt.png" 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%2Feug58596bxoarmc9q4jt.png" alt="Mint Green Light Theme screenshot in PhpStorm"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Known Issues
&lt;/h2&gt;

&lt;p&gt;This theme has issues!&lt;/p&gt;

&lt;p&gt;This theme &lt;a href="https://github.com/openmindculture/intellij-mint-green-light-theme/issues/5" rel="noopener noreferrer"&gt;occasionally breaks the UI&lt;/a&gt;, making the main menu inaccessible in PhpStorm 2024.2.5 on Linux Mint. &lt;strong&gt;Workaround&lt;/strong&gt;: if this happens, you can still use the context menu and open the settings with the top right gear icon button (see screenshot) and disable the theme. &lt;strong&gt;Solution&lt;/strong&gt;: ???&lt;/p&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%2Fkjygksw47hs7k0wy4246.png" 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%2Fkjygksw47hs7k0wy4246.png" alt="Settings icon screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apart from technical issues, some areas lack contrast and I'm still not 100% happy with the overall look and feel.&lt;/p&gt;

&lt;p&gt;Honestly, I'm quite disappointed that the current 1.1.1 version seems so unlike the stable orange theme that it was supposed to follow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Work in Progress
&lt;/h2&gt;

&lt;p&gt;As my Mint Green Light Theme is still a fresh release, feel free to comment and open &lt;a href="https://github.com/openmindculture/intellij-mint-green-light-theme/issues" rel="noopener noreferrer"&gt;GitHub issues&lt;/a&gt; if you find bugs or you'd rather see a slightly different shade of green on a certain part of your screen. Also, feel free to fork my code or adapt the theme to other editors like VSCode, Emacs, or whatever you use, or colorize other themeable software like Mozilla Firefox and Thunderbird accordingly.&lt;/p&gt;

&lt;p&gt;You can try out the latest theme version here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://plugins.jetbrains.com/plugin/29656-mint-green-light-theme/" rel="noopener noreferrer"&gt;https://plugins.jetbrains.com/plugin/29656-mint-green-light-theme/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>uxdesign</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Creative Web Developer: Updating my Profile/Portfolio as a Senior Web Developer</title>
      <dc:creator>Ingo Steinke, web developer</dc:creator>
      <pubDate>Mon, 15 Dec 2025 13:34:25 +0000</pubDate>
      <link>https://forem.com/ingosteinke/creative-web-developer-updating-my-profileportfolio-as-a-senior-web-developer-44kn</link>
      <guid>https://forem.com/ingosteinke/creative-web-developer-updating-my-profileportfolio-as-a-senior-web-developer-44kn</guid>
      <description>&lt;p&gt;As a senior frontend web developer with over 25 years of professional experience, I constantly keep learning, udating my web development skills and my professional profiles. It seems I cant' repeat and repost often enough:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ingo Steinke is a Berlin-based, creative, frontend-focused, freelance Senior Web Developer and certified Shopware Developer with more than 25 years of professional experience.&lt;/p&gt;

&lt;p&gt;Accessibility, responsive web design, React, TypeScript, JavaScript, CSS, HTML, PHP are among Ingo Steinke's expertise as a Senior Web Developer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Professional portfolio profiles on platforms differ in wording and word frequency partially due to structure and fixed headlines and properties like skill, availability, active, verified. On-page, different sub-pages focus on different aspects of my work, skill, and personality. Here is an overview of three different word clouds, halfway through my content update.&lt;/p&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%2F992duwlz07kp5fzaypq8.png" 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%2F992duwlz07kp5fzaypq8.png" alt="Word cloud collage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Words like web, website, web developer (Webentwickler, Web-Entwickler), websites, frontend, React, Shopware, performance, my name, and even frequent dates like 2025 dominate different sections of my portfolio pages. &lt;/p&gt;

&lt;p&gt;My updated &lt;a href="https://www.ingo-steinke.de/" rel="noopener noreferrer"&gt;profile/portfolio website as a web developer&lt;/a&gt; has four main pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;contact, home (teaser overview, former one-page portfolio)&lt;/li&gt;
&lt;li&gt;skills, services, offers and benefits&lt;/li&gt;
&lt;li&gt;projects and testimonials&lt;/li&gt;
&lt;li&gt;about me&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  About me, but for a different Audience?
&lt;/h3&gt;

&lt;p&gt;By the way: if you love this post's cover image, let me disappoint you: my website is more colorful and more professional than this nerdy collage. But if you love intermediate views, overlays, and artful experiments, check out my other DEV posts, as there might be something for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding Content without Losing Sight
&lt;/h3&gt;

&lt;p&gt;Additional pages with detailed information, like case studies about specific projects, benefits for certain target groups, like accessibility, sustainability and legacy maintenance, specific skills like being a certified Shopware developer, and a landing page as a freelance web developer based in Berlin are a sort of bridge head to add even more verbose content if that helps to get visibility and reach out to more potential customers as a web developer.&lt;/p&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%2Figznh8a36lt0h0bw6nqm.png" 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%2Figznh8a36lt0h0bw6nqm.png" alt="Screenshot collage of portfolio website pages"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found it helpful to zoom out and make a sitemap of screeshots that looks a bit like what I expect a designer shows me in Figma or XD when designing a new website.&lt;/p&gt;

&lt;p&gt;There are some more sub- and landing pages, PDF downloads, and everything both in English and German. My overview is like a design system, focusing on different types of modules and layouts. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Art of Omission and Deletion
&lt;/h3&gt;

&lt;p&gt;Marketing and keyword matching is more than shooting at a moving target. It's also a game of taboo: don't use the wrong words in the wrong place lest you dilute your focus and send the wrong signals!&lt;/p&gt;

&lt;p&gt;Words that must not be written include software that senior developers like to mock, but also words with double meanings or past projects tech stacks that sound too hobbyist or outdated from a modern professional perspective. Speaking of legacy traces, when was the last time you thoroughly checked your LinkedIn and other public profiles? When you google your name and examine beyond the top results, do you like what you see? Is that still you?&lt;/p&gt;

&lt;h3&gt;
  
  
  Misleading Profile Previews
&lt;/h3&gt;

&lt;p&gt;Double-checking my external profiles revealed not only outdated details but also funny quirks like the category Freelancer » art, culture and media » writers and poets that I landed in somehow. Profile previews can be misleading: in a private incognito window, LinkedIn shows only shows a very short excerpt of my profile description, so we must optimize the first few words here and use the banner image to show additional information. &lt;/p&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%2F2ydztu9ena0djaxmpswa.png" 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%2F2ydztu9ena0djaxmpswa.png" alt="Screenshots: professional freelancer profiles on three different platforms"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Social media profiles, articles like this one, posting &lt;a href="https://www.linkedin.com/in/ingosteinke/" rel="noopener noreferrer"&gt;on Linkedin&lt;/a&gt;, &lt;a href="https://substack.com/@ingosteinke" rel="noopener noreferrer"&gt;Substack&lt;/a&gt; notes, &lt;a href="https://www.instagram.com/webdeveloperingo/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;, and &lt;a href="https://www.freelancermap.de/profil/ingo-steinke" rel="noopener noreferrer"&gt;freelancermap&lt;/a&gt; might help marketing, so here we go. I will keep posting more valuable content for fellow developers in 2026, I promise!&lt;/p&gt;

&lt;h3&gt;
  
  
  Marketing for Developers
&lt;/h3&gt;

&lt;p&gt;I can't rewrite my life, but I can reword its story. I can emphasize professional expertise and experience, repeat relevant keywords and omit those that tend to attract the wrong clientele.&lt;/p&gt;

&lt;h4&gt;
  
  
  Skill, Joy, and Effort
&lt;/h4&gt;

&lt;p&gt;I'm a creative developer. I love people and they like my communication and documentation skills. I can code, and coding is a skill that includes structuring ideas and finding the right words and and expressions. Still, it's an extra effort to prompt, negotiate with customers and customer support, or write marketing copy. Still, I'm a developer who enjoys the focus and flow of coding in the zone of my thoughts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking forward to Refactoring
&lt;/h3&gt;

&lt;p&gt;I love being creative with words and ideas, and I love being creative with code. I imagine refactoring my script and style files, writing tests and TypeScript, will feel like a welcome change to long hours of overdue SEO optimization. Well, ask me again in a few weeks from now, and I might tell a different story. &lt;/p&gt;

&lt;h2&gt;
  
  
  Constantly Refactoring my refactored Website
&lt;/h2&gt;

&lt;p&gt;As I already said, updating my portfolio website is a constant process with minor and major updates, and I have been doing it before.   &lt;/p&gt;

&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/ingosteinke/constant-refactoring-refactoring-my-refactored-website-4pf" class="crayons-story__hidden-navigation-link"&gt;Constant Refactoring: Refactoring my refactored Website&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-2785453" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/constant-refactoring-refactoring-my-refactored-website-4pf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 20 '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/ingosteinke/constant-refactoring-refactoring-my-refactored-website-4pf" id="article-link-2785453"&gt;
          Constant Refactoring: Refactoring my refactored Website
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&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/ingosteinke/constant-refactoring-refactoring-my-refactored-website-4pf" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;24&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/ingosteinke/constant-refactoring-refactoring-my-refactored-website-4pf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              13&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;
            3 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;




&lt;p&gt;The biggest major update to my website, several years ago, took me three months, reflecting my new ambition as a self-employed freelancer, keeping up with modern and accessible web design and development.&lt;/p&gt;

&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/ingosteinke/creating-a-fast-and-beautiful-portfolio-website-using-html-css-and-eleventy-and-netlify-9f5" class="crayons-story__hidden-navigation-link"&gt;Creating a Fast ⚡ and Beautiful 🌼 Portfolio Website using HTML, CSS 🎨, Eleventy and Netlify&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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" alt="ingosteinke profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ingosteinke" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ingo Steinke, web developer
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ingo Steinke, web developer
                &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-604605" 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="/ingosteinke" 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%2F233697%2Fc55514eb-8ec3-47cf-8f65-5be0ef2b1849.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ingo Steinke, web developer&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/ingosteinke/creating-a-fast-and-beautiful-portfolio-website-using-html-css-and-eleventy-and-netlify-9f5" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 23 '21&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/ingosteinke/creating-a-fast-and-beautiful-portfolio-website-using-html-css-and-eleventy-and-netlify-9f5" id="article-link-604605"&gt;
          Creating a Fast ⚡ and Beautiful 🌼 Portfolio Website using HTML, CSS 🎨, Eleventy and Netlify
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/webperf"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webperf&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/eleventy"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;eleventy&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/netlify"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;netlify&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/ingosteinke/creating-a-fast-and-beautiful-portfolio-website-using-html-css-and-eleventy-and-netlify-9f5" 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/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;35&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/ingosteinke/creating-a-fast-and-beautiful-portfolio-website-using-html-css-and-eleventy-and-netlify-9f5#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              2&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;
            10 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;




&lt;p&gt;I refactor to innovate, facilitate, and clean up tech debt, and I refactor to update, improve and extend content, to add images and try out new CSS features like a broader choice of colors or apply findings and suggestions by new audits and inspections, to improve accessibility, usability and search engine optimization. &lt;/p&gt;

&lt;p&gt;Contact me if your team needs a &lt;a href="https://www.ingo-steinke.de/leistungen/webentwickler-berlin-freelancer.html" rel="noopener noreferrer"&gt;senior web developer in Berlin&lt;/a&gt; or remote!&lt;/p&gt;

&lt;p&gt;Comment if you agree, disagree or have an angle to add!&lt;/p&gt;

</description>
      <category>career</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
