<?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: Dusan Walla</title>
    <description>The latest articles on Forem by Dusan Walla (@webfluence_digital).</description>
    <link>https://forem.com/webfluence_digital</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%2F2528149%2F0cea1040-5c70-4359-824f-bd77722bd8ac.png</url>
      <title>Forem: Dusan Walla</title>
      <link>https://forem.com/webfluence_digital</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/webfluence_digital"/>
    <language>en</language>
    <item>
      <title>How I built my agency website using an AI agent squad — and why I'll never go back to the old way</title>
      <dc:creator>Dusan Walla</dc:creator>
      <pubDate>Fri, 01 May 2026 18:47:26 +0000</pubDate>
      <link>https://forem.com/webfluence_digital/how-i-built-my-agency-website-using-an-ai-agent-squad-and-why-ill-never-go-back-to-the-old-way-37la</link>
      <guid>https://forem.com/webfluence_digital/how-i-built-my-agency-website-using-an-ai-agent-squad-and-why-ill-never-go-back-to-the-old-way-37la</guid>
      <description>&lt;p&gt;I run &lt;a href="https://webfluence.digital/" rel="noopener noreferrer"&gt;WebFluence Digital&lt;/a&gt; — a one-person web design and SEO agency in Dublin. When it came time to rebuild my own site, I used the same AI agent pipeline I'd been building for clients. This is what that looked like.&lt;/p&gt;

&lt;p&gt;The constraint&lt;br&gt;
I needed a site that:&lt;/p&gt;

&lt;p&gt;Looks credible enough to sell premium web design to Irish SMEs&lt;br&gt;
Ranks for "web design dublin" and related local terms&lt;br&gt;
Demonstrates the actual output quality — eat your own cooking&lt;br&gt;
And I needed to build it fast, because I was simultaneously building the pipeline.&lt;/p&gt;

&lt;p&gt;The agent squad&lt;br&gt;
I run an 8-agent system called webfluence-squad — a Claude Code plugin where each agent owns a specific phase of the build and writes its output into Airtable. The next agent reads from it. No manual handoffs.&lt;/p&gt;

&lt;p&gt;Phase 1 (parallel): ux-researcher | brand-guardian | inclusive-visuals&lt;br&gt;
Phase 2:            visual-storyteller&lt;br&gt;
Phase 3 (parallel): ux-architect | image-prompt-engineer&lt;br&gt;
Phase 4:            ui-designer&lt;br&gt;
Phase 5:            senior-pm — QA, compile, deploy to Vercel&lt;br&gt;
ux-researcher scraped competitor agency sites and synthesised Dublin SME pain points — actual quotes from Reddit and Google reviews, not invented personas.&lt;/p&gt;

&lt;p&gt;brand-guardian locked the design system: #E9204F red, #0A0A0A background, Poppins 700/900 display, Inter body. WCAG contrast ratios checked before a single component was written.&lt;/p&gt;

&lt;p&gt;visual-storyteller turned the research into a scene-ordered storyboard — every section gets a narrative role, copy direction with actual headline drafts, and animation notes.&lt;/p&gt;

&lt;p&gt;ux-architect produced the full component spec: Tailwind v4 tokens, layout systems, animation triggers, responsive strategy — copy-paste-ready code.&lt;/p&gt;

&lt;p&gt;image-prompt-engineer wrote Imagen 3 prompts for every hero and section image. Iterated until approved against the brand direction.&lt;/p&gt;

&lt;p&gt;ui-designer rendered everything: production-ready Tailwind classes, interaction states, dark mode, accessibility notes.&lt;/p&gt;

&lt;p&gt;senior-pm compiled, QA'd, and shipped to Vercel.&lt;/p&gt;

&lt;p&gt;The stack&lt;br&gt;
Next.js 14 App Router, Tailwind CSS v4 with &lt;a class="mentioned-user" href="https://dev.to/theme"&gt;@theme&lt;/a&gt; inline, Framer Motion for scroll-scrubbed sequences, Lucide React, Vercel. Standard across all WebFluence builds.&lt;/p&gt;

&lt;p&gt;The SEO layer&lt;br&gt;
Before the build squad ran Phase 2, I fired a separate visibility audit — &lt;a href="https://github.com/webfluencedigital/visibility-strategist-repo" rel="noopener noreferrer"&gt;visibility-strategist&lt;/a&gt; — which produced the sitemap architecture, primary keyword per page, and FAQ schema specs. The new site was built to rank before it went live, not retrofitted after.&lt;/p&gt;

&lt;p&gt;The result&lt;br&gt;
&lt;a href="https://webfluence.digital/" rel="noopener noreferrer"&gt;webfluence.digital&lt;/a&gt; is live and indexed. 17 pages, dropdown nav, mobile drawer, contact form wired to Web3Forms. The same squad and stack I now use for every client build.&lt;/p&gt;

