by Tony Zeoli | Apr 20, 2026 | AI, Maintenance & Security
There’s a task that every WordPress developer knows intimately — the weekly ritual of logging into each client site, running updates, taking notes, drafting an email, and sending it off to the client with a summary of what changed. If you manage one site, it’s a minor inconvenience. If you manage ten, fifteen, or twenty, it becomes a significant portion of your week — repetitive, manual, and completely unscalable.
For years I handled it the old way. Log in. Update. Screenshot. Write up. Send. Log out. Repeat. I had looked at services like ManageWP that centralize multi-site WordPress management, but the subscription costs stack up quickly when you’re running a boutique agency, and the tradeoff between cost and control never felt right for how I work.
Then I discovered Claude.
A Different Kind of Coding Partner
I’d been using AI tools in my work for a while — Sumo AI had been part of my workflow for content production — but I’d never applied AI to a WordPress development project. When I started thinking seriously about building my own maintenance plugin, I decided it was the right opportunity to find out what working with Claude on a real, production-grade WordPress plugin actually looked like.
What I found surprised me. Claude wasn’t just a code generator. It was a genuine development partner — one that could explain why a piece of code worked a certain way, catch problems before they became bugs, and push back when I was heading in the wrong direction. When I described what I needed — a plugin that would manage updates, log every action, send branded email reports to clients, and handle spam filtering — Claude didn’t just produce code. It helped me think through the architecture, suggested the right WordPress APIs to use, and flagged patterns that would cause problems later.
For someone who knew enough about WordPress to know what I wanted but not always how to build it at the level of quality I needed, this was transformative.
From Spreadsheet to Software: What the Plugin Does
The core problem Greenskeeper solves is the gap between WordPress’s built-in update screen and what a professional agency actually needs when maintaining client sites.
WordPress’s Updates screen tells you what needs updating and lets you apply those updates. What it doesn’t do is keep a searchable log of everything that happened, build a branded email report for your client, handle SMTP delivery so the email actually arrives, or give you a layered spam filter with a audit trail. You either cobble that together yourself — spreadsheets, email drafts, copy-paste — or you pay for a managed service.
Greenskeeper bridges that gap in a single plugin. It manages Core, plugin, and theme updates in separate sections with per-item checkboxes and a real-time progress bar. Every update is automatically logged to a session history with success and failure details. After running updates, one click builds and sends a branded HTML maintenance report to your client — your agency logo, your company name, the full list of what was updated, any notes you want to include, and a spam activity summary if you’re using the built-in filter.
The spam filter itself is a two-layer system: local rules (honeypot fields, submission timing, link counting, keyword and IP blocklists) backed by optional Akismet cloud filtering. There’s a full Spam Log page showing every blocked attempt with one-click IP blocking. And because agencies run on different server infrastructure, there’s built-in SMTP configuration supporting nine providers — SendGrid, Mailgun, Brevo, Gmail, Microsoft, and more — so you never have to add a separate SMTP plugin.
On multisite networks, the plugin adds a Site Scope Selector across every management page so you can view and manage any single site or the full network from Network Admin.
The Name That Wasn’t Generic Enough
The plugin didn’t start life as Greenskeeper. It started as Site Maintenance Manager.
When I submitted the plugin to the WordPress.org directory for review, the team came back with feedback that the name was too generic — too close to existing tools and not distinctive enough to stand on its own. They were right. “Site Maintenance Manager” described what the plugin did, but it didn’t say anything about who built it or why it was different from anything else.
Claude and I worked through the naming problem together. I wanted something that captured the idea of careful, methodical maintenance — the kind of invisible, expert work that makes everything run smoothly for everyone else. We landed on Greenskeeper.
In golf, the greenskeeper is the professional responsible for maintaining the course — the fairways, the greens, the hazards, every inch of the 9 or 18 holes that players take for granted because they’re always in perfect condition. The greenskeeper works early in the morning before anyone else arrives, fixes what needs fixing, and disappears before the first tee time. Nobody thinks about the greenskeeper when the course is in great shape. That’s exactly the point.
That’s what a good WordPress maintenance workflow should feel like for your clients. They never think about updates because you’re handling it. Everything just works.
The WordPress plugin team accepted the new name, reserved the slug, and the plugin is now in review at wordpress.org/plugins/greenskeeper.
Building in Public: The GitHub Repository
Throughout development, Claude also taught me how to manage the project properly in version control. I hadn’t previously worked with a GitHub repository dedicated to a single WordPress plugin, and setting up the right structure — folder naming, the main plugin file, the readme.txt format that WordPress.org requires, branch management — was all new territory.
The plugin is now maintained in its own public repository at github.com/digitalstrategyworks/greenskeeper, where every version is tracked, documented, and available. The repository includes both a GitHub-formatted README with full feature documentation and a WordPress.org-format readme.txt with installation instructions, FAQs, an external services disclosure, and a complete changelog going back through every release.
Having a properly maintained public repository matters for more than just version control. For a plugin heading toward WordPress.org listing, it signals to potential users and contributors that the project is actively developed and professionally maintained. It’s also where the issues log lives — a useful feedback channel as the plugin moves from internal use toward public availability.
The Problems We Solved Together (And Why They Matter)
Building a production-quality WordPress plugin means navigating a set of requirements that go well beyond “does it work.” The WordPress.org review team maintains strict standards for security, coding practices, and documentation — standards that exist because plugins run on hundreds of millions of websites and a single vulnerability or poorly-written query affects everyone.
Several of the issues we resolved together speak directly to the broader WordPress ecosystem:
Premium plugin deactivation. This was the most critical bug we found. When Greenskeeper attempted to update a premium plugin like Gravity Forms, ACF Pro, or Sucuri, the plugin would sometimes be deactivated after the update ran. The root cause was subtle: premium plugin vendors generate signed, time-limited download URLs that can expire between the moment the update scan runs and the moment the actual upgrade fires. When WordPress’s upgrader receives a 401 or 403 response trying to download from a stale URL, it calls deactivate_plugins() as part of its own error recovery — standard WordPress behaviour, but catastrophic in this context. The fix was to check whether the package URL is still valid before attempting the upgrade, and if it isn’t, force a fresh wp_update_plugins() call to get a new signed URL from the vendor’s server — exactly what WordPress core does before its own upgrade process. Any plugin that triggers WordPress updates programmatically needs to handle this correctly.
$_SERVER variable sanitization. The WordPress.org review team flagged that $_SERVER variables — HTTP_USER_AGENT, HTTP_REFERER, REMOTE_ADDR — were being used without sanitization in the spam filter’s Akismet integration. Although these come from the server environment rather than user form input, they can be manipulated by the sender of the request and must be treated as untrusted input. This is a common oversight in plugin code across the ecosystem and something the review process correctly catches.
Prepared SQL statements. Several database queries were using table name variables in ways that the static analysis tools couldn’t verify as safe, even though the values came exclusively from $wpdb->prefix plus fixed strings. The fix — wrapping table names with esc_sql() at the point of variable assignment — addresses the checker’s concern and is the correct defensive pattern for all custom table queries in WordPress.
External services documentation. The plugin connects to Akismet’s API for optional cloud spam filtering. WordPress.org requires that any external connection be fully documented in the readme: what service it is, what data is sent, when it’s sent, and links to the service’s terms of service and privacy policy. This requirement exists to protect users — they should always know exactly what data their installed plugins are transmitting and to whom. Adding a complete == External Services == section is now part of the plugin’s submission package.
Batch update timeout handling. On shared hosting environments, running updates on multiple plugins in sequence was failing after the first item with a generic “Request failed” error. The cause was a combination of jQuery’s default AJAX timeout (which has no explicit limit and varies by browser) and PHP’s max_execution_time being hit on slower servers. The fixes — switching to $.ajax() with an explicit 120-second timeout, adding an 800ms delay between sequential updates, and calling set_time_limit(300) in the PHP handler — ensure that updates complete reliably on the hosting environments where agency clients actually live.
What’s Next for Greenskeeper
The plugin is currently v1.9.7 and in review at WordPress.org. Once it’s approved and listed in the directory, the next development phase focuses on a Pro tier through Freemius integration.
The first Pro features planned include scheduled automatic updates — so maintenance runs on a cron schedule without anyone needing to log in — and a Performance Reporting module that pulls Google PageSpeed Insights data and includes a performance summary in the client email report. These are capabilities that agencies currently pay for through managed services like ManageWP, and building them into a self-hosted plugin means you own the workflow completely.
There’s also a Plugin Intelligence layer in planning that would manage license status awareness for premium plugins, understand update prerequisites and dependencies, and surface contextual guidance about known update issues before you run them.
What Working With Claude Taught Me
The most important thing I learned from this project wasn’t a specific piece of code or a WordPress API. It was that AI-assisted development works best when you bring your domain expertise and let the AI bring its technical depth — and when you’re willing to push back and ask questions rather than just accepting the first answer.
When Claude made architectural decisions I didn’t understand, I asked why. When a bug turned out to be more subtle than the first fix suggested (the premium plugin deactivation issue went through two rounds before we got the root cause right), we worked through it together until we had an explanation that made sense technically and a solution that would actually hold. When the WordPress.org review team came back with legitimate criticisms, we addressed every one of them and understood the reasoning behind each requirement.
That process — question, understand, fix, understand why — is what produced a plugin I’m confident putting in front of clients.
Greenskeeper is available at github.com/digitalstrategyworks/greenskeeper and will be listed on WordPress.org once the review is complete. If you’re a WordPress developer or agency owner who’s been handling maintenance the manual way, keep an eye on it.
The greenskeeper is almost ready for opening day.
Tony Zeoli is the founder of Digital Strategy Works LLC and Netmix LLC. He has been building on the web since the early days of the internet and currently focuses on WordPress strategy, development, and digital media infrastructure.
Questions or feedback? Reach out at digitalstrategyworks.com.
Tony Zeoli founded Digital Strategy Works to provide small and medium size businesses with end-to-end digital strategy consulting. With over 16+ year of experience working on digital media projects for start-ups, non-profits, institutions, and corporations, Zeoli brings a wealth of experience that cuts across the digital media spectrum.
by Tony Zeoli | Sep 12, 2025 | Blog
In today’s digital world, businesses must maintain a unified brand voice and visual identity across various social media platforms to build strong brand recognition and deepen audience engagement. Each platform has its own characteristics, but a consistent brand presence can foster trust and long-term loyalty. Keep reading for strategies that businesses can employ to keep their branding consistent across all social media channels.
Develop a Multi-Platform Style Guide
A brand style guide is essential for ensuring consistency, especially when different teams or individuals manage different social media channels. While the brand’s core identity remains the same, the style guide should account for the unique nature of each platform. For example, Instagram may focus more on visuals, while platforms like LinkedIn may require a more formal tone.
Tailor the guide to each platform without straying from the core brand message. Include best practices for tone, language, and visuals on each platform. This approach ensures that, while the content may vary in format or tone slightly, it all feels like part of the same brand.
Use Consistent Visual Branding
Visual identity plays a major role in creating a unified brand image across social media. The company logo, fonts, colors, and imagery should remain consistent across all platforms. Whether it’s a Facebook cover photo, an Instagram post, or a YouTube thumbnail, these elements should be instantly recognizable as belonging to your brand.
Create templates for common social media posts, such as quotes, product highlights, or
announcements, that align with your brand’s visual identity. This reduces the need for constant
redesign and ensures consistency. However, make sure to optimize images and visuals for
each platform, as dimensions and formats differ.
Adapt Your Voice Without Losing Consistency
While each social media platform has its unique style, adapting your brand voice to fit the audience and context of each platform is crucial for engagement. For instance, your tone on Instagram may be more casual, while LinkedIn might demand a professional approach.
That said, any adaptations should remain within the brand’s core voice. The brand should feel familiar across channels, regardless of variations in tone—whether professional, friendly, or humorous. An effective way to maintain consistency is by using the same key phrases or brand-specific jargon across all platforms, ensuring a seamless experience for your audience.
Leverage Content Repurposing Smartly
Repurposing content across social media channels is a great way to maintain consistency, but it should be done thoughtfully. Directly copying content from one platform to another may harm engagement because each platform’s audience expects different styles and formats.
Instead, repurpose content in a way that feels native to each platform. For example, turn a long blog post into a series of Instagram visuals or a concise Twitter thread. This approach ensures that your brand message remains consistent while appealing to each platform’s specific audience and content preferences.
Monitor and Adjust Based on Audience Feedback
Maintaining a unified brand voice and visual identity across platforms requires ongoing monitoring. Audience preferences change, and your brand’s approach may need to adjust to remain relevant while maintaining core consistency. Regularly analyze social media engagement metrics and pay attention to feedback to gauge how well your content is resonating
with audiences on different platforms.
Based on this feedback, you can make subtle shifts in tone or visual style, adapting to what works best for each platform without compromising your brand’s overall identity. This ensures that your messaging remains fresh and engaging while staying true to your core branding.
Using Adobe Express to Maintain a Unified Brand Voice and Visual Identity
Adobe Express offers a suite of tools that can help businesses maintain a cohesive brand voice
and visual identity across various social media platforms. Below are some key Adobe Express
features that can streamline the process of ensuring brand consistency:
- Easily create a professional logo that reflects your brand identity and use it across all your marketing materials for instant recognition.
- Remove image backgrounds to create clean, polished visuals that highlight your products or services without distractions.
- Build engaging infographics to communicate key brand messages and data in a visually compelling and consistent style.
- Design sleek presentations that carry your brand’s fonts, colors, and imagery for a cohesive look across every customer touchpoint.
A unified brand voice and visual identity across social media channels are critical for building strong brand recognition and increasing audience engagement. By defining your brand’s core identity, developing a tailored style guide, and ensuring consistency in both visuals and tone, businesses can build a cohesive and memorable presence. Balancing the need for platform-specific content with a unified brand approach will help engage diverse audiences effectively while maintaining consistency across all channels.
Unlock your digital marketing strategy — schedule a call with us and we’ll help identify solutions that work for your band or small business.
Photo via Adobe Stock
Tony Zeoli founded Digital Strategy Works to provide small and medium size businesses with end-to-end digital strategy consulting. With over 16+ year of experience working on digital media projects for start-ups, non-profits, institutions, and corporations, Zeoli brings a wealth of experience that cuts across the digital media spectrum.
by Tony Zeoli | Oct 7, 2019 | WooCommerce
Clearly Better Days, a CBD oil company based in the New England area with CBD products for people and pets sold both in physical retail locations and online with WooCommerce (an e-commerce plugin for WordPress) are in a growth phase. The company needed to make immediate functional changes to their website for a variety of business and compliance reasons.
From website accessibility for customers with visual impairments to cookie acceptance and adherence to the framework of the General Data Protection Regulation that covers European citizens globally, Digital Strategy Works installed and configured plugins to ensure Clearly Better Days are compliant with both the American Disabilities Act and European Law, while also activating a new payment gateway servicer from Fortress Payments and NMI. Fortress Payments provides merchant services solutions to small businesses seeking to take payments online for CDB products.
WordPress Website Accessibility

