My Autism Gifts is Rob Hodes's coaching practice for autistic and neurotypical adults building life skills. I worked with Rob (and, on the parts of this story that touch his family, his friend Elizabeth) for about six months in 2026, starting from a WordPress site that had quietly become a liability and ending with a rebuilt business running near capacity. This is the story of what that actually involved — the security work, the platform migration, and the less dramatic but just-as-important fixes to how clients found their way in the door.

The situation

The old site ran on WordPress with the Elementor page builder, hosted through IONOS. It had grown the way a lot of small-business WordPress sites do — plugins added over time, admin access handed out to more people than anyone was still tracking, and no one whose job it was to keep watch on any of it. Rob ran the business; he didn't have the bandwidth to also be its systems administrator.

The original problems

The security exposure

Rob ran a security scan on the site himself and brought the results to me. Going through it together, we found unauthorized admin accounts that didn't belong to anyone currently involved with the business — leftovers from a prior developer, still sitting there with full access. Rob, Elizabeth, and I worked through the account list together and removed what didn't belong.

Why we didn't stop at deleting the accounts
Removing the accounts closed that specific hole, but it didn't answer the bigger question: what let it happen in the first place, and could it happen again on the same platform? Patching around a symptom on a WordPress install that already had unclear access history wasn't a real fix — the platform itself was the exposure.

So instead of hardening the WordPress site in place, we moved off it entirely.

The rebuild

The new site is hand-coded HTML, CSS, and JavaScript — no CMS, no database, no plugin ecosystem to keep patched. It's version-controlled on GitHub and deploys automatically to Netlify on every push, with DNS cut over to Netlify in early May 2026. Removing WordPress removes the entire class of problem the old site had: there's no admin login to compromise and no plugin supply chain to inherit risk from.

BeforeAfter
PlatformWordPress + Elementor, IONOS hostingStatic HTML/CSS/JS, GitHub + Netlify
Admin surfaceCMS login, plugin ecosystem, unclear account historyNo login surface to compromise; access is git-based
Security headersNone configuredCSP, HSTS, X-Frame-Options, Permissions-Policy
DNS / networkIONOS defaultCloudflare (DNS/domain management, DDoS protection)

On top of the platform change, we layered production security headers directly into the Netlify config and put Cloudflare in front of the site for DNS/domain management and DDoS protection — defense that didn't exist on the old setup at all.

What those headers actually do

CSPContent-Security-Policy

Tells the browser which sources of scripts, styles, and other content are actually allowed to run on the page — the main defense against injected malicious scripts.

HSTSStrict-Transport-Security

Forces every visit to use HTTPS, closing off downgrade attacks that try to trick a browser into an unencrypted connection.

X-Frame-OptionsClickjacking defense

Stops the site from being embedded in a hidden frame on someone else's page — the standard defense against clickjacking.

Permissions-PolicyBrowser feature control

Explicitly turns off browser features (camera, microphone, geolocation, and similar) the site never uses, so they can't be abused even if something else goes wrong.

The intake redesign

Security wasn't the only thing costing Rob time. The old "Consultation" page gave a visitor almost nothing to prepare with before their first call — so we renamed it "Clarity Call" and rebuilt it as a warm, guided intake experience: a short set of questions up front, a live Calendly booking widget so the visitor picks a real time slot on the spot, and an automatic confirmation email so nobody's left wondering if the booking went through. This has reduced the call booking experience from manual coordination and back-and-forth communication that previously took two days, if remembered to be done at all, to 2 minutes automatically for every client, saving precious time and money. Both Rob and each client now walk into that first call already knowing what matters, instead of starting from zero.

Cutting a tool that wasn't earning its cost

Rob was paying roughly $360 a year for a bundled SEO add-on through his old host. I built out a free equivalent — Google Search Console, Google Analytics, and Google's other free tools — covering the same ground before the next renewal charge hit, so the ongoing cost dropped to zero without losing the visibility the paid tool provided.

Results

46 → 77
Median desktop Lighthouse performance score
7:1+
WCAG AAA contrast, sitewide
2 → 5
Coaching clients, including his first VIP

“I gladly recommend Sean. I had the opportunity to meet Sean when he was brought in to assist with the engineering side of correcting my client’s website. Sean’s contribution resolved a security issue and a bloat of products for SEO/AEO left by the original developer at a 90% cost savings per month. My client can now receive all of his alerts that were being rerouted and blocked deep in the coding as well. Sean is timely, reliable, and quite capable due to the training and experience he brought with him. Sean is methodical, engaging, professional, and creatively logical in resolving problems. Though he was already working alongside his family businesses of Retail Therapy Unplugged and Blue Water Detailing, his freshly learned skills from his degree were evident to bring the latest industry standard knowledge. I believe in Sean so much that he is now working on my site as well. Thank you, Sean, for moving the needle forward for my client, and resolving his never-ending loop left behind by the previous website builder team. Thank you, Sean!”

Elizabeth Villalpando · Behavioral Consultant Visit myautismgifts.com ↗

Key takeaways

01

A security incident is a business-continuity problem, not just an IT problem. The fix that mattered to Rob wasn't a patched plugin — it was not having to think about the site's security again.

02

Migrate off a compromised platform rather than patch around it. Removing the CMS and plugin ecosystem removed the whole category of risk, not just the one incident.

03

Free tools can fully replace paid ones. The right free stack matched what a $360/year add-on was doing, with no drop in capability.

04

Friction in intake shows up as friction in bookings. Giving clients (and Rob) something to prepare with before the first call was worth as much to growth as anything technical.

Carrying similar risk on an old platform?

Security hardening, a platform migration, or a rebuild that treats both as first-class requirements from day one.

Get in touch →