&lt;p&gt;Full write-up of the visibility audit methodology — including the open source tool — in the &lt;a href="https://webfluence.digital/#resources" rel="noopener noreferrer"&gt;WebFluence resources section&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>showdev</category>
      <category>website</category>
    </item>
    <item>
      <title>I built an AI agent that audits a site's visibility in both Google AND ChatGPT/Perplexity — here's how it works</title>
      <dc:creator>Dusan Walla</dc:creator>
      <pubDate>Fri, 01 May 2026 18:41:30 +0000</pubDate>
      <link>https://forem.com/webfluence_digital/i-built-an-ai-agent-that-audits-a-sites-visibility-in-both-google-and-chatgptperplexity-heres-277o</link>
      <guid>https://forem.com/webfluence_digital/i-built-an-ai-agent-that-audits-a-sites-visibility-in-both-google-and-chatgptperplexity-heres-277o</guid>
      <description>&lt;p&gt;Google rankings aren't the whole game anymore. I started noticing my clients' potential customers asking ChatGPT and Perplexity "best web designer in Dublin" and getting answers — answers that didn't include my clients.&lt;/p&gt;

&lt;p&gt;So I built a two-agent system that audits both: Wave 1 (traditional search) and Wave 2 (AI citation). It's open source.&lt;/p&gt;

&lt;p&gt;The problem it solves&lt;br&gt;
Classic SEO tools tell you where you rank in Google. They tell you nothing about whether ChatGPT mentions you when someone asks a relevant question.&lt;/p&gt;

&lt;p&gt;Both matter. Ignoring either leaves visible search traffic on the table.&lt;/p&gt;

&lt;p&gt;Two agents, two jobs&lt;br&gt;
seo-strategist handles Wave 1:&lt;/p&gt;

&lt;p&gt;Pulls live GSC data via Supermetrics&lt;br&gt;
Cross-references Ahrefs for keyword difficulty + volume&lt;br&gt;
Runs a mandatory cannibalization gate — if two pages compete for the same query, it stops and flags before doing any optimisation&lt;br&gt;
Outputs: Keyword Targets · Technical Audit · Sitemap Recommendations&lt;br&gt;
aeo-strategist handles Wave 2:&lt;/p&gt;

&lt;p&gt;Runs 30+ prompts across ChatGPT, Claude, Gemini, Perplexity&lt;br&gt;
Identifies "lost prompts" — queries where competitors get cited and you don't&lt;br&gt;
Writes FAQ/HowTo schema specs for the pages most likely to recover citations&lt;br&gt;
Outputs: Question Bank · AEO Questions · Content Calendar&lt;br&gt;
Both agents share one Visibility Plan record and coordinate through a joint Sitemap Recommendations tab.&lt;/p&gt;

&lt;p&gt;What the output looks like&lt;br&gt;
After running on WebFluence Digital's own site in April 2026, the squad produced:&lt;/p&gt;

&lt;p&gt;8 keyword targets with intent, KD, volume, and target page mapped&lt;br&gt;
8 AEO questions sourced from PAA, AnswerThePublic, and Reddit&lt;br&gt;
10 sitemap recommendations (the site needed to go from 1 page to 10 to compete)&lt;br&gt;
8 technical audit issues (3 Critical, 4 High, 1 Medium)&lt;br&gt;
12 content calendar entries in a 90-day cadence&lt;br&gt;
A branded PDF deliverable&lt;br&gt;
All written into Airtable. Permanent. Retainer-shaped.&lt;/p&gt;

&lt;p&gt;It's open source&lt;br&gt;
The plugin is on GitHub: &lt;a href="https://github.com/webfluencedigital/visibility-strategist-repo" rel="noopener noreferrer"&gt;visibility-strategist&lt;/a&gt;. Fork it, rebrand the PDF template, swap in your own niche knowledge. PRs welcome especially for non-Dublin, non-SME niche packs.&lt;/p&gt;

