A year of foundation work. 2024 was when most of the modernization that paid off in 2026 actually got built — App Bridge v4, Rails 8, a smarter GraphQL client, a new checkout UI extension, and the backend that the rebuilt POS app would later sit on top of. Plus a handful of merchant-visible features along the way.
New features
Japanese support. The Event Ticketing app now renders correctly in Japanese, including bundled CJK fonts so Japanese characters render cleanly on PDF tickets and Apple Wallet passes.
Basic plan support for the Shopify Flow ticket_checked_in trigger. The trigger has existed since 2022 but was previously gated to higher Shopify plans. As of February 2024, merchants on the Basic plan can build Flow automations that fire when a ticket is scanned at the door.
Quantity changes when editing orders. When a customer (or your staff) edits an existing event order in Shopify, the editing flow now properly handles quantity adjustments — adding or removing tickets — instead of treating the edit as an all-or-nothing replacement.
A new Checkout UI extension. A new generation of the checkout extension shipped in July, replacing the older ScriptTag-era version. This is the same surface that got further rewritten on Shopify’s modern UI Extensions framework in early 2026 — but the post-purchase ticket display you see today on the Thank you and Order status pages traces directly to this work.
POS app backend foundations. The server-side scaffolding for what would become the rebuilt POS app — order lookup, location/pickup mapping, a dedicated POS controller — landed in June. The visible POS app rewrite came later, but it’s standing on this.
Speed and reliability
Rails 8. A full upgrade to Rails 8 in early December, including a swap to Propshaft and the trimmer asset pipeline. Most merchants will only notice it as faster page loads and fewer occasional Rails-side gremlins.
Ruby 3.3 with YJIT enabled. YJIT is Ruby’s just-in-time compiler, which gives a measurable performance boost on hot paths. Combined with the Rails 8 upgrade, the app’s request latency dropped noticeably across the board.
GraphQL client with a points limiter. Shopify’s GraphQL API has a cost-based throttle — burn too many points too fast and your queries start being rejected. The new GraphQL client tracks the points budget in real time and paces itself to stay under the ceiling, instead of pushing into the throttle and retrying. The user-visible upshot: fewer stalled inventory updates and fulfillments during busy periods on Shopify Plus stores.
App Bridge v4. Shopify’s embedded-app communication layer got a major version bump. The Event Ticketing admin app moved with it — required for the upcoming Shopify embedded-app standards.
Jemalloc and various tuning. Memory allocator swap on the web and worker dynos, plus dialed-in Sidekiq concurrency. Translates to better memory headroom and fewer dyno restarts under load.
Bug fixes worth mentioning
- Tickets count fix — a discardable-mixin edge case was occasionally undercounting tickets in some views; resolved
- Events API filter fix — an issue where complex event filters could fail to apply on the public events API was tightened up
- Reduced webhook chatter — Shopify product webhooks were filtered down to only the events the app actually needs, which cuts a lot of background load on busy stores
- Spam controls on inbound merchant signup forms
Behind the scenes
A few items that don’t affect merchants directly but make the rest of the app better:
- Token exchange auth migration. Shopify’s newer authentication model replaces the older OAuth flow with a session-token-based exchange. Less visible re-authentication, more reliable session handling.
- Logging system overhaul. A big restructure of how the app emits logs and traces, in preparation for better observability tooling (which paid off when we replaced Bugsnag with Sentry in 2026).
- APNS removal. An old, unused Apple Push Notification Service integration came out of the codebase — wallet pass updates use Apple’s PassKit Web Service directly.