<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>EduardoVillão</title><description>Full-stack developer with 10+ years building real products. Writing about AI, software architecture, and the mindset behind building things that matter.</description><link>https://eduardovillao.me/</link><language>en</language><item><title>AI Without Standards Is Just Faster Chaos</title><link>https://eduardovillao.me/ai-without-standards-is-just-faster-chaos/</link><guid isPermaLink="true">https://eduardovillao.me/ai-without-standards-is-just-faster-chaos/</guid><description>Every engineering team I talk to is using AI. Nobody’s debating that anymore. What nobody’s talking about is that every developer on the same team is using it differently. The Problem Nobody Admits Ten developers. Ten different setups. Ten different rules files. Ten different prompting habits. Same codebase, same tickets, same sprint – ten different</description><pubDate>Mon, 27 Apr 2026 11:42:50 GMT</pubDate></item><item><title>Your 404 Logs Are a Security Report You’re Ignoring</title><link>https://eduardovillao.me/your-404-logs-are-a-security-report-youre-ignoring/</link><guid isPermaLink="true">https://eduardovillao.me/your-404-logs-are-a-security-report-youre-ignoring/</guid><description>Most WordPress developers install a redirect plugin, set up a few 301s, and never look at their 404 logs again. If they do, it’s for SEO, fixing broken links, cleaning up crawl errors. That’s the obvious use. But there’s something else in those logs that almost everyone ignores. Your 404 logs are a real-time map</description><pubDate>Wed, 22 Apr 2026 12:42:04 GMT</pubDate></item><item><title>What 150+ Feature Votes Taught Me About Building the Wrong Things</title><link>https://eduardovillao.me/what-150-feature-votes-taught-me-about-building-the-wrong-things/</link><guid isPermaLink="true">https://eduardovillao.me/what-150-feature-votes-taught-me-about-building-the-wrong-things/</guid><description>I’ve been using WPFeatureLoop on two of my own plugins for just over a month. In that time, I collected over 150 votes across 11 feature requests, and it already changed what I’m building next. Here’s what the data actually looks like, and what it taught me about my own blind spots as a developer.</description><pubDate>Wed, 22 Apr 2026 11:31:40 GMT</pubDate></item><item><title>In the AI Era, Soft Skills Are the Hard Skills</title><link>https://eduardovillao.me/in-the-ai-era-soft-skills-are-the-hard-skills/</link><guid isPermaLink="true">https://eduardovillao.me/in-the-ai-era-soft-skills-are-the-hard-skills/</guid><description>The more powerful AI gets, the more human the bottleneck becomes. You open a new chat, type a vague prompt, get a mediocre response, and blame the model. The model isn’t the problem. What Actually Changed For the past decade, the most valuable thing a developer could do was execute. Write the code, ship the</description><pubDate>Fri, 10 Apr 2026 17:55:18 GMT</pubDate></item><item><title>wp_add_inline_script doesn’t work in Block Themes (FSE) — Cause and Fix</title><link>https://eduardovillao.me/wp_add_inline_script-doesnt-work-in-block-themes-fse-cause-and-fix/</link><guid isPermaLink="true">https://eduardovillao.me/wp_add_inline_script-doesnt-work-in-block-themes-fse-cause-and-fix/</guid><description>You call wp_add_inline_script() inside a shortcode. It works fine on classic themes. You switch to a block theme — or your user does — and suddenly: nothing. No PHP error, no warning, just a silent failure and a X is not defined in the browser console. This is a known inconsistency tracked in WordPress Trac</description><pubDate>Tue, 24 Mar 2026 16:44:58 GMT</pubDate></item><item><title>How I Improved WPFeatureLoop’s Activation Rate by 80% with WordPress Playground</title><link>https://eduardovillao.me/how-i-improved-wpfeatureloops-activation-rate-by-80-with-wordpress-playground/</link><guid isPermaLink="true">https://eduardovillao.me/how-i-improved-wpfeatureloops-activation-rate-by-80-with-wordpress-playground/</guid><description>Most SaaS products have a gap between signup and the moment users actually get it. For WPFeatureLoop, that gap was brutal. Users would create an account, look at the dashboard, and then… nothing. The next step was installing an SDK via Composer. For a WordPress developer who just wanted to see if the tool was</description><pubDate>Fri, 20 Mar 2026 17:11:18 GMT</pubDate></item><item><title>Why You Should Stop Using left and right in CSS</title><link>https://eduardovillao.me/why-you-should-stop-using-left-and-right-in-css/</link><guid isPermaLink="true">https://eduardovillao.me/why-you-should-stop-using-left-and-right-in-css/</guid><description>Anyone who has been in programming for a while has gotten used to writing margin-left, padding-right, and rounded-l almost automatically. It’s muscle memory for any developer, and most people still write CSS like this: Or, in Tailwind: It works. It always has! But there are situations where this stops being just a detail and starts</description><pubDate>Thu, 12 Feb 2026 15:39:41 GMT</pubDate></item><item><title>Masky.js: A Lightweight Alternative to Inputmask, Cleave.js, and IMask</title><link>https://eduardovillao.me/masky-js-a-lightweight-alternative-to-inputmask-cleave-js-and-imask/</link><guid isPermaLink="true">https://eduardovillao.me/masky-js-a-lightweight-alternative-to-inputmask-cleave-js-and-imask/</guid><description>Finding the right input masking library can be tricky. There are many options, each with its pros and cons. Some are feature-packed but heavy, while others are lightweight but miss critical functionalities like validation or mobile-friendly optimizations. In today’s world, where performance and user experience are top priorities, selecting the right library is crucial. A</description><pubDate>Mon, 20 Jan 2025 16:28:07 GMT</pubDate></item><item><title>Exciting Updates for Form Masks for Elementor Free and PRO Versions!</title><link>https://eduardovillao.me/exciting-updates-for-form-masks-for-elementor-free-and-pro-versions/</link><guid isPermaLink="true">https://eduardovillao.me/exciting-updates-for-form-masks-for-elementor-free-and-pro-versions/</guid><description>We’re thrilled to announce the latest updates to Form Masks for Elementor, both for the Free and PRO versions. With these enhancements, we’ve taken form input control and customization to the next level. Whether you’re a Free version user or a PRO subscriber, there’s something new for you! What’s New in the PRO Version? Our</description><pubDate>Sun, 12 Jan 2025 23:46:13 GMT</pubDate></item><item><title>Handle Elementor Popup Events Without jQuery</title><link>https://eduardovillao.me/handle-elementor-popup-events-without-jquery/</link><guid isPermaLink="true">https://eduardovillao.me/handle-elementor-popup-events-without-jquery/</guid><description>If you’ve ever worked with Elementor and tried to manipulate its popups programmatically, you’ve probably noticed that the official documentation provides event handling examples only with jQuery. However, if you prefer a modern and lightweight solution using Vanilla JavaScript, this guide is for you. With the MutationObserver API, you can monitor changes to the DOM</description><pubDate>Wed, 08 Jan 2025 11:32:19 GMT</pubDate></item><item><title>How to Self-Host WordPress Plugins on Github and Deliver Updates</title><link>https://eduardovillao.me/how-to-self-host-wordpress-plugins-on-github-and-deliver-updates/</link><guid isPermaLink="true">https://eduardovillao.me/how-to-self-host-wordpress-plugins-on-github-and-deliver-updates/</guid><description>Managing plugin updates can be a challenge, especially if you’re not relying on the WordPress Plugin Repository. But what if you could self-host your plugins on GitHub and deliver updates seamlessly, without the need for complex libraries or third-party services? In this guide, I’ll walk you through a simple yet powerful solution that adheres to</description><pubDate>Thu, 26 Dec 2024 20:37:48 GMT</pubDate></item><item><title>Action after confirm payment on WooCommerce</title><link>https://eduardovillao.me/action-after-confirm-payment-on-woocommerce/</link><guid isPermaLink="true">https://eduardovillao.me/action-after-confirm-payment-on-woocommerce/</guid><description>You need start any action only payment is confirmed? If yes, this post will help you. This a simple but very efficient snippet. How to create action after payment confirmed on WooCommerce? Snippet to start specific function after payment is confirmed on WooCommerce. In this example, after payment is confirmed set the new value to</description><pubDate>Wed, 26 Feb 2020 16:40:15 GMT</pubDate></item><item><title>How to add a mask to the Elementor form [FREE]</title><link>https://eduardovillao.me/elementor-form-mask/</link><guid isPermaLink="true">https://eduardovillao.me/elementor-form-mask/</guid><description>Form Masks for Elementor create a custom control in field advanced tab for your customize your fields with masks. This plugin require the Elementor Pro (Form Widget). The masks function with filed types ‘text’ and ‘tel’. Add a mask to the Elementor form Just download the plugin in the WordPress directory and install it on</description><pubDate>Mon, 24 Feb 2020 13:07:51 GMT</pubDate></item><item><title>How to center Tabs on Elementor</title><link>https://eduardovillao.me/center-elementor-tabs/</link><guid isPermaLink="true">https://eduardovillao.me/center-elementor-tabs/</guid><description>Did you ever need to use the Elementor tabs widget (or Tabs), and needed to center the tabs, but did not find these options in the widget? (unfortunately this option does not even exist in the Widget). Yeah, you’re not the only one. I have received this doubts on social networks and through our consultancy.</description><pubDate>Mon, 11 Nov 2019 12:38:03 GMT</pubDate></item><item><title>How to center the Contact Form 7 submit button</title><link>https://eduardovillao.me/how-to-center-the-contact-form-7-submit-button/</link><guid isPermaLink="true">https://eduardovillao.me/how-to-center-the-contact-form-7-submit-button/</guid><description>This is a very common question of WordPress users: how to centralize the contact form 7 submit button? It’s easier than you think. I’ll show below. How to center the Contact Form 7 submit button To do this is very simple. You just need to create your contact form the way you want it, and</description><pubDate>Mon, 11 Nov 2019 12:20:16 GMT</pubDate></item></channel></rss>