Accessibility functions are now enabled on the Clearly Better Days website.
Digital Strategy Works installed and configured User Way’s free accessibility widget, which helps website owners comply with Section 508 of the Department of Justice’s ADA (American with Disabilities Act) Standards for Accessible Design and addresses the need for the elderly or those with physical, visual, mobility, or situational impairments to be able to access and shop the Clearly Bettery Days website.
WooCommerce Retail Locations Finder

Google Maps enabled Pins with Location data.
Clearly Better Days are both an online and brick-and-mortar retailer through a number of retail locations throughout the New England area. We added a Retail Locations page with a map view and a list view (not shown) of all retail locations that carry Clearly Better Days products. Customers can click on a location and view the store name and address on an embedded, mobile responsive Google Map.
WooCommerce Product & Batch Number Search

Sidebar search box with autocomplete and add to cart feature.
On the website’s Shop page, Customers can now use the search box with advanced functionality. The autocomplete function searches for the product as you type and it returns the product image, title, and allows you to add-to-cart directly in the search result. Customers who purchased products offline can search for COA’s by Batch Number, now located on the product sales page.
Product COAs

COA’s attached to a Product Sales Page
Customers who purchase CBD products at retail scan a QR code on the product’s label, which is hyperlinked to a corresponding WooCommerce Product Page complete with the COA download attachment.
WooCommerce Sidebar Filter by Category & Price

