<?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>DEV Community: Khaled Sabry</title>
    <description>The latest articles on DEV Community by Khaled Sabry (@khaled_sabry_b3ce59424b84).</description>
    <link>https://dev.to/khaled_sabry_b3ce59424b84</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4176531%2F85d5595e-3543-4ca3-abff-200f87b128e0.jpg</url>
      <title>DEV Community: Khaled Sabry</title>
      <link>https://dev.to/khaled_sabry_b3ce59424b84</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/khaled_sabry_b3ce59424b84"/>
    <language>en</language>
    <item>
      <title>How to Extract a Website’s Design System into DESIGN.md for Your AI Builder</title>
      <dc:creator>Khaled Sabry</dc:creator>
      <pubDate>Wed, 21 Oct 2026 13:18:52 +0000</pubDate>
      <link>https://dev.to/khaled_sabry_b3ce59424b84/how-to-extract-a-websites-design-system-into-designmd-for-your-ai-builder-2fok</link>
      <guid>https://dev.to/khaled_sabry_b3ce59424b84/how-to-extract-a-websites-design-system-into-designmd-for-your-ai-builder-2fok</guid>
      <description>&lt;p&gt;Your AI builder has produced a working website. But visually, it feels like the same website everyone else is generating.&lt;/p&gt;

&lt;p&gt;You ask for something more distinctive. The gradient changes, the cards get larger, and the overall style stays familiar.&lt;/p&gt;

&lt;p&gt;If you use Lovable, Claude, Codex, Replit, or Cursor, you may have run into this problem: you know which websites you like, but translating that preference into implementation instructions takes work.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/XdjmZnrVjLY" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This article walks through a practical workflow with &lt;a href="https://preveo.io/" rel="noopener noreferrer"&gt;Preveo&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extract design guidance from a reference website.&lt;/li&gt;
&lt;li&gt;Put that guidance in a &lt;code&gt;DESIGN.md&lt;/code&gt; your AI builder can use.&lt;/li&gt;
&lt;li&gt;Apply it to your own project.&lt;/li&gt;
&lt;li&gt;Evaluate the implementation and correct the differences.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why another “make it modern” prompt may not help
&lt;/h2&gt;

&lt;p&gt;“Modern” can mean a spacious editorial layout, a compact dashboard, or a bright product landing page. It does not specify the decisions your builder needs to make.&lt;/p&gt;

&lt;p&gt;A useful design brief explains the relationships between elements: how headings compare with body text, how colors communicate hierarchy, how spacing groups information, and how repeated components stay consistent.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Design area&lt;/th&gt;
&lt;th&gt;What the guidance should clarify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Typography&lt;/td&gt;
&lt;td&gt;Heading hierarchy, body text, and label treatment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Colors&lt;/td&gt;
&lt;td&gt;Roles for backgrounds, text, accents, and borders&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spacing&lt;/td&gt;
&lt;td&gt;Padding, gaps, and distance between sections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layout&lt;/td&gt;
&lt;td&gt;Content widths, alignment, and arrangement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;Shared styling for buttons, cards, and navigation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Without this context, a builder has to fill in the gaps. Those guesses can take you back toward the same familiar visual patterns.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is DESIGN.md?
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;DESIGN.md&lt;/code&gt; is a Markdown file containing your project’s design guidance. It gives you a readable reference you can keep with the code, edit as decisions change, and share with teammates or AI agents.&lt;/p&gt;

&lt;p&gt;It does not have a universal schema, and creating the file does not guarantee that every tool will discover it automatically. Explicitly tell your builder to read and apply it.&lt;/p&gt;

&lt;p&gt;The useful part is the content: concrete rules that reduce ambiguity during implementation and review.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Extract a reference website’s design rules
&lt;/h2&gt;

&lt;p&gt;Preveo’s extraction workflow is designed to turn a reference website into design instructions in under 30 seconds. Timing can vary by page and run.&lt;/p&gt;

&lt;p&gt;To use it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://preveo.io/macros/Make-My-Website-Feels-Like-thi-eRxo45" rel="noopener noreferrer"&gt;the Preveo design-system macro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Use this Macro&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Visit the website whose visual style you want to use as a reference.&lt;/li&gt;
&lt;li&gt;Open the Preveo extension and hit &lt;strong&gt;Run&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review the extracted typography, colors, spacing, layout rules, and component styles.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Choose a reference that fits the kind of product you are building. A marketing page can provide useful inspiration for your landing page, but it may offer little guidance for a complex settings screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Review the output before adding it to your project
&lt;/h2&gt;

&lt;p&gt;The extraction gives you a starting point. Check that it captures the characteristics you actually want to carry into your project.&lt;/p&gt;

&lt;p&gt;Ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the guidance explain the visual hierarchy?&lt;/li&gt;
&lt;li&gt;Are the color roles clear enough to apply consistently?&lt;/li&gt;
&lt;li&gt;Does the spacing guidance preserve the reference’s density or openness?&lt;/li&gt;
&lt;li&gt;Which components need additional rules for my product?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A visible page cannot establish every rule in a website’s internal design system. You may need to add guidance for forms, validation, loading states, or other interactions that the reference does not show.&lt;/p&gt;

&lt;p&gt;Save the reviewed instructions as &lt;code&gt;DESIGN.md&lt;/code&gt; in your project, or pass the content directly to your builder if that better suits your workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Give the builder a scoped implementation task
&lt;/h2&gt;

&lt;p&gt;Attach or reference the document and explain where it should apply. Here is an example prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Read DESIGN.md and use it as the design reference for this project.

Start by applying it to the homepage:
- Follow its typography hierarchy and color roles.
- Use its spacing and layout principles.
- Apply consistent styles to repeated components.
- Adapt the reference to our content and responsive layouts.
- Preserve existing functionality.

After implementation, summarize any places where you had to
interpret or extend the design guidance.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Starting with one representative page gives you an opportunity to review the interpretation before extending it across the project.&lt;/p&gt;

