It worked yesterday. Not today.
The site is up, the pages load, but something inside broke: the form doesn't send, the filter doesn't filter, the checkout stalls halfway. I find the cause and fix it, without rebuilding anything that already works.
- !The contact form looks like it sends, but nothing arrives
- !The search filter returns nothing — or returns everything
- !WooCommerce checkout stalls at the payment step
- !Sliders, accordions or pop-ups that no longer open
- !The member area won't let registered users back in
- !An external integration quietly stopped syncing
- 01A plugin updated with a breaking change
- 02The host raised the PHP version and older code can't keep up
- 03A JavaScript error introduced by two scripts colliding
- 04The theme overrides a template the plugin has since changed
- 05An expired licence: the plugin stopped updating and fell behind
- 06Custom code written years ago, never documented, never revisited
A repeatable procedure, not guesswork.
- 01
Reproduce the bug
I need to see it happen. If it only shows up in certain cases — one browser, a logged-in user, a specific product — knowing which is already half the diagnosis.
- 02
Full backup
Files and database before touching anything, even just to deactivate a plugin and test.
- 03
Isolate the cause
Browser console, PHP logs, deactivation in batches. I look for the cause, not the symptom: patching the symptom brings it back next month.
- 04
Targeted fix
I change the minimum necessary, with commented code. No opportunistic rewrites of things that work.
- 05
Regression testing
I check the broken feature and everything around it, on desktop and mobile.
- 06
Written report
What it was, where I fixed it, and what to watch so it doesn't come back.
How much can it cost?
Indicative range. Final estimate after seeing the site.
Known or quickly identifiable cause: a documented conflict, a setting that got dropped, a badly mapped field.
The bug only appears under certain conditions. Reproduction, isolation on staging, fix and regression across pages.
Bespoke functionality written by someone else, undocumented, to be understood before it can be corrected.
The questions I always get.
01The site works, it's one feature that broke. Do you handle that?
+
That's the most common case. A completely dead site is rare; a form that doesn't send, a filter that returns nothing, a checkout that stalls halfway is far more common. Narrower scope, tighter estimate: almost always between 1 and 4 hours.
02I can't tell you why it broke. Is that a problem?
+
No — the diagnosis is part of the job. I just need to know what should happen and what happens instead. If you remember it started after an update or a hosting move, say so: it shortens the search considerably.
03What if the cause turns out to be bigger than expected?
+
You hear about it before I go further. The initial estimate covers diagnosis and fix in most cases; if something structural surfaces — a custom theme to rewrite, an abandoned plugin to replace — you get a second estimate and you decide.
04I'm outside Italy. Does that complicate anything?
+
No. I work remotely and async from Verona, on European hours, so UK and EU mornings overlap with mine. Invoicing is a standard Italian VAT invoice, reverse charge for EU businesses, and you can pay by card or PayPal.