I built ShardStitch to help carry working context between AI coding tools.. About 50 people bought it at $49. That felt like proof we were solving a real problem.
Then our search visibility dropped. We had leaned too heavily on pages about one tool, and an audit found overlapping content and similar titles. Whatever the precise cause of the traffic drop, the lesson was uncomfortable: a useful product does not excuse an unhelpful website.
We’ve been repairing the site page by page, but it also changed what I want to build next.
ShardDesign is our planned visual editor for AI-built websites. The idea is to let someone change copy, images, spacing, and layout directly instead of sending another prompt that might disturb the rest of the site.
We’re also planning a Guardrails MCP. It would help an AI coding tool review a site before publishing: identify repetitive or doorway-like pages, separate evidence from guesses, and propose specific repairs against current search-engine guidance. It’s a review workflow, not a promise of rankings or recovered traffic. Neither ShardDesign nor the Guardrails MCP is publicly available yet.
The question I’m working through now: how do you make website quality part of the building workflow, rather than an audit you only run after traffic falls?
Has anyone here changed their product roadmap because of a distribution problem?
Your sitemap lastmod detail hit home. Building with AI coding tools, my most expensive bugs haven't been bad code. They've been state nobody re-checked after a change. I once found a deployed function four versions behind the repo, and a provider that had failed silently for two weeks while fallbacks hid it. What fixed it for me was making "read the live state first" a rule before every change, plus a monitor that alerts when something goes quiet. A guardrail that checks the deployed result rather than the source sounds like the right product.
That's exactly it, and probably a sharper version of the point than mine. The sitemap lastmod thing was a small case of the same failure, the content changed but nothing downstream knew it had. A function four versions behind the repo, or a provider failing silently for two weeks, is the same shape at a much higher cost. Checking the deployed result instead of trusting the source is basically the whole argument for Guardrails in one sentence.
Update (October 2026): in hindsight I should have titled this whole post "How we got our first 50 users paid with zero marketing, then somehow talked another 50+ into it too, putting us past 100 paid users." Would've been a much better flex and a much worse lesson, so I'm glad past me didn't take the bait.
The less dramatic truth zero marketing was deliberate from day one, mostly through our Roo page, mostly buyers in Japan and South Korea, and the ones who told us why all said the same thing, manual handoff between AI tools is lossy. That's proven twice now, people can find it and pay for it. What's still not proven is whether the channel repeats on purpose or if we just got lucky twice.
Worth being specific about where ShardDesign and Guardrails actually come from too. I pointed a few of those same buyers toward Claude SEO at the time. They turned it down, specifically afraid an agentic tool could break what they'd already built. That's the direct reason Guardrails exists, not a reaction to our own SEO problems, which came later and just reinforced what buyers had already told us.
The common thread across all three isn't context transfer plus visual editing plus SEO. It's control staying with the person building the thing, not the tool.
So, what's next: ShardStitch is commercially validated, 100+ people paid for it. ShardDesign and Guardrails have real customer evidence behind them, but they haven't earned their own commercial validation yet, and I'm not going to call that settled just because the story connects. Before building more, I'm asking the people who already paid what they'd pay for next.
Did the audit show specific overlapping pages, or was it more a title and intent problem across the whole tool cluster?
I checked the actual compliance report rather than going from memory. It was both, but weighted much more toward a cluster-wide pattern than a few isolated page pairs.
The bigger issue was shared text. About 96 of 190 pages had identical paragraphs, FAQ blocks and closing sections across /tools/, /guides/, /painpoints/, /compare/ and /features/, often with little more than the tool or competitor name changed.
So this wasn't just pages having vaguely similar titles or intent. We could measure the repeated content using sentence-shingle/Jaccard overlap.
Separately, there were three genuinely redundant page pairs. Two pages around the same Windsurf issue, two around the same Aider issue, and two around the same Copilot issue. In each case one was close to a copy of the other and they were effectively addressing the same query.
We fixed both types and re-verified the pages live. For those three pairs, we didn't simply merge them. We rewrote them so each page had a narrower, distinct claim and disclosed where they shared the same underlying source.
One interesting thing the report also caught was that, as of Sept 29, the sitemap
lastmodvalues for the rewritten pages were still showing their old August dates. So even though the pages had changed, the sitemap wasn't communicating that freshness yet.That last part is actually a good example of why I'm interested in Guardrails. Fixing the content is one thing. Verifying all the surrounding state after the change is another.
Solid work!
Thanks, appreciate it
100% resonate with this. Managing complexity and staying lean is always the hardest part in the early days.
Thanks, that part never gets easier
A useful product does not excuse an unhelpful website this line is going on a sticky note!!
I'm on the other side of this. We offer free [website/SEO/conversion] audits, and the pattern I keep seeing is that founders only ask for one after traffic drops, never before launch. Your post makes me think we're pitching the audit at the wrong moment.
I have a struggle of my own: people visit, but sign-ups are close to zero, even though the audit is free. I'm starting to suspect "free audit" sounds like a sales trap, not something valuable.
Roshan and everyone else, when you've seen a "free audit" offer, what made you trust it or ignore it? Would you rather get a short report up front with no call, or a 15-minute walkthrough?
I think the trust problem is real.
Personally, I'd prefer the short report first with no call required.
If a free audit tells me "your SEO score is 62," I still don't really know what that means. If it shows me two actual pages, explains why they may overlap, points to the evidence, and tells me what is certain versus what is an interpretation, you've already given me something useful before asking for anything.
That's actually influencing how we're thinking about Guardrails too. I don't want another big score that pretends to know more than it does. I'd rather show the finding, evidence, uncertainty and possible action.
Then if the person wants help understanding or fixing it, the 15-minute walkthrough has a reason to exist.
The useful distinction here may be between a distribution problem and a quality signal that distribution exposed. I’d instrument the path from first landing-page impression to a successful site review or publish, then pick the highest-drop step and make one fix per week; separate branded/tool-specific pages from durable problem pages so a ranking change in one surface cannot take the whole funnel with it. For the 50 buyers, I’d cohort by acquisition page and ask which job they returned for in week two, then let that retention signal choose which ShardDesign or Guardrails workflow to build first. A pre-publish checklist that flags overlap, thin pages, and unsupported claims could be valuable even before a full MCP, as long as it reports evidence and uncertainty instead of promising rankings. Which of the 50 users had a repeat problem after the initial purchase?
The repeat problem became much clearer after people started using ShardStitch for website projects.
A surprisingly common thing was that they had already built something with AI that worked, then needed a tiny change: a font, footer, image, price, spacing or some copy.
Sometimes that tiny change took another 5 to 10 prompts, but the bigger issue wasn't the prompt count. It was: "I already have something that works. I don't want the AI to break it just to make this change."
That connected directly back to why I built ShardStitch in the first place. Missing context makes an AI fill in gaps with something plausible, and plausible isn't necessarily consistent with everything the project already learned.
ShardDesign came from giving the human direct control over those small changes instead.
Guardrails came from a related version of the same fear. Some customers had website/search-quality problems but didn't want to put a working site back through another agentic workflow just to diagnose or fix them. Our own search problems later reinforced that.
So the repeat signal I'm paying attention to isn't really "users want SEO" or "users want a visual editor."
It's that people are comfortable letting AI build a lot, but become much more cautious once they have something valuable that already works.
Before rebuilding the site page by page, check what share of the 50 buyers actually came from search. If most came from communities or direct, the traffic drop may be a smaller problem than it feels, and the Guardrails MCP is the more defensible bet. Do you know which channel those first 50 came from?
We kept marketing at zero on purpose for the first run, specifically to test whether someone with the problem could search their way to us and pay without any push from us. That worked, strangers found it and paid through search. What it didn't prove is whether that path is resilient or repeatable, which is the thing I'm actually still testing now.
The biggest lesson was about keeping context alive. Every time we jumped between AI tools (Antigravity, Codex, Claude), the project “memory” reset and we ended up revisiting problems we’d already solved – like Jurassic Park’s missing DNA being filled with guesswork. That insight directly inspired ShardStitch (which preserves that history) and later ShardDesign/Guardrails (which address the related fears users have). In short, each new feature we’ve planned came from real user pain points – not just an idea in isolation. We always ask: does this fix something our first users actually struggled with?
The WhatsApp channel is massively underutilized for B2B in Europe. Email open rates are 15-20%. WhatsApp message open rates are 90%+. If your customers are SMBs, meet them where they already are.
Good point, WhatsApp's not something we've tested yet
this lands. shipping the tool was the easy half for me too. distribution and habit (getting athletes to actually open their own practice clips) is the real product problem. appreciating the honest writeup.
Appreciate that. Good luck with the habit problem too, sounds harder than mine.
This is a useful distinction: a product can be genuinely valuable while its acquisition surface still creates doubt. I like the idea of treating website quality as part of the product workflow rather than a one-time SEO repair.
One lightweight practice that has helped teams I work with is to give every important page a “job” before it ships: who is it for, what question does it answer, what evidence supports the claim, and what should the reader do next? That makes it easier to spot pages that are technically different but offer almost the same value.
For the roadmap question, I’d separate two feedback loops: product quality (can users get the outcome?) and distribution quality (can the right users understand and find that outcome?). A small set of interviews with people who found the site, plus a review of pages that attract impressions but no meaningful action, can reveal whether the bottleneck is messaging, trust, or the product itself.
The Guardrails workflow sounds especially useful if it stays focused on evidence and clarity rather than trying to predict rankings. “Would a real person find this page helpful?” is a better first gate than any score.
That line might be the simplest version of what we're trying to build into Guardrails. A score can be wrong in a way that still sounds confident. A real person asking whether a page actually helps them is harder to fake.
One bookkeeping habit that pays off here: keep the denominators next to the 50. "Where did paying users come from" is the numerator; per-channel conversion needs paying users ÷ signups per channel. A channel behind 30 of the 50 from 3,000 signups is a very different bet than one behind 20 from 200 — and the numerator alone will keep pointing you at the big one.
Good point, and I don't have that number yet since we never tracked signups by channel this cleanly. Something to fix before trusting any one channel going forward.
50 people paying $49 is real. Before the page-by-page repair consumes months, I'd check one thing: did those 50 actually come from search? If they came from somewhere else (community posts, X, launches), then search is a nice-to-have and you'd be fixing the channel that didn't buy you while ignoring the one that did.
And a caution on letting the distribution problem rewrite the roadmap: ShardDesign and the Guardrails MCP sound like answers to 'how do we get found,' not 'what are the 50 paying us for.' Ask a few of them what they'd pay for next before building it. A distribution hole is painful, but it's still a marketing problem — the roadmap should stay pointed at the buyer.
Fair push back. Same answer as above, marketing was zero on purpose so search did the work, and it worked once. Asking the 50 what they'd pay for next is a good idea and I haven't done it yet. Going to do that before building more.
I guess I should have kept the title of this post as "50 users without marketing and pure product infrastructure that should have been appropriate :D
Strong point. I'd add: ask the 50 buyers what they searched or asked for before they found you. That tells you which pages deserve the repair work. I'm trying to answer this for my own product too, since we have traffic but no sign-ups. Would you tackle the offer first or the channel first?
Disclosure: I run UtilitySEO, an SEO scanner, so this is my corner.
Before repairing page by page, I'd check two things. First, timing: line the drop up against Google's update dates. If it lands on a core update, the whole site was re-scored, and fixing pages one at a time can take months to show anything.
Second, with overlapping pages, merging usually beats rewriting. Pick the strongest page per topic, fold the others into it and 301 them. Near-duplicates compete with each other, and polishing all of them keeps that competition going.
Your "separate evidence from guesses" line for the Guardrails MCP is the right instinct. An AI reviewer that states a cause it can't prove is how sites end up rewriting the wrong pages.
We're at DA 3 with about four search visits a month, so I know the near-zero feeling.
Did the drop hit every page, or mainly the cluster about that one tool?
Mainly a cluster, not every page. some pages had near identical paragraphs and FAQ blocks across several sections, just the tool or competitor name swapped. On top of that, three pairs of pages were built around the exact same bug citation. So it was concentrated, not sitewide. On merge versus rewrite, we went with rewrite and disclosure for those three pairs since they weren't full duplicates, just narrow enough to compete with each other.
Yes - twice, and both times the distribution problem rewrote the roadmap more than any user request did. My app is consumer (self-care planner), so no SEO story, but the same shape: 98% of my downloads come from people typing the name into the store after hearing it somewhere, and I can't see where. Two features now sit at the top of the roadmap purely because of that - an onboarding question "where did you hear about us" and promo codes per creator - neither is a "product" feature, both exist only so I can tell which marketing worked. The uncomfortable version of your lesson for me: a useful product doesn't excuse an unmeasurable funnel. On your actual question - the only thing that's worked for me is making the "audit" a checklist that runs before every release, same as the test suite. It's boring, but boring is what survives the week traffic drops.
Same shape here even though the story's different. The checklist before every release point matches what we landed on too. The thing that holds up is the boring repeatable check, not a one time audit.
The cheapest version is to treat a new page like a pull request. Before it ships, compare its title, H1 and search intent against every existing page and block near-duplicates, the way a linter blocks an unused import. Overlapping titles is exactly what your audit found, and that check runs in seconds at creation time instead of after traffic falls.
On the roadmap question: did the 50 buyers come from search? If yes, the guardrails sit closer to what earned the money than the visual editor does.
Yes, most likely. We kept marketing at zero on purpose for the first run so search was effectively the only path in, and it worked well enough to prove strangers could find and pay. What I haven't proven yet is whether that channel holds up long term. That's the open question now, not whether it worked once.
This lands hard. Shipping the product is maybe 30% of the job — the other 70% is figuring out which unglamorous channel actually puts it in front of people who already feel the pain.
We are early on a Discord directory side project and keep catching ourselves polishing ranking UX instead of talking to server owners. The "50 paid users then... wait, distribution?" moment is useful as a forcing function.
What channel finally moved the needle for you after the first 50?
The interesting part is that we deliberately kept marketing at zero for the first experiment.
We wanted to know whether someone who genuinely had the problem could search for a solution, eventually find ShardStitch, understand what it did and pay $49 without us pushing it through ads or campaigns.
Our hypothesis was that a casual searcher might stop at the first few results or an AI summary, while someone with a real unresolved problem may keep digging through page 2, 3, 4 and further until they find something that actually solves it.
That worked well enough to prove strangers could discover the product and pay.
What it didn't prove was whether that one discovery path was resilient or scalable.
So I don't really have a "this channel finally moved the needle after the first 50" answer yet. The bigger lesson for me was that we validated willingness to pay much better than we validated distribution resilience.
Now I'm treating "where do the next 50 come from?" as a separate experiment rather than assuming the first funnel will keep working.
The distinction that helped me was tagging every source and checking what happened 48 hours later, not just the launch-day spike. Small niche directories and founder communities beat broad boards for me — slower, but the questions had context. I now add one tiny channel check to the weekly launch review so I don’t drift back to vanity traffic.
Good tactic, tagging the source and checking in after 48 hours instead of just the launch spike. We haven't been this disciplined about it yet, worth borrowing.
How you got the first 50 sales??
No marketing, on purpose. The idea was to see if someone with the actual problem could search their way to the product and pay without us pushing it anywhere. That worked for the first 50, but I'm not sure yet it keeps working, so that's the thing I'm testing now.
A useful way to unpack the first 50 is to separate “who paid” from “where they came from”: tag each buyer by channel, trigger, and first successful use. The channel that produced the first handful may not be repeatable, and that distinction seems central to the distribution lesson here.
I think a distribution problem can absolutely turn into a product problem, especially when search is one of the main ways people discover you. At that point the website isn’t just marketing anymore, it’s part of the product.
The Guardrails MCP idea makes sense for that reason — catching duplicate/thin pages before publishing feels way more useful than running an SEO audit after traffic already drops. I’d probably keep it focused on a few high-signal warnings instead of turning it into another huge SEO checklist.
Curious though: did most of those first 50 ShardStitch customers originally come from search, or from somewhere else?
We realized some issues can be tested or fixed automatically, while others can’t. For example, a missing canonical tag or a broken internal link is a straightforward bug , our tool can highlight or even fix it outright. But things like “two pages have the same intent” or repeated wording are judgment calls. For those, we plan to flag them with a warning and the evidence, not outright block. In practice, we’d show a PASS/WARN result: “Here’s the text overlap we detected – take a look and adjust if needed.” This way we avoid false alarms and keep trust with the user.
I gave serverdrop elsewhere in the thread: we kept marketing at zero deliberately for the first run, so search was effectively the only path in, and it worked well enough to prove strangers could find and pay. What's still open is whether that channel holds up long-term — that's the next thing I'm testing, not something I've proven yet.
50 people paying $49 is real signal — that part is validated. The interesting wrinkle is that you validated willingness to pay, but not the distribution channel, and those two can fail independently. I've started treating channel reach as part of validation itself: when I get a "yes, I'd buy this," I also force myself to name the exact page, community, or search query the next 50 buyers would come from. If I can't, I treat the validation as half-done. SEO as a single leg is especially fragile, as you just learned firsthand. Curious whether the guardrails idea came from watching your 50 buyers' stuck points or from the SEO repair work itself — those point at pretty different roadmaps.
This distinction is important.
The 50 paying users validated ShardStitch and willingness to pay for the context problem. I don't think that automatically validates ShardDesign or Guardrails commercially.
Guardrails also didn't come purely from our own search repair.
Some customers were already running into website/search-quality problems. I initially pointed a few toward existing AI SEO workflows, but some didn't want to hand a working site back to another agentic tool because the thing they were worried about was breaking what already worked. They also weren't particularly interested in adding another monthly SEO subscription.
Then our own search problems happened and I got to experience another side of that problem firsthand.
So customer experience created the signal, and our own experience made the shape of the problem much clearer.
What still needs validating is whether people will actually pay for the solution. I'm trying to keep "we've seen this problem repeatedly" separate from "we have a commercially validated product."
Treat it like a failing test. Write two or three checks that block a release (every page has a unique title, no two pages target the same query, each page answers something the previous one doesn't) and run them the way you run lint. Overlapping content and near-identical titles are exactly the kind of thing a cheap pre-publish check catches.
Close to where we landed too. A few checks that behave like tests, unique title, no two pages targeting the same query, each page adding something new. The harder part was deciding which checks are safe to run like a test and which ones need a human to look first.
The roadmap now spans context transfer, visual editing, and SEO guardrails; what have the 50 paying users asked for that connects those needs?
This actually goes back further than the 50 users.
ShardStitch started from a hardware project. I was trying to keep an old APC UPS useful without spending $300 to $500 on a network card. My background is hardware with a lot of Python and HTML, so the part I primarily wanted AI help with was the UI/UX.
I started with Antigravity because I had Gemini credits, moved to Codex because I found it better for the UI, and later thought: can Claude just handle all of this? Maybe I wasted time moving between tools.
That experiment exposed the real problem.
Claude didn't know everything we'd already learned. Neither did the next AI when I switched tools. They kept confidently suggesting APCUPSD and NUT because those are perfectly reasonable solutions for an APC UPS, except we'd already tested them and they didn't work with our setup because the handshake wasn't happening.
I started thinking about it like Jurassic Park. When part of the DNA is missing, they fill the gaps with something that seems reasonable, but the result isn't necessarily what you intended.
AI does something similar when project history is missing. It fills the gap with the most plausible solution it knows, even when your project spent 20 iterations proving why that solution doesn't work.
That's what became ShardStitch and Bedrock. I wanted the project itself to remember the facts, failed approaches, decisions, constraints and why those decisions were made, regardless of which AI I used next.
Then customers showed us the same problem from another angle.
A lot were website builders. AI helped them build something they liked, but changing a font, footer, image or price could take another 5 to 10 prompts, and the bigger fear was the AI breaking something that already worked. That's where ShardDesign came from.
Some of those users also wanted basic website and search guardrails, but didn't want to hand the site back to another agentic workflow or pay another monthly SEO subscription. Our own search problems later reinforced what they were already telling us. That's where Guardrails came from.
So I don't really see it as context transfer + visual editing + SEO.
The common thread is control over AI-built work.
ShardStitch preserves the context. ShardDesign gives you direct control over the result. Guardrails is intended to verify and constrain what the AI changes.
The 50 buyers validated ShardStitch commercially. ShardDesign and Guardrails have customer-problem evidence, but they still have to earn their own commercial validation.
That distinction between customer-problem evidence and actual commercial validation is the part I’d be most interested in exploring further. If you’re open to it, what’s the best email to reach you on?
I’d move a lightweight distribution checklist into the same PR that ships a feature, rather than waiting for an SEO audit: one clear job-to-be-done per page, a human-readable title/H1, canonical and internal-link checks, no overlap with an existing page, and one measurable next step. Pair that with a weekly page-level dashboard (impressions → visits → activation) so you can tell whether a traffic drop is an indexing problem, intent mismatch, or a broken conversion path. It makes “website quality” part of shipping without turning every release into an SEO project.
I like the "same PR" framing because one thing I learned from ShardStitch is that rules are much more useful when they travel with the work rather than depending on someone remembering to check them later.
The audit also changed how I'd implement this though.
Some checks are deterministic. Broken canonical, accidental noindex, duplicate title, broken internal link, sitemap problem. Those can behave much more like normal tests.
Others are judgment calls. Two pages may have similar intent without actually being duplicates. Repeated structure isn't automatically a problem either.
So I'm leaning toward something closer to PASS / WARN / BLOCK.
PASS for things we can verify. WARN when there's evidence of a possible conflict and show the pages and why. BLOCK only for a small number of high-impact changes where we really want human approval.
The thing I don't want is a tool confidently saying "SEO problem detected" when what it really has is evidence that deserves a human look.
That's probably the biggest lesson I took from doing the repair manually.