&lt;p&gt;Use your own branding, content, and assets. The reference should help you articulate a visual direction that fits your product.&lt;/p&gt;
&lt;h2&gt;
  
  
  Other Articles
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://preveo.io/blogs/built-with-ai-give-visitors-a-reason-to-trust-your-website" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fpreveo.io%2Fcontent%2Fblogs%2Fhuman-made-design-score%2Fcover.webp" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://preveo.io/blogs/built-with-ai-give-visitors-a-reason-to-trust-your-website" rel="noopener noreferrer" class="c-link"&gt;
            Built With AI? Give Visitors a Reason to Trust Your Website.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Show the care behind your website with Preveo's Human Made Design Score badge. Evaluate your design, improve generic details, and share the results with visitors.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fpreveo.io%2Ficons%2Fpreveo-logo-v5-mini.webp" width="100" height="100"&gt;
          preveo.io
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;




&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://preveo.io/blogs/we-reviewed-an-ai-startups-website-with-preveo-heres-what-its-founder-said" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpreveo.io%2Fcontent%2Fblogs%2Fbaani-ai-case-study%2Fcover.png" height="449" class="m-0" width="799"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://preveo.io/blogs/we-reviewed-an-ai-startups-website-with-preveo-heres-what-its-founder-said" rel="noopener noreferrer" class="c-link"&gt;
            We Reviewed an AI Startup’s Website with Preveo. Here’s What Its Founder Said.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            How three Preveo evaluations of Baani AI’s website covered UX copy, cross-device performance, and SEO—and what its founder said when we shared the reports.
          &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;lt;div class="color-secondary fs-s flex items-center"&amp;gt;
        &amp;lt;img
          alt="favicon"
          class="c-embed__favicon m-0 mr-2 radius-0"
          src="https://preveo.io/icons/preveo-logo-v5-mini.webp"
          loading="lazy" /&amp;gt;
      preveo.io
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;

</description>
      <category>design</category>
      <category>webdev</category>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Worried your Website Looks AI Slop to visitors? here, this is to change that...</title>
      <dc:creator>Khaled Sabry</dc:creator>
      <pubDate>Sat, 17 Oct 2026 15:37:32 +0000</pubDate>
      <link>https://dev.to/khaled_sabry_b3ce59424b84/worried-your-website-looks-ai-slop-to-visitors-here-this-is-to-change-that-25gp</link>
      <guid>https://dev.to/khaled_sabry_b3ce59424b84/worried-your-website-looks-ai-slop-to-visitors-here-this-is-to-change-that-25gp</guid>
      <description>&lt;p&gt;You know that feeling when you open a website and think… “Yeah, another AI slop”?&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/ssYQCiKUQow" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The familiar layout. The headline that could belong to almost any business. The same cards, gradients, and illustrations you’ve seen everywhere else.&lt;/p&gt;

&lt;p&gt;You don’t want that to be someone’s first impression of your website, especially when you’ve spent hours making it your own.&lt;/p&gt;

&lt;p&gt;You rewrote the copy until it sounded like you. Replaced the placeholder images. Fixed the mobile layout. Adjusted the typography and spacing until the page finally felt right.&lt;/p&gt;

&lt;p&gt;Your visitors see the finished website and still think it is AI designed and will probably is good enough… that doesn’t give you the credit for all the work you have done behind the scenes.&lt;/p&gt;

&lt;p&gt;That’s why by adding a &lt;strong&gt;Human Made Design Score badge&lt;/strong&gt;: a way to share your website’s design evaluation on how much it is AI and how much it is from a person directly on your landing page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Does my site look like a person designed it?”&lt;/strong&gt; Preveo’s macro evaluates how intentional, distinctive, and polished your website looks. It highlights the details that support that impression, identifies areas that feel generic, and suggests improvements.&lt;/p&gt;

&lt;p&gt;Once you’ve reviewed your results, you can add your score badge to your landing page. Only if it is high other than that go back and optimize it to be more human like designs.&lt;/p&gt;

&lt;p&gt;For visitors, the badge offers a visible starting point. They can see the score making them sure that it is verified the quality is not the level of AI slop, then can click through to inspect the evaluation behind it: what was assessed and which details supported the result&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That transparency is where the badge can help build credibility.&lt;/strong&gt; You’re giving people something instantly gives them assurance it is not another AI slop&lt;/p&gt;

&lt;p&gt;Getting started is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://preveo.io" rel="noopener noreferrer"&gt;Preveo.io&lt;/a&gt; and click &lt;a href="https://preveo.io/macros/Does-my-site-look-like-a-perso-V3ROa8" rel="noopener noreferrer"&gt;Does my site look like a person designed it?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;“Use this Macro.”&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Open your website, launch the Preveo extension, and hit &lt;strong&gt;Run&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review your score and the suggested fixes.&lt;/li&gt;
&lt;li&gt;Make improvements, run the evaluation again, and add your badge to your landing page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Other Articles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://preveo.io/blogs/we-reviewed-an-ai-startups-website-with-preveo-heres-what-its-founder-said" rel="noopener noreferrer"&gt;We Reviewed an AI Startup’s Website with Preveo. Here’s What Its Founder Said.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/khaled_sabry_b3ce59424b84/css-works-in-chrome-but-not-safari-or-firefox-a-real-example-and-fix-2ho2"&gt;CSS Works in Chrome but Not Safari or Firefox? A Real Example and Fix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>aislop</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>We Reviewed an AI Startup’s Website with Preveo. Here’s What Its Founder Said.</title>
      <dc:creator>Khaled Sabry</dc:creator>
      <pubDate>Tue, 13 Oct 2026 13:59:32 +0000</pubDate>
      <link>https://dev.to/khaled_sabry_b3ce59424b84/we-reviewed-an-ai-startups-website-with-preveo-heres-what-its-founder-said-584j</link>
      <guid>https://dev.to/khaled_sabry_b3ce59424b84/we-reviewed-an-ai-startups-website-with-preveo-heres-what-its-founder-said-584j</guid>
      <description>&lt;h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2hssw3frw3xdb4xatxm3.png" alt="Preveo and Baani AI Website Evaluation Case Study" width="799" height="449"&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A real-world case study of how three AI-powered website evaluations helped start a conversation about better UX, performance, and Google visibility.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Building an AI product is hard. Getting people to discover it, understand its value, and sign up can be even harder.&lt;/p&gt;