Sidebar displays product categories and the number of products in a category, as well as filter by price option.
Sidebar displays product categories and the number of products in a category, as well as filter by price option.
We added a sidebar to filter products by search, category, and price. The customer can use any option to filter the Product grid in WooCommerce.
Data Privacy & GDPR Compliance for WordPress & WooCommerce

Clearly Better Days GDPR Compliance Acceptance Button

WooCommerce Data privacy policy acceptance at checkout.
We added a sitewide cookie acceptance banner so Clearly Better Days would be in compliance with the General Data Protection Regulation (GDPR), a Europen law that applies to EU citizens globally. U.S. website owners must comply with this regulation because European citizens living in the US or abroad can purchase products from any stateside website, so the site should comply with EU privacy laws for that reason. We also added a data privacy acceptance selection at Checkout to ask customers to confirm the customer agrees with the company’s privacy policy.
WooCommerce Age Check Verification

Many states require CBD products are sold to customers over the age of 18. We implemented an age check verification at checkout to verify the customer is over the age of 18.
WooCommerce Wholesale Pricing

WooCommerce Wholesale Plugin Pricing Screen
Clearly Better Days wholesale customers with approved login access can view wholesale pricing and order from the same website as retail customers. We are working to make additional visual improvements and helping Clearly Better Days with an SEO and Digital Marketing strategy. But for now, we were so excited about this project, we wanted to share it with you!
If you or someone you know is setting up an online CBD oil Ecommerce business, please let them know how we helped Clearly Better Days ensure they were in compliance with regulations, implemented a new vendor for secure payment processing to take online orders in WooCommerce, and other improvements to grow their online business.
Call (828) 412-0990 or use our online form to send us a message.
Tony Zeoli founded Digital Strategy Works to provide small and medium size businesses with end-to-end digital strategy consulting. With over 16+ year of experience working on digital media projects for start-ups, non-profits, institutions, and corporations, Zeoli brings a wealth of experience that cuts across the digital media spectrum.
by Tony Zeoli | Feb 5, 2019 | Custom Wordpress Development, Portfolio
Digital Strategy Works is pleased to announce the completion and launch of a major project we’ve had underway for some time now. Bookstr.com, a New York City-based authors and books blog needed to migrate from Drupal to WordPress for a host of reasons. The company was acquired and its Drupal site was a legacy aspect of prior ownership, but the Drupal site was much more difficult to maintain and upgrade for a small staff without an internal development team. Bookstr made the decision to move off of Drupal and onto WordPress, which would give them a bit more control over updates and maintenance, and provide additional tools for their writers and editors to publish content, create quizzes and polls, and cross post content into social media. And, the All in One SEO Pack plugin for WordPress SEO would allow them to better control their on site SEO, as well as update their Google and Bing sitemaps.
Digital Strategy Works performed the migration from Drupal to WordPress of over 9,000 posts and 40,000 images. Drupal to WordPress migrations at this scale are not easy, because the migration cannot take place from web server to web server. Servers time out after trying to run long processes. The Drupal database must be downloaded and installed on a local machine (your computer). Using a premium plugin and other software, the Drupal content with its associated images could then be migrated into a fresh WordPress install.
The caveat to this migration comes when trying to then upload a heavy WordPress site with thousands of URLs and tens of thousands of images back up to a web sever when the hosting company (in this case, Pantheon) only allows for the client’s account to have a set amount of storage. In the migration process, we learned a great deal about how to migrate Drupal content into a WordPress shell, then move that WordPress site up to its hosting environment. It was no small task. After running the process a number of times, we were able to complete the migration successfully.

