Bookly and Amelia are the dominant WordPress booking plugins in 2026. Both are good. Both have a ceiling. This is the framework for when custom beats either.
What Bookly and Amelia do well
Both ship with provider-aware calendars, conditional pricing, multi-service support, payment integration (Stripe, PayPal, WooCommerce), basic CRM hooks via Zapier, and translation-ready strings. Bookly has more granular permission control; Amelia has a slicker admin UX. For 80% of WordPress booking needs, one of them is the right answer.
Where both hit a wall
Five recurring patterns:
1. Multi-vendor / marketplace shapes. Per-vendor calendars + per-vendor payouts (Stripe Connect) + per-vendor commission rules + per-location admin scopes. Both plugins handle “multiple staff” but not “multiple independent vendors with their own books.”
2. Complex conditional pricing. Bookly’s Special Days addon handles peak-vs-off-peak. Amelia’s pricing rules handle service variants. Neither does “per-customer agreed rate based on contract history + service tier + day-of-week + duration discount + multi-service bundle discount” without a heavy customization.
3. HIPAA-aware delivery. Email delivery via SMTP-default is fine for most cases. For dental, medical, therapy practices needing BAA-supported email delivery (Postmark, SendGrid with BAA), encrypted form-data storage, and audit logging — both plugins need significant customization. Easier to start custom.
4. Conflict-check / matter-routing workflows. Legal firms running conflict checks against an existing matter database; clinics routing new patients to the right physician by specialty + insurance + load. Neither plugin’s admin UX maps to these workflows; staff fight the tool.
5. Custom workflow steps post-booking. Engagement-letter generation, intake-form orchestration, document-collection workflows. Both plugins can email a confirmation; neither runs a multi-step post-booking workflow elegantly.
The “should I switch?” test
Three questions:
- Is your current plugin failing on a workflow that’s blocking revenue? “We can’t take this kind of booking” → custom is justified.
- Is the workflow unique enough that no off-the-shelf admin UX fits? Multi-tab settings dump for a workflow your team uses 12% of → custom is cleaner.
- Will you use this for 3+ years? Custom payback math needs runway.
Three yeses → custom. Any no → keep the plugin.
The realistic cost comparison
Bookly Pro: $89 one-time + ~$60/year recurring for major addons. Amelia: $59 one-time for the base + Pro at $159 + add-ons. Most teams spend $300-600 in year one on either, then ~$100-200/year ongoing for updates + addons. Over 5 years: $800-1,600 total.
Custom build: from $4,800 for a productized plugin (booking + intake + Stripe + CRM webhook + admin UX), up to $12,000 for a platform-grade plugin (multi-vendor + complex pricing + HIPAA-aware delivery). Optional $299-499/mo retainer for ongoing.
For most teams in the “should I switch?” position, the math is: custom pays back inside year 2-3 on TCO basis, with the additional benefit of features the off-the-shelf plugin can’t do (the reason you’re evaluating custom in the first place).
What custom should ship with
Beyond the workflow features driving the switch:
- Plugin in your repo (your IP, your code).
- phpUnit tests on critical paths.
- WP-CLI commands for ops (bulk imports, bookings transfer, calendar blocking).
- Translation-ready strings.
- Security baseline (capability checks, nonces, prepared queries, escaped output).
- 14 days post-launch iteration included.
For specing a custom booking plugin, see /wordpress-booking-plugin-developer/. For industry-specific shapes, see /booking-plugin-for-dental-clinics/, /booking-plugin-for-legal-firms/, or /booking-plugin-for-wellness-spas/.