&lt;p&gt;A founder can spend months building something genuinely useful, only to lose potential customers because the landing page doesn’t explain the product clearly, performs inconsistently across devices, or isn’t structured effectively for search engines.&lt;/p&gt;

&lt;p&gt;That’s exactly the kind of problem we’re trying to solve with &lt;a href="https://preveo.io/" rel="noopener noreferrer"&gt;Preveo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recently, we discovered &lt;strong&gt;Baani AI&lt;/strong&gt;, an AI product focused on Indian-language voice typing and meeting summaries.&lt;/p&gt;

&lt;p&gt;Instead of simply reaching out to its creator and asking him to try Preveo, we decided to do something different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We evaluated the website first, generated three reports, and shared the results with the founder.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;His response made the experiment worthwhile.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Product: Baani AI
&lt;/h2&gt;

&lt;p&gt;Baani AI addresses an important problem: making voice-based productivity tools more useful for people who speak Indian languages.&lt;/p&gt;

&lt;p&gt;The product supports workflows such as converting spoken language into editable text and producing meeting summaries and action items.&lt;/p&gt;

&lt;p&gt;It’s a compelling idea, particularly for users who naturally switch between Indian languages and English.&lt;/p&gt;

&lt;p&gt;But even a promising product faces three important questions when someone lands on its website:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can visitors immediately understand what the product does and why they should try it?&lt;/li&gt;
&lt;li&gt;Does the website deliver a good experience on different devices?&lt;/li&gt;
&lt;li&gt;Can search engines understand the content and connect it with relevant searches?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We wanted to see how Preveo could help answer these questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Evaluations, Three Opportunities to Improve
&lt;/h2&gt;

&lt;p&gt;We ran three different Preveo evaluations, each approaching the website from a different perspective.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Is the Website Communicating Its Value?
&lt;/h3&gt;

&lt;p&gt;The first evaluation focused on the landing page’s written content.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpj9mwsc70san1w5kjrrx.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpj9mwsc70san1w5kjrrx.png" alt="Preveo SEO and UX text optimization evaluation for Baani AI" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When someone discovers an unfamiliar AI product, they often decide within seconds whether to continue exploring.&lt;/p&gt;

&lt;p&gt;The headline, supporting text, feature descriptions, and calls to action all influence that decision.&lt;/p&gt;

&lt;p&gt;A website can explain what a product technically does without clearly communicating why someone needs it.&lt;/p&gt;

&lt;p&gt;Using Preveo’s &lt;strong&gt;UX Copy &amp;amp; Text Optimization Audit&lt;/strong&gt;, we evaluated the landing page’s messaging and identified opportunities to make its content clearer, more persuasive, and better aligned with visitor expectations.&lt;/p&gt;

&lt;p&gt;The evaluation focused on questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the headline communicate a meaningful benefit?&lt;/li&gt;
&lt;li&gt;Are the product’s capabilities explained in language potential customers can understand?&lt;/li&gt;
&lt;li&gt;Is there a clear reason to sign up or try the product?&lt;/li&gt;
&lt;li&gt;Could any wording create confusion or hesitation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters because bringing more visitors to a website is only part of the challenge. Visitors also need to understand what makes the product worth trying.&lt;/p&gt;

&lt;p&gt;Preveo turns this kind of evaluation into a visual report that can be shared with the team and used to guide copy improvements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/b05e86a2-5144-4f34-86e4-19f430eb0958" rel="noopener noreferrer"&gt;&lt;strong&gt;Explore Baani AI’s UX Copy &amp;amp; Text Optimization Report&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Performance: Does the Website Work Well Across Devices?
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6wtc6bcepvy0a3g1jfa4.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6wtc6bcepvy0a3g1jfa4.png" alt="Baani AI website performance comparison across five devices using Preveo" width="799" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Website performance across five devices.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For a product trying to attract new users, speed is part of the first impression.&lt;/p&gt;

&lt;p&gt;A website that loads quickly on a powerful laptop might behave very differently under mobile conditions.&lt;/p&gt;

&lt;p&gt;And because many potential customers discover products through their phones, looking at only one device can leave important problems unnoticed.&lt;/p&gt;

&lt;p&gt;We used Preveo’s &lt;a href="https://preveo.io/macros/Compare-Performance-Across-Dev-1xI9Xv" rel="noopener noreferrer"&gt;&lt;strong&gt;Page Performance Cross-Device Comparison&lt;/strong&gt;&lt;/a&gt; to examine the landing page under different device conditions.&lt;/p&gt;

&lt;p&gt;Rather than treating performance as a single number, this kind of evaluation helps teams compare the experience across devices and understand where investigation is needed.&lt;/p&gt;

&lt;p&gt;The report is designed to make performance differences more visible and easier to discuss.&lt;/p&gt;

&lt;p&gt;This is especially important for small teams, where developers need to decide which improvements deserve attention first.&lt;/p&gt;

&lt;p&gt;Performance also contributes to page experience, although improving performance alone doesn’t guarantee better Google rankings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/4bef64d9-13a5-4fbe-ab33-f710ee0077b6" rel="noopener noreferrer"&gt;&lt;strong&gt;Explore Baani AI’s Cross-Device Performance Report&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. SEO: Can Google Understand the Website?
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcdl4pknkpxi80ijy5vmz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcdl4pknkpxi80ijy5vmz.png" alt="Preveo SEO for BAANI" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UX and text optimization.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A good product doesn’t automatically become a discoverable product.&lt;/p&gt;

&lt;p&gt;Search engines need accessible, meaningful content to understand what a website offers and when it might be relevant to a search.&lt;/p&gt;

&lt;p&gt;For Baani AI, potential search topics include Indian-language voice typing, transcription, and AI meeting summaries.&lt;/p&gt;

