I Got Tired of Paying for 3 SaaS Tools to Optimize One Website — So I Built Plyxo
Sameer HassanDev.to (EN Zone)
1 views
The problem that wouldn't leave me alone
A few months ago I was auditing a client's site and had five tabs open: Hotjar for heatmaps, Ahrefs for SEO, a spreadsheet for tracking fixes, ChatGPT for "why is this page not converting," and a half-finished Notion doc trying to tie it all together.
Somewhere around tab four, it hit me: none of these tools talk to each other, and none of them tell you what to actually do.
Hotjar and FullStory show you that people bounce off a page. They don't tell you why, and they definitely don't hand you a fix.
Ahrefs and SEMrush dump a spreadsheet of 300+ "issues" with no prioritization. Which one do you fix first? Good luck.
And increasingly, a growing slice of search traffic isn't coming from the 10 blue links at all — it's coming from ChatGPT Search, Perplexity, and Google AI Overviews summarizing an answer and (maybe) citing a source. Almost nothing measures whether your page is even citable in that world.
So I did what any reasonable/unreasonable person does with a Saturday and too much caffeine: I built the tool I wished existed.
It's called Plyxo, and it's free, open-source, and self-hosted.
Repo: https://github.com/pixelfogg/Plyxo-CRO-SEO-AIO-AEO-GEO
What Plyxo actually does
Plyxo isn't a single-purpose tool — it's three audits that usually live in three different paid products, combined into one:
1. Visual CRO auditing
Plyxo takes a screenshot of your live page and overlays bounding boxes around conversion friction points — a CTA buried below the fold, a form with too many fields, contrast that fails accessibility and readability at the same time. For each one, it estimates the dollar impact of the friction and generates a ready-to-paste React/Tailwind fix, so you're not just told "this is bad," you get the actual patch.
2. Technical + semantic SEO audit
Under the hood, Plyxo checks the boring-but-critical stuff: schema.org markup validity, Core Web Vitals, broken/dead links (crawled with SSRF protections so it's safe to point at arbitrary domains), and E-E-A-T signals that Google's algorithm increasingly weighs for content trust.
3. AEO/GEO — citation-readiness scoring
This is the part I haven't seen anywhere else. Plyxo scores a page against the patterns that make content more likely to be cited by AI answer engines — ChatGPT Search, Perplexity, and Gemini. Think: answer-first paragraph structure, clear entity naming instead of vague pronouns, FAQ-formatted sections, clean heading hierarchy. As more traffic shifts from "10 blue links" to "one AI-generated answer," this is quietly becoming as important as classic keyword ranking — and almost nobody outside a few very new startups (Profound, Otterly) is measuring for it, let alone bundling it with CRO and SEO.
Bonus: competitor keyword-gap analysis
Point it at a competitor's domain and Plyxo surfaces keyword opportunities they're capturing that you aren't.
Why self-hosted?
Two reasons, honestly.
First, principle. Crawling and analytics data is sensitive — it maps directly to your traffic, your funnel, your users. I didn't want to build something where that data has to leave your infrastructure and sit on someone else's server just to get an audit done.
Second, cost. Every existing tool that does any one of these three things is a $50–300/month SaaS subscription. Stack three together and you're paying for a team of tools before you've even fixed anything. Self-hosted and open-source means the only cost is your own infra — and a free-tier Gemini API key for the AI layer.
The stack
For the curious:
Next.js 16 + TypeScript for the app itself
Postgres with Drizzle ORM for storing audits, findings, and history
Gemini API powering the AI-driven scoring and fix generation (chosen mainly for its generous free tier — self-hosters shouldn't need a corporate API budget to try this)
Docker Compose for one-command local setup
What I learned building this
A few things surprised me along the way:
AEO scoring is genuinely unsolved territory. There's no established methodology yet for "will an LLM cite this page" the way there's decades of established wisdom for classic SEO. I had to build and iterate on heuristics rather than follow a playbook, which was equal parts frustrating and fun.
Visual CRO detection is harder than it looks. Screenshotting a page is the easy part. Reliably identifying which elements are actually causing friction — versus just flagging every button on the page — took a lot of tuning.
"Self-hosted" is a promise, not a checkbox. It's easy to say a tool is self-hostable; it's a different thing to make the setup process actually painless. I'm still iterating on this (Docker Compose helps a lot, but there's more to do).
Try it / break it / tell me what's wrong
This is early, and I'd genuinely rather hear "this feature is half-baked" now than after more people depend on it. If you run a SaaS, a blog, or any content site, I'd love for you to point Plyxo at it and tell me:
Did the CRO findings match something you already suspected was a problem — or surface something new?
Does the AEO/GEO score feel directionally right, or does it feel like guesswork? (Be honest — this is the part I'm least sure about.)
What broke during setup?
Repo, docs, and issue tracker are all here: https://github.com/pixelfogg/Plyxo-CRO-SEO-AIO-AEO-GEO
It's MIT licensed, so fork it, self-host it, or send a PR — all welcome. If you've got a "why didn't you just use X" question, ask it in the comments, I'll answer honestly (including the "yeah, X is better at that one thing" cases).
Thanks for reading — now go find out how many conversion dollars your homepage is quietly leaking. 😄
Over the past few days, I was trying out gov.uk prototype system for my static website. Like every night owl, the unbranded template's white background was hurting my eyes. I googled for some sort of dark mode, found The National Archives Design System. It suits my purpose, has the dark mode, and i
WebForms.php 2.1 has been released as the PHP back-end implementation of WebForms Core 2.1.
This release is different from a typical porting story.
The PHP implementation was converted from the C# implementation of WebForms Core using DeepSeek, and then independently evaluated with Qwen.
The proc
When working with JavaScript functions, you will often hear two terms: parameters and arguments.
They are closely related, but they have different meanings.
What is a Parameter?
A parameter is a variable that we define inside the function's parentheses when creating a function.
It acts