Bookstr.com New WordPress Home Page
For this project, we were also asked to take the pre-existing Drupal “theme” and rebuild into a WordPress theme template. In a Drupal to WordPress migration, the Drupal theme that was built for the Drupal platform will not work on the WordPress platform. A new theme had to be created and with additional options for advertising, as well as to fix issues that were broken in Drupal, like Most Popular Posts, a sidebar widget which displays the most popular posts on the site for a period of time. For the redesign, we used the Make Theme by Theme Foundry, which is an excellent theme for publishers, as the base “child theme,” for the site. Make comes with page-builder functionality for custom layouts of pages and posts, as well as the ability to create and distribute widget content in page, posts, and sidebars. We worked with our internal developer and our offshore development partner, Hashtag Systems Inc, to modify a “child theme” built alongside the Make theme framework. Hashtag contributed a great deal to getting the pop-up overlay in mobile and desktop to function properly. And, they helped style the hero post grid carousel for mobile devices, so that posts in the hero banner would look as good in mobile as on desktop.
The old Drupal site did not have an ad management software package, so we installed and configured Ad Sanity, a popular WordPress plugin to help Bookstr manage it’s Google Adsense placements, while also giving the company the opportunity to sell, manage, and track ads sold directly on their site.
In these Drupal to WordPress migrations, redirecting Drupal URLs to WordPress URLs is essential. We were able to export all prior Drupal URLs and match them with their corresponding WordPress URls, so that Google page rank was passed onto the new site.
The final piece of the project was to build a pop-up to help Bookstr capture email addresses for special promotions. And, we assisted the company by adding DMARC to their DNS manager, so that emails originating from the Bookstr.com domain are not seen as spam by companies that black list spammers.
We also armed the client with All in One SEO Pack, the most powerful SEO plugin for WordPress. It’s truly the most powerful professional SEO plugin for anyone who is serious about on-site search engine optimization for WordPress. Given the content mix of Bookstr, the plugin will allow their editorial team to not only plan their SEO strategy, but also manage social meta optimization, as well. Sitemaps were submitted to all the major search engines and we connected Google Analytics to Google Search Console for ease of tracking SEO performance.
Need us to migrate your Drupal site to WordPress? We can help. Just contact us today to discuss your project and get a quote.
Tony Zeoli founded Digital Strategy Works to provide small and medium size businesses with end-to-end digital strategy consulting. With over 16+ year of experience working on digital media projects for start-ups, non-profits, institutions, and corporations, Zeoli brings a wealth of experience that cuts across the digital media spectrum.
by Tony Zeoli | Jan 24, 2019 | Updates
We are super excited to announce our Agency Member Partner status with WP Engine, the leading provider of WordPress Manage Hosting solutions for startups, small business, and entrepreneurs.
Digital Strategy Works partnered with WP Engine over 4-years ago to host all of our client websites. We couldn’t be happier WP Engine’s service and support. Prior to WP Engine, we worked with Media Temple and even tried our hand at running our own VPS on Linode, but things being as they were at the time, both solutions were simply not the right fit. We needed top-notch WordPress-trained support technicians and we also needed to get out from under being system administrators, because hosting and securing WordPress were two businesses that took away from our core focus serving our clients branding, web development, SEO, and social media needs.
As a WP Engine Member Agency partner, we can continue to do what we do best – build exceptional WordPress websites. And, we can feel confident as a WP Engine Agency Member Partner, that our clients are supported 100% by experts in WordPress hosting and security.
Download our WP Engine Member Agency Partner Guide to managed WordPress Managed Hosting with WP Engine: WP-BRO-AgencyEnable-v07-DSW
Tony Zeoli founded Digital Strategy Works to provide small and medium size businesses with end-to-end digital strategy consulting. With over 16+ year of experience working on digital media projects for start-ups, non-profits, institutions, and corporations, Zeoli brings a wealth of experience that cuts across the digital media spectrum.