&lt;p&gt;We used Preveo’s &lt;a href="https://preveo.io/macros/Suggest-Better-Words-and-Sente-Ytn0ln" rel="noopener noreferrer"&gt;&lt;strong&gt;SEO Improvement Report&lt;/strong&gt;&lt;/a&gt; to examine the landing page’s on-page search optimization.&lt;/p&gt;

&lt;p&gt;The evaluation focused on areas such as page metadata, heading structure, content clarity, and other signals that help search engines interpret the page.&lt;/p&gt;

&lt;p&gt;The objective wasn’t to promise a higher position on Google.&lt;/p&gt;

&lt;p&gt;It was to identify improvements that could make the page easier to understand, better structured, and more relevant to potential visitors.&lt;/p&gt;

&lt;p&gt;For early-stage founders, that distinction matters.&lt;/p&gt;

&lt;p&gt;You can’t force Google to rank a page. But you can improve the information and structure that Google uses to evaluate it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/df57b3bd-b1bc-43fc-be97-29c8cb0769f0" rel="noopener noreferrer"&gt;&lt;strong&gt;Explore Baani AI’s SEO Improvement Report&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happened When We Shared the Reports?
&lt;/h2&gt;

&lt;p&gt;After completing the evaluations, we contacted Rajveer, the creator of Baani AI.&lt;/p&gt;

&lt;p&gt;We opened by acknowledging the potential we saw in his product.&lt;/p&gt;

&lt;p&gt;Then, instead of sending a generic product pitch, we shared the three reports and explained why we thought each one was relevant.&lt;/p&gt;

&lt;p&gt;We talked about making the landing page more persuasive, investigating cross-device performance, and improving its structure for Google Search.&lt;/p&gt;

&lt;p&gt;We also included a link to Preveo’s wider collection of evaluation tools, such as its AI recommendation-readiness checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The entire outreach was centered on his website, not on promoting ours.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And Rajveer responded:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Nice to see the Reports about Baani Ai, My team is already working on these problems. I loved your product."&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff80t2pkm18gtnf2098r9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff80t2pkm18gtnf2098r9.png" alt="Baani AI founder Rajveer responds positively to Preveo website evaluation reports" width="800" height="757"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That response was particularly encouraging for two reasons.&lt;/p&gt;

&lt;p&gt;First, he recognized the problems as relevant enough that his team was already working on them.&lt;/p&gt;

&lt;p&gt;Second, he explicitly expressed appreciation for Preveo.io.&lt;/p&gt;

&lt;p&gt;We didn’t need to convince him that website quality mattered. The reports connected with issues his team already understood.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Lesson
&lt;/h2&gt;

&lt;p&gt;Founders building with AI tools can create and launch applications faster than ever.&lt;/p&gt;

&lt;p&gt;But generating a working website doesn’t automatically make that website effective.&lt;/p&gt;

&lt;p&gt;You still need to know whether people understand it, whether it performs well across devices, whether search engines can interpret it, and whether it creates enough confidence for someone to take action.&lt;/p&gt;

&lt;p&gt;That’s why we built Preveo.&lt;/p&gt;

&lt;p&gt;Not simply to tell someone their website has problems, but to help them &lt;strong&gt;see what needs attention, understand why it matters, and get guidance on how to improve it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Want to see what Preveo finds on your own website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explore the &lt;a href="https://preveo.io/macros" rel="noopener noreferrer"&gt;Preveo Macro Library&lt;/a&gt; and run an evaluation on your website.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: This case study is written by the team behind Preveo. Rajveer’s response is quoted from a direct exchange. Baani AI is featured as an independently evaluated product; this article does not imply a paid partnership, formal endorsement, or confirmed implementation of the recommendations.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Articles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://preveo.io/blogs/i-improved-my-websites-seo-score-from-77-to-96-using-one-ai-prompt" rel="noopener noreferrer"&gt;I Improved My Website’s SEO Score from 77 to 96 Using One AI Prompt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/khaled_sabry_b3ce59424b84/css-works-in-chrome-but-not-safari-or-firefox-a-real-example-and-fix-2ho2"&gt;CSS Works in Chrome but Not Safari or Firefox? A Real Example and Fix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>lovable</category>
      <category>evaluation</category>
    </item>
    <item>
      <title>CSS Works in Chrome but Not Safari or Firefox? A Real Example and Fix</title>
      <dc:creator>Khaled Sabry</dc:creator>
      <pubDate>Mon, 12 Oct 2026 12:01:44 +0000</pubDate>
      <link>https://dev.to/khaled_sabry_b3ce59424b84/css-works-in-chrome-but-not-safari-or-firefox-a-real-example-and-fix-2ho2</link>
      <guid>https://dev.to/khaled_sabry_b3ce59424b84/css-works-in-chrome-but-not-safari-or-firefox-a-real-example-and-fix-2ho2</guid>
      <description>&lt;p&gt;We've all been there.&lt;/p&gt;

&lt;p&gt;You write some CSS, open your page in Chrome, and everything works exactly as expected.&lt;/p&gt;

&lt;p&gt;Then you open Safari or Firefox.&lt;/p&gt;

&lt;p&gt;Suddenly, something that should be simple behaves completely differently.&lt;/p&gt;

&lt;p&gt;I recently came across an interesting &lt;a href="https://www.reddit.com/r/css/comments/1vm6exp/possible_css_bug/" rel="noopener noreferrer"&gt;Reddit discussion in r/css&lt;/a&gt; where a developer encountered exactly this problem.&lt;/p&gt;

&lt;p&gt;The interesting part? It wasn't a complicated layout, JavaScript framework, or browser animation.&lt;/p&gt;

&lt;p&gt;It was a small CSS example involving &lt;code&gt;@property&lt;/code&gt; and container style queries.&lt;/p&gt;

&lt;p&gt;I decided to reproduce the problem, compare its rendering across browsers using Preveo, and then test a possible fix.&lt;/p&gt;

&lt;p&gt;Here's what happened.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Original Problem: Same CSS, Different Results
&lt;/h2&gt;

