This page is the auto-generated index of every public surface on the site, grouped into seven topical clusters. The template queries each post type directly, so new case studies, services, training programs, tools, downloads, stances, and field notes appear here automatically as they ship. There is no editorial step between publishing and listing.
397 pages across 8 sections.
Services
- A WordPress site audit that tells you what to fix first
- Custom WordPress plugins for the thing no off-the-shelf plugin does
- Fort Erie websites, built by someone who lives here
- LearnDash builds where the learning actually sticks
- Learning management systems your team will actually use
- Newspaper website development built for how a newsroom actually works
- Niagara Falls website design: when your clients aren’t tourists
- St. Catharines website design that keeps working after launch day
- St. Catharines WordPress developer: not a theme job
- Team training that is not a slide deck adapted overnight
- Welland website design that looks current and loads fast
- WooCommerce development for a store that has to sell, not just launch
- WordPress and training for Niagara businesses, from someone who lives here
- WordPress migration without the downtime and broken links
- WordPress security hardening, done before a breach forces it
- WordPress speed optimization your visitors actually feel
- WordPress that doesn’t fight you when the requirements change
- WordPress training so your team stops waiting on a developer for simple edits
- Your site ranks for your name and nothing else
- Your WordPress site is maintained. Or it was. Nobody checked.
Work and projects
- 128,393 views in a niche nobody browses: the finish line on YouTube
- A $61,847 Sunday afternoon
- Aboriginal Human Resources Development Canada: federal HR communications platform, 2003
- Academy of Design Toronto: WordPress Front End Inside the Yorkville Group’s Integrated Stack
- Algonquin College: searchable continuing-education catalogue, 2002
- Before WordPress: how a 2002 author platform ran for sixteen years
- Bell Sympatico Order Bot: consumer ISP signup and equipment flow, 2003
- Calgary Herald: energy-beat child theme in the Postmedia VIP migration (2011-2012)
- Calgary Swerve: geolocation-driven arts and events property on the Postmedia VIP platform, 2011-2012
- Canada.com wasn’t a newsroom: why its WordPress VIP portal needed a different architecture
- canada.com: portal child theme on the Postmedia WordPress VIP network (2011-2013)
- Canadian Foundation for the Americas (FOCAL): Ottawa policy think tank web presence, 2001
- Canadian Technology Human Resources Board: Bilingual Newsletter Platform, 2003
- Corel LINUX Community: community resource for Corel LINUX OS users, 2000
- Corel store at buy.corel.com: e-commerce extension of corel.com, 2000
- Corel.com: public site for Corel Corporation, 1999/2000
- CorelCity.com: public web portal for Corel clients and partners, 2000
- CubaSource: bilingual Cuba research directory for FOCAL, 2001
- Department of Foreign Affairs and International Trade: embassy webcams for trade shows, 2003
- Designer.com: Corel’s flagship CorelDRAW community site, 2000
- Dev-rel publishing on WordPress VIP
- Distributor LMS architecture
- DOSE.ca: bespoke entertainment property on the Postmedia VIP platform, 2011-2012
- Driving the Boat with Tracker
- Ed Broadbent: Ottawa Centre 2004 federal election bilingual campaign site, 2004
- Edmonton Journal: legislature-beat child theme in the Postmedia VIP migration (2011-2012)
- Environment Canada: OCR-to-HTML Pipeline for 2,500 Pages of Legacy Publications, 2002
- Financial Post: Business-Daily Template Engineering in the Postmedia VIP Migration (2011-2012)
- Great Chefs Television: custom WordPress themes for the culinary editorial archive, 2010
- How to Completely Disable XML-RPC in WordPress to Stop DDoS Attacks
- Howard Lindzon: Personal blog inside the StockTwits network, 2010 to 2011
- Human Resource Information System Canada (HRIS-SIRH): federal HR platform rebuild, 2004
- Inside BlackBerry for Business: B2B publishing on WordPress VIP (2011 to 2014)
- Inside BlackBerry Help Blog: support content on WordPress VIP (2011 to 2014)
- Inside BlackBerry: the hub of the WordPress VIP blog estate (2011 to 2014)
- Isaac’s Way Restaurant: Online Charity Art Auction Tool
- James Altucher: WordPress migration with the email-safety pass first, 2011
- Joomla theme for the New Orleans jazz institution
- Le Château: Moodle-Driven Staff Training (2016-2020)
- Liberal Party of Canada: WordPress Multisite candidate platform, 2012
- M.L. Campbell: spec-sheet-as-product-page architecture, 2025
- M.L. Campbell’s distributor training centre: a custom LearnDash LMS
- Montreal Gazette: bilingual-discovery child theme in the Postmedia VIP migration (2011-2012)
- Multi-brand shared-platform pattern on the M.L. Campbell estate
- National Post: WordPress VIP flagship in Postmedia’s 2011-2012 network migration
- Natural Resources Canada Conference Plan: end-to-end internal workflow, 2003
- Natural Resources Canada knowledge asset inventory: taxonomy across a federal department, 2004
- OfficeCommunity.com: Corel WordPerfect Office Suite community hub, 2000
- Ottawa Citizen: federal-politics child theme in the Postmedia VIP migration (2011-2012)
- Ottawa Flight Training: pilots-read-for-a-living web design, 2004
- Parliament Now: sister WordPress property to the Hill Times migration, 2011
- Pedigree of Oat Lines (POOL): Tag-Driven Research Database for AAFC, 2008
- Postmedia WordPress VIP migration: eleven papers, one parent theme
- RCC Institute of Technology: WordPress Front End Inside the Yorkville Group’s Integrated Stack
- Regina Leader-Post: lean-newsroom child theme in the Postmedia VIP migration (2011-2012)
- Ridgeway Cinema Lounge: annual memberships, photography, and social media
- Rookleys Canadian Art: website launch, photography, and social media
- Sleep Country Canada: headless jQuery store-locator on the existing ASP.NET back end, 2015
- Stan Cassidy Foundation: WordPress for a Fredericton rehabilitation-hospital fundraising arm, 2006
- StockTwits 50: Curated editorial showcase of the top fifty trading setups, 2011
- StockTwits Blog: Multi-voice corporate publishing inside a community platform, 2011
- StockTwits FX: Forex vertical community on the StockTwits platform, 2011
- StockTwits U: Educational property designed for the new arrival, 2011
- The Authors Guild SiteBuilder: pre-WordPress hosted multi-tenant publishing platform, 2001
- The Finish Line: M.L. Campbell’s YouTube content discipline, 2022
- The Hill Times: Drupal-to-WordPress migration with full URL and subscriber preservation, 2011
- The Mace Group: South Carolina political-media WordPress retainer, 2009-2011
- The Province: tabloid child theme in the Postmedia VIP migration (2011-2012)
- The StarPhoenix: Saskatoon child theme and iPad template on the Postmedia VIP platform, 2012
- The Vancouver Sun: broadsheet child theme in the Postmedia VIP migration (2011-2012)
- The Walper Tobacco Shop (1996): my first website
- Three ridgeway shops, one junior practitioner, one senior advisor
- Tim Hortons Roll Up the Rim to Win: Online Double-Play, 2015
- Tim Scott 2010: South Carolina 1st-district congressional campaign WordPress, 2010
- Toronto Film School: WordPress Front End Inside the Yorkville Group’s Integrated Stack
- When the website qualifies but the distributor closes
- Wild Daisies Consignment: e‑commerce, photography and social media
- Windsor Star: auto-and-border-beat child theme in the Postmedia VIP migration (2011-2012)
- Yorkville University: Integrated Learning Stack Across Four Schools, Two Provinces
Training and courses
- Microsoft Excel training 101
- Microsoft Excel training 201
- Microsoft Excel training 301
- Microsoft Excel training 302
- Microsoft Excel training 401
- Microsoft Outlook training 101
- Microsoft PowerPoint training 101
- Microsoft Word training 101
- WordPress 101: take control of your site
- WordPress training 101
- WordPress training 201
- WordPress training 301
- WordPress training 401
Tools and downloads
- Asphalt tonnage calculator
- Auto copyright: auto-generated notice from your post date range
- Canadian web accessibility deadline lookup
- Colophon: free WordPress FSE starter theme
- Concrete volume calculator
- Content planning template for service businesses
- Declamatio
- Drywall sheet calculator
- Easy Pinterest for WordPress · pin it button for posts and pages
- Easy popular posts · single template tag, no settings page
- Easy recent posts · recent posts via template tag, no admin overhead
- Easy scheduled posts · surface upcoming posts before they go live
- Editloft
- Excavation volume calculator
- Excel training prep checklist · 30-minute planning guide for team sessions
- Fence material calculator
- Fill volume calculator
- Free workbench images for July 2026
- Geitoq
- Get better excerpt · whole-word excerpts, no mid-word cuts
- Gutter: free WordPress FSE theme for financial publishers
- Headless WordPress decision worksheet
- How to register custom meta fields in the WordPress REST API
- HTML5 search for WordPress · semantic search form, no theme changes
- Kern: free WordPress FSE theme for type studios
- Ligature: free WordPress FSE theme for brand studios
- Lumber board-foot calculator
- Masthead: free WordPress FSE newspaper theme
- Newspapers with WordPress
- Paint coverage calculator
- Parcel: free WordPress FSE theme for DTC brands
- Predicatio
- Protect wp-config.php · block direct browser access to config files
- Quillwork: free WordPress FSE theme for design studios
- Random post redirect for WordPress · surprise-me navigation for archives
- Scriborium
- Shadow by Christopher Ross
- Stop pinging yourself · no self-pingbacks on internal links
- The 30-minute audit
- The five-principle spine
- The headless WordPress four-question test
- The one-day WordPress audit
- The plugin-author check-in checklist
- Thisismyurl dashboard notice control
- Tile calculator: square footage plus cuts and breakage
- Vault
- Website content in page or post · embed remote content via shortcode
- WordPress 7 quick-reference guide
- WordPress HEIC plugin · auto-convert iPhone photos on upload
- WordPress LMS cost calculator (vs Moodle, vs Canvas, vs LearnDash)
- WordPress maintenance budget calculator
- WordPress maintenance SLA template
- WordPress nofollow plugin · auto add nofollow, target=_blank, noopener
- WordPress plugin license cost calculator
- WordPress project scope estimator
- WordPress site launch checklist
- WordPress SVG plugin · safe SVG uploads in the media library
- WordPress WebP plugin · auto-convert new image uploads to WebP
- WordPress.com stats smiley remover · hide the Jetpack tracking glyph
- WP remove generator meta tag · hide WordPress version from source
- WP title case · auto-format titles, headers, and feeds to title case
Writing
- 14 Years experience?
- A free, typography-first WordPress theme: meet Quillwork
- Accessibility video in 2026: more than subtitles
- AI is the new baseline, not an advantage
- Before you clean up an inherited site, find out what it’s holding up
- Behind the scenes: a forced WordPress security update, and a bug I filed against core
- Behind the scenes: a WordCamp US yes, and four machines that lied to me politely
- Behind the scenes: eight WordPress themes to full-site editing, and a podcast that took six tries
- Behind the scenes: the contact form that mistook my customers for bots
- Behind the scenes: the nightly bot that kept un-fixing its own fix
- Behind the scenes: the week my own guardrails knew better than I did
- Behind the scenes: the week my site kept telling small lies
- Behind the scenes: the WooCommerce bug that hid from its own test
- Build Your Business by Knowing Your Competition
- Building a Brand for Your Business
- Could A Website Increase Your Profits
- Creating a cache on phpWebSite
- Creating Effective Cover Letters
- Does META Matter?
- File Names and WordPress
- Five Low Cost Tips to Promoting Your Online Business
- Forking edit flow: keeping the discipline, rewiring the machine
- Fort Erie data centre: what the town has on file
- Four leaks to fix before you redesign your service website
- From layoff to consulting: what the first year costs you
- Google already made a listing for your business. It probably has the wrong information.
- High-availability WordPress for education: what it means and when a school actually needs it
- How do you install WordPress plugins?
- How much should a designer charge?
- How should you hire a web professional?
- How to Centre a Header with HTML and CSS
- How to get AI to write a first draft you can actually use
- How to Hire a Web Designer
- How to Install PHP on a Microsoft IIS 5 Server
- How to respond faster without working more
- How to see through a technology pitch when tech isn’t your job
- How to sell online courses with WordPress (complete system)
- How to talk to AI for the first time
- I gave one WordPress theme to AI three times and got three different reviews
- If You Build It, Will They Come?
- Is using AI cheating? It depends what you’re being tested on
- Is WordPress Dead in 2012?
- Is WordPress dead in 2026?
- Keyword cannibalization: why fewer WordPress pages often rank better
- Letting AI sort your email (and when not to)
- Lighthouse scores vs real WordPress performance: what actually matters
- Make a living giving it away, fifteen years on
- Making Your Site Sell
- Marketing Your Way to Success on a Limited Budget
- Marketing Your Way to Success on a Small Budget
- Migrating off CivicPlus: the hidden records-management cost procurement misses
- Moodle to WordPress: when the move is the upgrade, and when it isn’t
- Newsletters are great for business
- Order Up How The Web Can Serve The Restaurant Business
- Outdated listings are costing your entire community
- Public Relations that Really Work
- Receiving Orders Without A Computer
- Seven easy ways to make WordPress far more secure
- Social desirability bias: why your best customer feedback may be your least honest
- Someone on the highway wants to ask if you have room. Right now, they can’t.
- Ten Reasons Why Your Online Store Doesn’t Work
- The AI tasks your business can hand off this week
- The bandaid and the wither: what dying coal towns taught me about the AI layoffs
- The box under my desk that a hundred people were counting on
- The case for the second draft
- The filter you can’t explain
- The meeting notes looked fine
- The Not So Secret Art of Internet Success
- The number that flatters the tool is the one to distrust
- The restaurant with the ramp: why accessibility is a business decision
- The two ways teaching with AI goes wrong
- The WordPress site audit most agencies skip in 2026
- Top Ten Features of a Good Web Site
- Top Three osCommerce Upgrades for Small Business
- Training a newsroom on WordPress in two days: the curriculum that survives turnover
- Use it to think, not just to look things up
- Using CSS to Build a Horizontal Menu
- Using WordPress for Business
- Web Site Planning
- Website over-optimization: how to spot it and fix it
- What a Moodle LMS actually costs
- What AI actually is, for someone who has to teach with it
- What does “more productive” actually mean
- What fixing other people’s WordPress plugins taught me about my own code
- What high-availability WordPress actually requires (and how to tell if you need it)
- What internal training platforms actually get judged on
- What you owe the people still running your 2015 WordPress plugins
- What you’re agreeing to
- When does AI cross the line?
- When the first answer isn’t quite right
- White Hat Black Hat SEO Tactics
- Who Owns Your Web Site?
- Why mentoring is a pillar of my practice, not a maybe
- Why most professionals are using AI wrong
- Why summer is where most businesses fall apart
- Why WordPress page builders are laying people off, and what the AI headline is hiding
- WordPress 7 is here. Here’s what’s new and what to do.
- WordPress application passwords: access without sharing your login
- WordPress Made Easy
- WordPress on a government discovery call: eight questions a senior buyer should ask
- Working With Dates in ASP
- Your description says nothing and a stranger is trying to decide if you’re worth the turn
- Your Google hours are wrong, and you don’t know it
- Your Portfolio to the Web
- Your reviews are a conversation. Right now you’re the one not talking.
- Your WordPress now has an AI layer, and it still needs your judgment
Podcast and talks
- Access level 1 (beginner) at Lakeview Training, 2019
- AI in WordPress Workflows: Rochester 2023
- Before you clean up an inherited site, find out what it’s holding up
- Blogosphere Blitz Live: WordCamp Buffalo 2024
- Designers and Developers Panel: Ottawa 2017
- Excel 1 – intermediate at DB Schenker, 2018
- Excel 2010 level 1 at Tucows, 2018
- Excel 2013 level 1 at Northland Floral, 2017
- Excel 2016 level 2 at Breville Canada, 2018
- Excel level 2 and level 3 courses at Toro Aluminum, 2019
- HTML, CSS, WordPress Basics: Ottawa 2014
- M.L. Campbell teaching engagement, 2020 to present
- Make a Living Giving It Away: Buffalo 2023
- Make a Living Giving It Away: Detroit 2011
- Make a Living Giving It Away: Toronto 2011
- Make a Living with WordPress: Ottawa 2013
- Membership Site for $30: Hamilton 2016 (Recorded)
- Membership Site for $30: WordCamp Buffalo 2016
- Membership Site for $30: WordCamp Maine 2016
- Membership Site for $30: WordCamp Ottawa 2016
- Microsoft Excel 101 training in St. Catharines, May 29, 2026
- Microsoft Excel at City of Hamilton, 2018
- Microsoft Excel at DB Schenker, 2019
- Microsoft Excel training at The Continuing Education Students’ Association of Ryerson, 2018
- Microsoft Excel workshops at CPA Ontario Members, 2019
- Microsoft Office training at Airbnb, 2017
- Microsoft Office training at City of Hamilton, 2017
- Microsoft Office training at Fortinos, 2019
- Microsoft Office training at Grand Valley Institution for Women, spring 2017
- Microsoft Office training at PPC Solutions, 2019
- Microsoft Office training at TPIreg, 2020
- Microsoft Project training at ES Fox, 2019
- Microsoft Smart Office at Ferrero, 2019
- Microsoft Word / Excel training at Genaire Ltd, 2018
- Newspapers on WordPress: Montreal 2012
- Pedigree of Oat Lines (POOL) keynote at AAFC Central Experimental Farm, 2008
- PowerPoint and presentation skills training at Privy Council Office, fall 2001
- PowerPoint and presentation skills training at Privy Council Office, spring 2002
- Quit the Rat Race with WordPress: Toronto 2013
- Smart Office at Ferrero, 2020
- The forty-item audit nobody fixes
- The Secret Art of WordPress: Ottawa 2017
- The sentence your plugin has to pass before it ships
- The six takes were the lesson
- The test that was lying to me
- Tips for WordPress Freelancers: Ottawa 2014
- Training specialist at Centre for Arts and Technology, 2003 to 2007
- What an Accessibility Audit Actually Catches in Your Library’s Web Systems: Access 2026
- When everybody says they’re behind, find out what actually breaks
- WordPress (for-credit course) at Sheridan College, 2017
- WordPress (for-credit course) at York University, 2017
- WordPress 101 in St. Catharines, October 22, 2026
- WordPress for Newspapers: Toronto 2012
- Your First WordPress Plugin: Toronto 2012
Pages and references
- $275/hr CAD. Same number for everyone.
- About Christopher Ross
- Accessibility isn’t a phase. It’s a precondition.
- Accessibility statement
- Account
- AI learning, keeping it human
- AI operations
- AIOS
- Allison smith
- Blog
- Brands
- Check your email.
- Contact
- Course completed
- Courses
- Delivery engagements are fixed price.
- Donate
- Doug millington: make a living talk, Toronto 2011
- Editorial standards
- Every plugin on your site is a roommate. I pick them carefully.
- For publishers
- Frequently asked questions
- Glossary
- How I work
- I disclose every use of AI in your project, every time, before it ships.
- I take rescue work. Always.
- I teach you how I built it. That’s part of the build.
- Learning
- Local
- Lorne fade: make a living giving it away talk
- Mentoring is part of how I live. Not a side hustle, not a marketing channel, not a billable extension.
- My courses
- Privacy
- Professional writing
- Publishers
- Rescue work & small projects
- Reset your password
- Security and responsible disclosure
- Services
- Site audit
- Site maintenance
- Speaking & training delivery
- Stances
- Talks
- Technical SEO
- Terms of use
- The next developer who opens my code is in a teaching moment, whether I’m there or not.
- The public record: what I’ve built and where to check it
- What your small business website actually needs (a plain-language guide)
- WordPress and local SEO in Fort Erie
- WordPress and local SEO in Niagara Falls
- WordPress and local SEO in pelham
- WordPress and local SEO in port colborne
- WordPress and local SEO in wainfleet
- WordPress and local SEO in Welland
- WordPress is rarely the wrong tool. The question is usually about the developer.
- WordPress systems for publishers, learning, brands, and local business
- You’re in.
- Your account