1. Summary for decision-makers
- What you have: a Drupal 7 site (no community security updates since January 5, 2025) with 31 add-on modules, 2 custom modules and 1 custom theme.
- Biggest risks: unsupported core software; 4 add-on modules with known security advisories; a forms module that collects residents' contact details.
- Recommendation: migrate to Drupal 11. The content, URLs and forms move over cleanly, and most features map to modern equivalents.
- Fixed upgrade quote: $34,800 (low $29,500 · likely $34,800 · high $41,000), 12 weeks, in 3 phases. Phase 1 can fit under a typical small-purchase limit if you need to split it.
- Do now, at no cost: turn on the hosting provider's web application firewall, and remove 3 unused admin accounts (listed in section 5).
2. What's on the site
| Item | Count | Notes |
|---|---|---|
| Pages and news items | 1,240 | 6 content types (page, news, event, department, alert, meeting) |
| Files (PDFs, images) | 2,385 | 410 MB; agendas and minutes are 70% of it |
| Online forms | 9 | Contact, records request, permits inquiry, volunteer sign-up, others |
| Editor accounts | 14 | 3 not used in over a year (see section 5) |
| URL aliases | 1,180 | All preserved in the upgrade (no broken links or lost search rankings) |
| Integrations | 3 | Google Analytics (old version), a weather widget, the county GIS map embed |
Item
Count
Notes
Item
Count
Notes
Item
Count
Notes
Item
Count
Notes
Item
Count
Notes
Item
Count
Notes
3. Module-by-module scan
Legend: ✅ Update: a Drupal 11 version exists. 🔁 Replace: use a different module or a core feature. ✏️ Rewrite: custom code. 🗑️ Remove: no longer needed.
| Module | What it does on your site | Drupal 11 path | Action | Est. hours |
|---|---|---|---|---|
| Views | Lists of news, events, meetings | Built into Drupal 11 core | 🔁 Replace (rebuild 14 views) | 21 |
| Webform | 9 resident forms | Webform 6.x for Drupal 11 | ✅ Update + migrate submissions | 12 |
| Pathauto + Token | Clean URLs | Pathauto + Token for Drupal 11 | ✅ Update | 3 |
| Panels + Page Manager | Home and department layouts | Layout Builder (core) | 🔁 Replace | 18 |
| Field Collection | Staff directory entries | Paragraphs | 🔁 Replace + content migration | 14 |
| Date | Event and meeting dates | Built into core | 🔁 Replace | 4 |
| WYSIWYG + CKEditor 4 | Editing toolbar | CKEditor 5 (core) | 🔁 Replace + clean up old HTML | 8 |
| IMCE | File browser for editors | Core Media Library | 🔁 Replace + editor training | 6 |
| Metatag | Search and social previews | Metatag 2.x | ✅ Update | 2 |
| XML Sitemap | Sitemap for search engines | Simple XML Sitemap | 🔁 Replace | 2 |
| Google Analytics (old) | Visitor stats | Google Tag (GA4) | 🔁 Replace | 2 |
| Features | Config packaging | Core configuration management | 🗑️ Remove | 1 |
| jQuery Update | Old JavaScript library | Not needed | 🗑️ Remove | 0 |
| Admin Menu | Admin toolbar | Admin Toolbar | 🔁 Replace | 1 |
| (17 more small modules) | Various | 11 update, 4 replace, 2 remove | Mixed | 14 |
| pinecrest_alerts (custom) | Emergency alert banner | Rebuild as a small custom module | ✏️ Rewrite | 16 |
| pinecrest_meetings (custom) | Agenda and minutes import | Rebuild on the Migrate API | ✏️ Rewrite | 24 |
| pinecrest theme (custom) | Site design | New Drupal 11 theme on the same brand | ✏️ Rewrite | 48 |
| Module and theme subtotal | 196 |
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
Module
What it does on your site
Drupal 11 path
Action
Est. hours
4. Custom code review (excerpt)
| File | Issue | Fix | Hours |
|---|---|---|---|
| pinecrest_alerts.module | Uses Drupal 7 hooks and db_query(), which don't exist in Drupal 11 | Port to a service plus a block plugin | 8 |
| pinecrest_alerts.module | Database query built from unchecked input | Use the parameterized query API (also fixes a security weakness) | 2 |
| pinecrest_meetings.module | Imports agendas by scraping a vendor page | Use a Migrate API source with scheduled runs | 16 |
| template.php (theme) | 600 lines of preprocess logic | Move into Twig templates and small preprocess functions | 12 |
File
Issue
Fix
Hours
File
Issue
Fix
Hours
File
Issue
Fix
Hours
File
Issue
Fix
Hours
The full report lists every file and function that needs to change.
5. Security and accessibility snapshot
Security
- Drupal 7 core: unsupported since January 5, 2025.
- 4 add-on modules have published security advisories, with fixes available only in paid extended support or by upgrading.
- 3 admin accounts unused for over a year: remove them now.
- No web application firewall at the hosting level: turn it on now (free with most hosts).
Accessibility (WCAG 2.1 AA, automated scan of the top 25 pages)
| Issue | Pages affected | Fixed by the upgrade? |
|---|---|---|
| Images missing alt text | 18 | Partly: the new editor requires alt text going forward; older images need a content pass (included) |
| Low color contrast (gray text) | 25 | Yes: the new theme |
| Form fields without labels | 6 | Yes: Webform 6 plus the theme |
| Tables without headers (agendas) | 9 | Yes: the new meetings template |
| PDFs not tagged for screen readers | ~300 | No: separate remediation, quoted as an option |
Issue
Pages affected
Fixed by the upgrade?
Issue
Pages affected
Fixed by the upgrade?
Issue
Pages affected
Fixed by the upgrade?
Issue
Pages affected
Fixed by the upgrade?
Issue
Pages affected
Fixed by the upgrade?
Deadline note: under the DOJ's ADA Title II rule, cities under 50,000 people must meet WCAG 2.1 AA by April 26, 2028.
6. Upgrade or switch?
| Option | One-time cost | Yearly cost | Fit |
|---|---|---|---|
| Upgrade to Drupal 11 (recommended) | $34,800 | Hosting about $1,200/yr, paid to the host you choose (we recommend one and migrate you onto it), plus optional maintenance from us | Keeps your content, URLs, forms and flexibility; no license fees |
| Switch to a government website subscription service | Lower setup | Ongoing subscription, often several thousand a year | Simpler editing, less flexibility; a content migration is still needed |
| Do nothing | $0 now | Rising risk | Not recommended: unsupported software on a public site |
Option
One-time cost
Yearly cost
Fit
Option
One-time cost
Yearly cost
Fit
Option
One-time cost
Yearly cost
Fit
7. Fixed quote and timeline
| Phase | What happens | Weeks | Price |
|---|---|---|---|
| 1. Foundation | Drupal 11 build, new theme, content model, accessibility fixes | 1–5 | $13,900 |
| 2. Migration | Content, files, URLs, forms and custom modules move over; editor training | 6–10 | $15,300 |
| 3. Launch | Testing, accessibility check, launch, 30 days of support | 11–12 | $5,600 |
| 12 weeks | $34,800 |
Phase
What happens
Weeks
Price
Phase
What happens
Weeks
Price
Phase
What happens
Weeks
Price
Phase
What happens
Weeks
Price
Phase 1 alone fits under many small-purchase limits, so it can start without a formal bid.
Optional: monthly support plan (security updates, small fixes, 4 hours a month).
8. Next steps
- Choose: build it with Op Logic, or take this report to any developer. It saves them the discovery work you'd otherwise pay them for.
SAMPLE REPORT. City of Pinecrest Valley is fictional; findings and prices are illustrative.