&lt;p&gt;The original Reddit post, titled &lt;a href="https://www.reddit.com/r/css/comments/1vm6exp/possible_css_bug/" rel="noopener noreferrer"&gt;"Possible CSS Bug"&lt;/a&gt;, was published on August 12, 2026.&lt;/p&gt;

&lt;p&gt;The developer created a minimal example using a registered CSS custom property.&lt;/p&gt;

&lt;p&gt;The CSS looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@property&lt;/span&gt; &lt;span class="n"&gt;--im-a-color&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;syntax&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;"&amp;lt;color&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;inherits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;initial-value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.red&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.blue&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;@container&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the HTML contained three headings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;I should be black&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"red"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;I should also be black&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"blue"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;I should be green&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The expected result was straightforward:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Expected color&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;First heading (default)&lt;/td&gt;
&lt;td&gt;Black&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Second heading (&lt;code&gt;.red&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Black&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Third heading (&lt;code&gt;.blue&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Green&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The reason is the registered custom property's initial value.&lt;/p&gt;

&lt;p&gt;Since &lt;code&gt;--im-a-color&lt;/code&gt; starts at &lt;code&gt;red&lt;/code&gt;, a boolean style query should evaluate to true only when its computed value differs from that initial value.&lt;/p&gt;

&lt;p&gt;Chrome rendered the example as expected, but the original developer reported different behavior in Safari and Firefox.&lt;/p&gt;

&lt;p&gt;This raised an interesting question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was the CSS wrong, or were browsers interpreting the same CSS differently?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jsfiddle.net/vgn7xy8o/1/" rel="noopener noreferrer"&gt;Open the original JSFiddle&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Why This CSS Is Interesting
&lt;/h2&gt;

&lt;p&gt;The key line is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@container&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unlike a traditional media query, a container style query can apply CSS based on a custom property's computed value on an ancestor.&lt;/p&gt;

&lt;p&gt;When using the boolean form with a registered custom property, the condition is supposed to match when that value differs from its registered initial value.&lt;/p&gt;

&lt;p&gt;In our case:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial value: &lt;code&gt;red&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.red&lt;/code&gt; value: &lt;code&gt;red&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.blue&lt;/code&gt; value: &lt;code&gt;blue&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore, only the blue example should receive the green heading style.&lt;/p&gt;

&lt;p&gt;This isn't simply about whether a browser supports container queries. It's about whether its implementation produces the expected result for this particular condition.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Containment/Container_size_and_style_queries" rel="noopener noreferrer"&gt;MDN's documentation on container style queries&lt;/a&gt;, registered custom properties have specific matching behavior based on their initial values.&lt;/p&gt;

&lt;p&gt;That makes the original Reddit example particularly useful: it's small enough to isolate one browser behavior without introducing unrelated layout complexity.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. I Ran the Example Through Cross-Browser Testing
&lt;/h2&gt;

&lt;p&gt;Instead of trying to diagnose the problem by switching browsers manually, I used &lt;a href="https://preveo.io" rel="noopener noreferrer"&gt;Preveo&lt;/a&gt;, a tool I've been building to evaluate websites and identify UI problems.&lt;/p&gt;

&lt;p&gt;One of its capabilities is comparing how the same webpage renders in different browser engines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chromium&lt;/li&gt;
&lt;li&gt;Safari (WebKit)&lt;/li&gt;
&lt;li&gt;Firefox (Gecko)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is simple: load the same page in multiple browsers, capture the rendered results, and compare them visually.&lt;/p&gt;

&lt;p&gt;For this test, I used the original JSFiddle and ran a cross-browser evaluation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before Fix — Preveo Report&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvwjasdhqtggobozp84bc.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvwjasdhqtggobozp84bc.png" alt="Comparison on Preveo.io" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/559d20ec-b9f2-43ab-adb3-e0fa82d24de1" rel="noopener noreferrer"&gt;View the original cross-browser evaluation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The important thing wasn't just identifying which browser looked different. It was having a reproducible example and a visual reference that could be checked again after making a code change.&lt;/p&gt;

&lt;p&gt;This is especially useful with CSS because two browsers can accept the same declarations while producing different visual results.&lt;/p&gt;

&lt;p&gt;And when that happens in a real application, the consequences can be much more noticeable than a heading having the wrong color.&lt;/p&gt;

&lt;p&gt;Imagine the same kind of difference affecting a navigation bar, pricing card, product button, or an entire theme.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The Fix: Be Explicit About the Value
&lt;/h2&gt;

&lt;p&gt;For this particular example, I changed the container query from a boolean condition to an explicit value comparison.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@container&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@container&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's a small change, but an important one.&lt;/p&gt;

&lt;p&gt;The original condition asks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is the computed value different from the property's initial value?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The updated condition asks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is the computed value blue?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a more precise statement of what this particular example needs.&lt;/p&gt;

&lt;p&gt;I also added an explicit default heading color:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures the intended fallback appearance is clear rather than depending on inherited or browser-default text colors.&lt;/p&gt;

&lt;p&gt;The updated example also includes basic HTML document metadata and a small JavaScript diagnostic that logs the computed custom property and heading color.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jsfiddle.net/r9f0ea8o/" rel="noopener noreferrer"&gt;Open the updated JSFiddle&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  An important technical distinction
&lt;/h3&gt;

&lt;p&gt;The explicit query is a practical workaround for this use case, not a universal replacement for boolean style queries.&lt;/p&gt;

&lt;p&gt;For example, if the custom property were changed to &lt;code&gt;green&lt;/code&gt;, the original boolean query should still match because green differs from red.&lt;/p&gt;

&lt;p&gt;The explicit &lt;code&gt;blue&lt;/code&gt; query would not match.&lt;/p&gt;

&lt;p&gt;So this fix makes sense when the intended design is specifically tied to the blue value. It does not establish that the original CSS was invalid, nor does it resolve the underlying browser implementation discrepancy.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Running the Test Again
&lt;/h2&gt;

&lt;p&gt;After modifying the CSS, I evaluated the updated example through the same cross-browser workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After Fix — Preveo Report&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg2xu30a829mp8ztnb7sy.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg2xu30a829mp8ztnb7sy.png" alt="Comparison on preveo.io" width="799" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/ce7d04b8-45ee-4666-b1ea-ca95484fd0f4" rel="noopener noreferrer"&gt;View the updated cross-browser evaluation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the two versions if you want to compare them yourself:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Original&lt;/th&gt;
&lt;th&gt;Updated&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CSS example&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jsfiddle.net/vgn7xy8o/1/" rel="noopener noreferrer"&gt;Before JSFiddle&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://jsfiddle.net/r9f0ea8o/" rel="noopener noreferrer"&gt;After JSFiddle&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-browser evaluation&lt;/td&gt;
&lt;td&gt;&lt;a href="https://preveo.io/results/559d20ec-b9f2-43ab-adb3-e0fa82d24de1" rel="noopener noreferrer"&gt;Before report&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://preveo.io/results/ce7d04b8-45ee-4666-b1ea-ca95484fd0f4" rel="noopener noreferrer"&gt;After report&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The useful part of this workflow is being able to evaluate both versions rather than relying on one successful Chrome test.&lt;/p&gt;

&lt;p&gt;A proper regression check should verify that the updated result matches the intended appearance in every browser tested, not just that it looks better in one.&lt;/p&gt;

&lt;p&gt;For a small example like this, that means confirming the heading colors.&lt;/p&gt;

&lt;p&gt;For a production website, it could mean comparing entire pages, typography, component styles, and layout behavior.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. What I Learned from This Example
&lt;/h2&gt;

&lt;p&gt;There are three things I think developers should take away from this.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Browser support doesn't always mean identical behavior
&lt;/h3&gt;

&lt;p&gt;Seeing a feature listed as supported doesn't guarantee that every browser version handles every edge case identically.&lt;/p&gt;

&lt;p&gt;That doesn't automatically make one browser right and another wrong. The specification, implementation details, and exact browser versions all matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. A small reproducible example is incredibly valuable
&lt;/h3&gt;

&lt;p&gt;The original developer reduced the problem to three headings and a few CSS declarations.&lt;/p&gt;

&lt;p&gt;That made it much easier to understand what was being tested.&lt;/p&gt;

&lt;p&gt;If you encounter an unexpected rendering difference, isolating the smallest possible example is often more productive than debugging an entire application.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Test the fix across browsers, not just where the problem appeared
&lt;/h3&gt;

&lt;p&gt;It's possible to fix something in Safari and accidentally change the appearance in Chrome.&lt;/p&gt;

&lt;p&gt;That's why I prefer comparing the original and updated versions across multiple browser engines.&lt;/p&gt;

&lt;p&gt;The goal isn't simply to remove one visual difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal is to make sure the intended experience works consistently for everyone.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Why I Think Cross-Browser Testing Still Matters
&lt;/h2&gt;

&lt;p&gt;Modern frontend development has become dramatically faster.&lt;/p&gt;

&lt;p&gt;We have AI coding assistants, component libraries, CSS frameworks, and tools that can generate entire interfaces from a prompt.&lt;/p&gt;

&lt;p&gt;But there's a problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generating the interface is not the same as validating the interface.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your application might work perfectly in the browser you use for development while looking different for someone opening it in Safari or Firefox.&lt;/p&gt;

&lt;p&gt;And often, you won't notice until a customer reports it.&lt;/p&gt;

&lt;p&gt;This is one of the problems I'm trying to address with &lt;a href="https://preveo.io" rel="noopener noreferrer"&gt;Preveo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead of manually opening every page in multiple browsers and trying to spot differences, I wanted a way to evaluate browser rendering side by side, identify meaningful inconsistencies, and produce actionable suggestions for fixing them.&lt;/p&gt;

&lt;p&gt;The example from Reddit is small, but it illustrates the larger issue perfectly.&lt;/p&gt;

&lt;p&gt;Even a few lines of valid-looking CSS can deserve cross-browser testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;What started as a Reddit post about a possible CSS bug became an interesting example of why cross-browser validation matters.&lt;/p&gt;

&lt;p&gt;The practical fix for this case was small:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* Before */&lt;/span&gt;
&lt;span class="k"&gt;@container&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c"&gt;/* ... */&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/* After */&lt;/span&gt;
&lt;span class="k"&gt;@container&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--im-a-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c"&gt;/* ... */&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But the bigger lesson is that &lt;strong&gt;CSS working in one browser isn't proof that it works everywhere&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you're building websites—whether manually, with React, using Lovable, or with an AI coding assistant—it's worth checking how the actual result looks across browsers before shipping.&lt;/p&gt;

&lt;p&gt;You can explore the example yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/css/comments/1vm6exp/possible_css_bug/" rel="noopener noreferrer"&gt;Original Reddit discussion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jsfiddle.net/vgn7xy8o/1/" rel="noopener noreferrer"&gt;Original CSS example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jsfiddle.net/r9f0ea8o/" rel="noopener noreferrer"&gt;Updated CSS example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://preveo.io/results/559d20ec-b9f2-43ab-adb3-e0fa82d24de1" rel="noopener noreferrer"&gt;Before: Cross-browser evaluation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://preveo.io/results/ce7d04b8-45ee-4666-b1ea-ca95484fd0f4" rel="noopener noreferrer"&gt;After: Cross-browser evaluation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you want to evaluate your own website across Chromium, Safari, and Firefox, you can try &lt;a href="https://preveo.io" rel="noopener noreferrer"&gt;Preveo.io&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have you ever had CSS work perfectly in Chrome but behave differently in Safari or Firefox? I'd be interested to hear which browser differences have caused you the most trouble.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Articles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/@khaledsab1997/i-improved-my-websites-seo-score-from-77-to-96-using-one-ai-prompt-a42ce9afcbf6" rel="noopener noreferrer"&gt;I Improved My Website’s SEO Score from 77 to 96 Using One AI Prompt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>I Improved My Website’s SEO Score from 77 to 96 Using One AI Prompt</title>
      <dc:creator>Khaled Sabry</dc:creator>
      <pubDate>Sun, 11 Oct 2026 07:31:35 +0000</pubDate>
      <link>https://dev.to/khaled_sabry_b3ce59424b84/i-improved-my-websites-seo-score-from-77-to-96-using-one-ai-prompt-4cdo</link>
      <guid>https://dev.to/khaled_sabry_b3ce59424b84/i-improved-my-websites-seo-score-from-77-to-96-using-one-ai-prompt-4cdo</guid>
      <description>&lt;h3&gt;
  
  
  How I used an AI-powered SEO evaluation, generated a fix prompt, and let Codex handle the improvements.
&lt;/h3&gt;

&lt;p&gt;I've been building my website for a while, and like many developers using AI tools, I assumed that if the page looked good and worked properly, the SEO was probably fine too.&lt;/p&gt;

&lt;p&gt;Turns out, I was missing quite a few things.&lt;/p&gt;

&lt;p&gt;I decided to run an SEO evaluation on my website using &lt;a href="https://preveo.io/" rel="noopener noreferrer"&gt;Preveo.io&lt;/a&gt; to see what could be improved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My initial score was 77/100.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not terrible, but definitely room for improvement.&lt;/p&gt;

&lt;p&gt;What surprised me wasn't the score itself. It was how many relatively small issues I had overlooked, and how straightforward some of them were to fix.&lt;/p&gt;

&lt;p&gt;Instead of spending hours manually going through the findings, I tried something different.&lt;/p&gt;

&lt;p&gt;I generated a single AI fix prompt, gave it to Codex, applied the changes, and evaluated the page again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result? 77 → 96. A 19-point improvement.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's what I did and what I learned.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Evaluate the Website Before Changing Anything
&lt;/h2&gt;

&lt;p&gt;One mistake I've made when improving websites is jumping straight into fixes without fully understanding what's wrong.&lt;/p&gt;

&lt;p&gt;This time, I wanted to start with an evaluation.&lt;/p&gt;

&lt;p&gt;I used an SEO evaluation macro called &lt;a href="https://preveo.io/macros/Improve-Page-SEO-XStnmf" rel="noopener noreferrer"&gt;Improve Page SEO&lt;/a&gt; in Preveo.&lt;/p&gt;

&lt;p&gt;The macro analyzes the actual webpage, looking at elements such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Page title and meta description&lt;/li&gt;
&lt;li&gt;H1 and heading hierarchy&lt;/li&gt;
&lt;li&gt;Content structure and keyword clarity&lt;/li&gt;
&lt;li&gt;Image alt attributes&lt;/li&gt;
&lt;li&gt;Internal and external links&lt;/li&gt;
&lt;li&gt;Canonical URLs and indexing signals&lt;/li&gt;
&lt;li&gt;Structured data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The useful part is that the evaluation isn't just based on how the website looks in a screenshot. It examines the on-page elements that search engines use to understand a website.&lt;/p&gt;

&lt;p&gt;After running it, I received a report showing which elements were already in good shape and which could benefit from changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My starting score: 77/100.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/a05b4996-e0a1-485e-ad67-48da44062696" rel="noopener noreferrer"&gt;View my original SEO evaluation&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Understand What Was Actually Hurting the Score
&lt;/h2&gt;

&lt;p&gt;Going through the findings reminded me that good SEO isn't necessarily about adding more keywords or writing longer content.&lt;/p&gt;

&lt;p&gt;Sometimes, it's about making the website easier to understand.&lt;/p&gt;

&lt;p&gt;Here are five lessons I took away from the process.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Your Headline Should Explain What You Do
&lt;/h3&gt;

&lt;p&gt;A catchy headline is great for marketing, but visitors and search engines also need to understand what your product actually offers.&lt;/p&gt;

&lt;p&gt;It communicates an idea, but without supporting context, it doesn't fully explain the product.&lt;/p&gt;

&lt;p&gt;A descriptive subheading can help connect that message to what the product does and who it's for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Keep your creative messaging, but make sure the surrounding content provides clarity.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Meta Descriptions Deserve Attention
&lt;/h3&gt;

&lt;p&gt;It's easy to spend hours designing a landing page and almost no time reviewing how it might appear in search results.&lt;/p&gt;

&lt;p&gt;Your page title and meta description are an opportunity to explain why someone should click.&lt;/p&gt;

&lt;p&gt;A good description should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Communicate what the page offers.&lt;/li&gt;
&lt;li&gt;Use natural language.&lt;/li&gt;
&lt;li&gt;Match the actual content.&lt;/li&gt;
&lt;li&gt;Avoid unnecessary keyword stuffing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Image Descriptions Matter
&lt;/h3&gt;

&lt;p&gt;Not every image needs a long description, but meaningful images should have relevant alt text.&lt;/p&gt;

&lt;p&gt;This helps accessibility and gives search engines additional context.&lt;/p&gt;

&lt;p&gt;For purely decorative images, an empty alt attribute can be more appropriate.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Your Content Needs a Clear Structure
&lt;/h3&gt;

&lt;p&gt;A website can look visually organized while having a confusing heading hierarchy underneath.&lt;/p&gt;

&lt;p&gt;Using headings consistently helps visitors navigate content and makes the page structure easier for search engines to interpret.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Small Technical Details Are Easy to Miss
&lt;/h3&gt;

&lt;p&gt;Canonical URLs, indexing directives, structured data, and descriptive links aren't always visible in the UI.&lt;/p&gt;

&lt;p&gt;That's exactly why reviewing the actual webpage matters.&lt;/p&gt;

&lt;p&gt;A visual inspection alone won't tell you whether everything is configured correctly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Generate One Fix Prompt Instead of Fixing Everything Manually
&lt;/h2&gt;

&lt;p&gt;This was my favorite part of the experiment.&lt;/p&gt;

&lt;p&gt;Once I had the SEO evaluation, I used its findings to create an AI fix prompt.&lt;/p&gt;

&lt;p&gt;The idea was simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rather than manually translate every recommendation into a code change, give a coding agent the relevant evidence and ask it to handle the confirmed issues.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I copied the prompt into &lt;strong&gt;Codex&lt;/strong&gt;, which had access to my website's codebase.&lt;/p&gt;

&lt;p&gt;The prompt instructed the agent to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Review the SEO evaluation findings.&lt;/li&gt;
&lt;li&gt;Verify each issue against the actual implementation.&lt;/li&gt;
&lt;li&gt;Identify which recommendations were genuinely necessary.&lt;/li&gt;
&lt;li&gt;Make the appropriate code changes.&lt;/li&gt;
&lt;li&gt;Avoid unnecessary changes just to improve the score.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That verification matters.&lt;/p&gt;

&lt;p&gt;AI-generated reports aren't automatically correct, and I didn't want changes made simply because a tool suggested them.&lt;/p&gt;

&lt;p&gt;The coding agent could inspect the existing implementation before editing anything.&lt;/p&gt;

&lt;p&gt;After the changes, I pushed the updated website and ran the same SEO evaluation again.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Run the Evaluation Again
&lt;/h2&gt;

&lt;p&gt;This was the moment I was most interested in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Did the changes actually improve anything?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The second evaluation came back with a score of &lt;strong&gt;96/100&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before vs. After
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SEO evaluation score&lt;/td&gt;
&lt;td&gt;77/100&lt;/td&gt;
&lt;td&gt;96/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Score improvement&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;+19 points&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evaluation method&lt;/td&gt;
&lt;td&gt;Preveo SEO Macro&lt;/td&gt;
&lt;td&gt;Same macro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code improvements&lt;/td&gt;
&lt;td&gt;Not yet applied&lt;/td&gt;
&lt;td&gt;Applied using Codex&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://preveo.io/results/6763dd4d-a782-490c-bc76-c9cda66737f6" rel="noopener noreferrer"&gt;View my updated SEO evaluation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One important distinction:&lt;/strong&gt; This was an improvement in the evaluation score, not proof of a 19% increase in Google rankings or organic traffic.&lt;/p&gt;

&lt;p&gt;Search performance takes time to measure, and better on-page SEO doesn't guarantee better rankings.&lt;/p&gt;

&lt;p&gt;But it did give me a measurable way to see whether the changes addressed the issues identified in the first review.&lt;/p&gt;

&lt;p&gt;And that's valuable on its own.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Workflow I Want to Keep Using
&lt;/h2&gt;

&lt;p&gt;The whole experience made me think differently about improving websites with AI.&lt;/p&gt;

&lt;p&gt;We have plenty of tools that help us build websites quickly.&lt;/p&gt;

&lt;p&gt;Lovable, Bolt, Replit, Cursor, Claude Code, and Codex are all examples of how much easier building has become.&lt;/p&gt;

&lt;p&gt;But once the website is built, there's another question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you know what still needs improvement?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's where I think an evaluation-first workflow makes sense.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Process
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Evaluate → Understand → Generate Fix Prompt → Apply Fixes → Re-evaluate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used &lt;a href="https://preveo.io/" rel="noopener noreferrer"&gt;Preveo&lt;/a&gt; for the evaluation and &lt;strong&gt;Codex&lt;/strong&gt; to make the code changes.&lt;/p&gt;

&lt;p&gt;The distinction is useful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Preveo:&lt;/strong&gt; Identifies what needs attention and generates actionable findings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codex:&lt;/strong&gt; Reviews the findings, verifies the issues, and implements the code changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preveo again:&lt;/strong&gt; Re-evaluates the website to measure the improvement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also means I don't have to rely entirely on how polished the page looks or whether the coding agent says it's finished.&lt;/p&gt;

&lt;p&gt;I can run another evaluation after making changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Few Things I'd Do Differently Next Time
&lt;/h2&gt;

&lt;p&gt;I learned that a higher score shouldn't be the only goal.&lt;/p&gt;

&lt;p&gt;Some SEO recommendations may not be appropriate for every page, and adding unnecessary keywords, sections, or structured data just to satisfy a checklist can make the website worse.&lt;/p&gt;

&lt;p&gt;Next time, I'd also track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Search Console impressions&lt;/li&gt;
&lt;li&gt;Organic search clicks&lt;/li&gt;
&lt;li&gt;Indexing status&lt;/li&gt;
&lt;li&gt;Search queries and ranking changes&lt;/li&gt;
&lt;li&gt;Actual organic traffic over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That would help distinguish improvements in on-page SEO implementation from actual changes in search performance.&lt;/p&gt;

&lt;p&gt;I'd also prioritize recommendations that genuinely help visitors understand and use the website, rather than treating every possible optimization as mandatory.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Going from &lt;strong&gt;77 to 96&lt;/strong&gt; was satisfying, but the bigger takeaway was the workflow.&lt;/p&gt;

&lt;p&gt;I didn't need to manually inspect every metadata field or write individual instructions for each issue.&lt;/p&gt;

&lt;p&gt;I could evaluate the page, identify meaningful improvements, let a coding agent implement the verified fixes, and run the evaluation again.&lt;/p&gt;

&lt;p&gt;If you're building a website using &lt;strong&gt;Lovable, Bolt, Replit, Codex&lt;/strong&gt;, or any other AI-assisted development tool, I'd recommend trying an evaluation before asking the AI to make random improvements.&lt;/p&gt;

&lt;p&gt;You might find problems you didn't even know to look for.&lt;/p&gt;

&lt;p&gt;And sometimes, one well-structured fix prompt is enough to make a noticeable difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources From My Experiment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://preveo.io/macros/Improve-Page-SEO-XStnmf" rel="noopener noreferrer"&gt;Improve Page SEO — the evaluation macro I used&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://preveo.io/results/a05b4996-e0a1-485e-ad67-48da44062696" rel="noopener noreferrer"&gt;Before: SEO evaluation scoring 77/100&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://preveo.io/results/6763dd4d-a782-490c-bc76-c9cda66737f6" rel="noopener noreferrer"&gt;After: SEO evaluation scoring 96/100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
