
Hey IH,
I’m Femi. Solo builder of PafCore.
The problem
Most speed tools give you a score and a long list. Almost none of that list raises the score. Run the same page twice and the number jumps. So people ship a “fix,” see a better score, and it was luck.
What I built
PafCore (https://pafcore.site):
• Free full report, no signup
• Three quiet loads on a slow phone connection
• Shows how far the score moves with nothing changed (the quiet gap)
• Names the slow file and what to try first
• Credits ($5 for 20) for lab proof after you change something
• Pro Watch ($19/mo): schedules, history, alerts, plus 60 credits each month
Same story as the free report, then keep watching pages you own so a drop after a deploy does not sit unnoticed for two weeks.
Why now
I kept seeing the same failure: a deploy ships, the score drops, the client finds it first. Watch closes that loop without becoming another score wrapper. When an alert fires, you still open the file level report.
Where I am
Live product. Free path works. Pro Watch is live. Early users and outreach to people who sell speed work. Stranger paid credits are the gate I’m chasing next. Building in the open on X: @pafcore
Links
Site: https://pafcore.site
Watch: https://pafcore.site/pro
Pricing: https://pafcore.site/pricing
Docs: https://docs.pafcore.site
What I’d love from you
Honest feedback beats a polite “looks cool.” Even “I tried it once and stopped” helps.
Thanks,
Femi
Naming the slow file is the right DX. Most site-is-slow reports are too abstract to act on. If Pro Watch can show the owning route or component next to the file, that is an even faster loop for solo builders who do not have a perf team. SAO-W2-SPEED
Thanks. That is the right next step.
Today we name the slow file when we can. On Pro, the next depth we want is the owning route or component next to that file, so you are not digging the bundle alone.
It is on our build list. Not live yet. I will not claim it until it ships.
Glad the file first DX landed. That was the whole point.
The quiet gap idea is the most useful part of this. Showing how much the score moves with nothing changed reframes the whole conversation. Clients stop chasing the number and start asking about the actual file. That is a much better place to have the conversation from.
The $5 credit after a fix makes sense as a gate. You already gave them the problem and the file. The credit is for proof that the fix worked, which is the thing anyone selling speed work needs to show a client. That feels like a natural next step rather than a paywall.
Tried it on utilvance.com. The start here call was clear and the file level detail was more useful than a score alone.
Thank you. That is exactly how I hope quiet gap lands with clients.
Once they see the score move with no change, they stop chasing the number and ask about the file. That is a better talk.
And yes. The free report gives the problem and the file. The $5 credit is for proof after a fix, which is what you need to show a client. Glad that feels like a next step, not a wall.
Thanks for trying it on utilvance.com too. Glad Start here was clear.
The free report and paid monitoring form a clear “diagnose, then prevent” progression. I’d make the first return visit the main activation event: after someone fixes the named file, prompt them to schedule a retest so you can see whether the free answer naturally creates demand for Watch. For the agency segment, the client-facing report idea could be a stronger value signal than adding more dashboard detail.
That is a clean way to put it. Diagnose, then prevent.
I agree the first return visit is the real activation. After someone fixes the named file, the next ask should be a retest, or a schedule, not more dashboard screens.
For agencies I also agree. A client facing report with their logo is a stronger signal than extra owner UI. That is already on the agency roadmap.
I tried it on my site, and the H1 finding was accurate. Traced the root causes myself: an unnecessary auth check was gating the entire page render before anything could paint; there was no route-level code splitting, so the landing page shipped the whole app's JS bundle, and a render-blocking third-party script sat ahead of the deferred module scripts in the document head. Fixed all three. Good, specific finding — not generic advice."
That means a lot. Thank you for trying it on a real site.
Glad the top finding was specific enough to chase. Auth before paint, shipping the whole app on the landing page, and a third party script blocking in the head are exactly the kind of paths I want the report to open.
If you run it again after the fixes, I would love to hear whether the quiet gap shows a clear win.
100% resonate with this. Managing complexity and staying lean is always the hardest part in the early days.
The quiet gap is a smart way to make noisy speed scores actionable, especially when a founder is deciding whether a fix actually helped. I would be curious to see whether the report can separate files the site owner controls from third-party scripts, since that changes the next step completely. The free report plus a clear retest loop feels like a useful wedge for agencies and solo builders alike.
Thanks. That is the idea.
The report already tries to mark what you own versus a third party tag. If it is yours, fix it. If it is a vendor, ask them or remove it. I want that split even clearer in Start here, because the next step is totally different.
Free report names the file. The retest after a fix is the loop I want people to come back for.
I build an audit tool with a free scan, so adjacent to you rather than the same thing. Nineteen comments in and nobody has raised what I think will produce your hardest support ticket: lab versus field.
Three quiet loads is lab data. If someone cares about speed because of SEO, the number Google actually uses is CrUX, which is real user data over a rolling 28 day window. So the sequence goes: they fix the file you named, your report improves that afternoon, and their Core Web Vitals in Search Console do not move for up to a month. From where they sit, that looks like your tool being wrong.
CrUX is free through the API. Pulling it alongside your lab run would let you say something no other free report says: here is what moved in the lab today, here is the field number it should move, and roughly when.
Worth telling them plainly when a page has too little traffic to have CrUX data at all. That is its own useful finding.
You are right. That ticket will come.
The free report is lab data. Three quiet loads. If someone cares about SEO, Google’s field numbers can take weeks to move. So the lab can look better the same day, and Search Console can stay flat. That is not the tool being wrong. It is two clocks.
Pro Watch already pulls CrUX next to the lab, with plain words for the gap, and a clear note when traffic is too low for field data.
I still want to say the “weeks, not hours” part more clearly so people do not blame the report.
If the buyer is an agency, $19/mo is the wrong shape. Agencies do not buy monitoring, they buy something they can put their logo on and bill a client for, so a white-labeled report priced per client site lands ten sites in one sale instead of one seat. That also fixes your funnel, because the agency owner holds the deploy access and the budget, while the solo freelancer you are attracting today has neither.
$19 Pro is for light watch. For agencies I agree the better shape is a report with their logo, priced per client site, so they can bill the client.
That agency offer is on the roadmap. I am not treating $19 as the agency product.
The "quiet gap" frame is pure measurement design - it proves to yourself that the score is noise. But here's the conversion gate I'd watch: the free report solves the diagnosis problem (what's slow). The real question is whether naming the file creates a paying user gap.
Split your early users three ways:
That third bucket is the only number that matters for monetization. The free report doesn't convert them - the confidence after they fix something converts them. You're not selling naming the file. You're selling proof that the fix worked.
Right now "credits" is a lever but not a signal. Once you have 50+ reports where someone named a file, fixed it, and then paid for a retest to verify - that's when you know the monetization actually works. Until then, free report might be complete product for 95% of the market.
Thanks. That three way split is clear.
I agree. The free report does diagnosis. Money starts when someone retests after a fix.
I am tracking that now as three buckets. Conviction is the only one that counts. Until I see enough of those, I will not pretend credits are proven.
The "quiet gap" framing is the part that would have saved me time. What stopped me with similar tools was that the named slow file was usually a third-party tag I couldn't change. If the start-here list splits "yours to fix" from "tell your vendor", the answer stays true.
Glad the quiet gap helped.
I know that stuck feeling. The slow file is often a tag you do not own.
PafCore already tries to mark that. If it is yours, it says so. If it is a vendor, it says ask them or remove the embed.
You are right that Start here should make that split even clearer. Yours to fix in one place. Tell your vendor in another. That way the answer stays honest.
"Building in the open on X" is the line I can answer. I opened that account tonight: 405 followers. A reply I sent last night has about 20 views. The site table still has no row labeled indiehackers.
Naming the slow file is the same job as naming the thread. The paid part only starts if someone comes back after the name.
I would write down which X reply this week named a file and then opened Watch, versus which reply only got a like. Two columns. One week.
Which column has a number tonight?
Fair. Tonight I only have likes and views. The “came back to Watch” column is empty. That is the number I need, and I am starting to track it.
The problem is most devs don't know how to optimize a slow file once it's named—that's not a PafCore problem, it's the whole industry. I tried a diagnostic tool once and watched people get stuck on the "okay, now what?" part. Are you finding that people who name a file can actually fix it and come back with credits? Or do you need to expand into consulting to close the loop?
Yes. A lot of people freeze after they see the file name. That is normal.
PafCore tries to help with the next step, not by becoming a consultant. Free report: name the slow file. Credits: show what to try, and let you check again after you change it. Many people will also paste the report into Cursor or Claude and let it edit the code.
I do not know yet if strangers buy credits, fix the file, and come back. That is what I am watching for now.
If most people still get stuck, I need a clearer “do this next” in the product. I do not want consulting to be the only way to finish the job.
The free report answers “what’s slow.” Credits need to answer “did my fix work?” before the user leaves. Are you tracking how many reports reach a retest after a specific file is named?
Yes. That is the right test.
The free report answers “what is slow” and names a file. Credits should answer “did my fix work?” with a retest after that.
I was not tracking that path cleanly yet. I am adding it now: how many reports that name a file later get a retest (test for real / verify) within a week.
If that number stays near zero, the free report is enough by itself. If people retest after a named file, credits have a real job.
The free report proves the diagnosis; the real test is what happens next. Are users actually paying for credits or Pro Watch after seeing a concrete slow file, or is the free report solving enough of the problem by itself?
Good question. That is the real test.
Today the free report does the diagnosis job for a lot of people. Name the file. Show the quiet gap. That part can feel complete in one visit.
What I am selling next is not a prettier score. Credits are for the loop after the diagnosis: lab checks, find the file path, prove the fix under noise. Pro Watch is for the later pain: the score drops after a deploy and nobody saw it.
I do not have a clean stranger conversion number yet. Early users take the free report and leave. A few are in outreach with a real report on their site. That is the experiment now.
If the free report alone is enough forever, credits and Watch will not stick. If people need proof after a fix, or alerts when a client page drops, they should pay. I will know which one it is from those next buys, not from the report itself.
That post-diagnosis loop is the key commercial test. If you’re open to it, what’s the best email to reach you on?
Sure. Best email is hello@pafcore.site
Happy to talk about the post diagnosis loop.
Thanks! I’ve just sent it over.
Looking forward to hearing your thoughts whenever you have a chance.
https://pafcore.site/