&lt;p&gt;Full breakdown of how I use this in client retainers is in the [WebFluence resources section](&lt;a href="https://webfluence.digital/#resources" rel="noopener noreferrer"&gt;https://webfluence.digital/#resources&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>seo</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Help Needed: Struggling to Set Up PHP Mailer for My Contact Form</title>
      <dc:creator>Dusan Walla</dc:creator>
      <pubDate>Thu, 05 Dec 2024 13:17:53 +0000</pubDate>
      <link>https://forem.com/webfluence_digital/help-needed-struggling-to-set-up-php-mailer-for-my-contact-form-3gpa</link>
      <guid>https://forem.com/webfluence_digital/help-needed-struggling-to-set-up-php-mailer-for-my-contact-form-3gpa</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I’m a digital marketing enthusiast and beginner in PHP, and I need some help with a problem on my website.&lt;/p&gt;

&lt;p&gt;My Website&lt;br&gt;
📍 &lt;a href="https://webfluence.digital/" rel="noopener noreferrer"&gt;WebFluence&lt;/a&gt;&lt;br&gt;
Specifically, the contact form here: &lt;a href="https://webfluence.digital/#pr__contact" rel="noopener noreferrer"&gt;Contact Form&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Issue&lt;br&gt;
The contact form came with a prebuilt PHP file located in includes/sendmail.php. Unfortunately, the script uses the outdated mail() function, which Hostinger (my hosting provider) told me is insecure and not recommended. They advised me to use PHPMailer, which is preinstalled on their business hosting plans.&lt;/p&gt;

&lt;p&gt;I’ve read articles about setting up PHPMailer, but honestly, it’s all a bit overwhelming for me since I’ve never worked with PHP before. The template author hasn’t responded, and I’m stuck trying to figure this out.&lt;/p&gt;

&lt;p&gt;Details&lt;br&gt;
Domain: Registered with GoDaddy&lt;br&gt;
Hosting: Hostinger Business Plan&lt;br&gt;
Current Mail Script: The outdated mail() function script is here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php

// Read the form values
$success = false;
$successTxt = "";
$senderName = isset( $_POST['name'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name'] ) : "";
$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email'] ) : "";
$subject = isset( $_POST['subject'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject'] ) : "";
$budget = isset( $_POST['budget'] ) ? preg_replace( "/^[A-Za-z0-9\\-\\.]+$/", "", $_POST['budget'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";
$txt = "Client budget: " . $budget . "\n\n"  . $message . "\n\n" . "Regards,\n\n" . $senderName . " | " .$senderEmail;

// If all values exist, send the email
if ( $senderName &amp;amp;&amp;amp; $senderEmail &amp;amp;&amp;amp; $message ) {
  $mailTo = "dusan@webluence.digital"; // change it to your host mail for example (contact@yourdomain.com).
  $headers = "From: " . $senderEmail;
  $success = mail( $mailTo, $subject, $txt, $headers );
  $successTxt = "&amp;lt;p class='uk-alert uk-alert-success uk-margin-large-bottom success' data-uk-alert=''&amp;gt;Thanks for contacting us. We will contact you ASAP!&amp;lt;/p&amp;gt;";
  echo $successTxt;
}

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What I Need&lt;br&gt;
I want to replace this script with a secure PHPMailer-based script. Hostinger has preinstalled PHPMailer, and I’ve been told it’s more reliable. I found an article about setting it up, but it’s too confusing for me as someone new to PHP.&lt;/p&gt;

&lt;p&gt;This is what I have right now:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php
require 'vendor/autoload.php';

use PHPMailer\PHPMailer\PHPMailer;

$mail = new PHPMailer;

$mail-&amp;gt;isSMTP();
$mail-&amp;gt;SMTPDebug = 0;
$mail-&amp;gt;Host = 'smtp.hostinger.com';
$mail-&amp;gt;Port = 587;
$mail-&amp;gt;SMTPAuth = true;
$mail-&amp;gt;Username = 'sales@webfluence.digital';
$mail-&amp;gt;Password = 'c;Ge?H9unUs#:T0J';
$mail-&amp;gt;setFrom('sales@webfluence.digital', 'Dusan Walla');
$mail-&amp;gt;addReplyTo('sales@webfluence.digital', 'Dusan Walla');

// Read the form values and sanitize them to prevent injection attacks
$senderName = isset($_POST['name']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name']) : ""; // Remove any characters that are not letters, numbers, spaces, dots, hyphens, or apostrophes
$senderEmail = isset($_POST['email']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email']) : ""; // Remove any characters that are not letters, numbers, dots, hyphens, underscores, or @
$subject = isset($_POST['subject']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject']) : ""; // Remove any characters that are not letters, numbers, spaces, dots, hyphens, or apostrophes
$budget = isset($_POST['budget']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['budget']) : ""; // Remove any characters that are not letters, numbers, spaces, dots, hyphens, or apostrophes
$message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; // Remove any email headers to prevent header injection

$mail-&amp;gt;addAddress('sales@webfluence.digital', 'Dusan Walla');
$mail-&amp;gt;Subject = $subject;
$mail-&amp;gt;Body = &amp;lt;&amp;lt;&amp;lt;EOD
Client budget: $budget

$message

Regards,

$senderName | $senderEmail
EOD;

if (!$mail-&amp;gt;send()) {
    echo 'Mailer Error: ' . $mail-&amp;gt;ErrorInfo;
} else {
    echo "&amp;lt;p class='uk-alert uk-alert-success uk-margin-large-bottom success' data-uk-alert=''&amp;gt;Thanks for contacting us. We will contact you ASAP!&amp;lt;/p&amp;gt;";
}
}
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;br&gt;
How do I replace this script with PHPMailer in the simplest way possible?&lt;br&gt;
Is there a step-by-step guide that breaks down what I need to do?&lt;br&gt;
How do I configure Hostinger’s SMTP settings in the script?&lt;br&gt;
Any help would be deeply appreciated! 🙏&lt;/p&gt;

&lt;p&gt;Additional Resources&lt;br&gt;
Here’s the article I was referring to: &lt;a href="https://www.hostinger.com/tutorials/send-emails-using-php-mail#PHPMailer_vs_mail_Function_Pros_and_Cons" rel="noopener noreferrer"&gt;How to Use PHPMailer for Secure Email Sending&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you in advance for your guidance! 😊&lt;/p&gt;

</description>
      <category>php</category>
      <category>development</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
