Skip to Main Content

// CASE STUDY · BNEI YEHUDA TLV

Bnei Yehuda

A whole club.
In one system.

An official site, store and tickets for the fans — and a control room for the club's staff.

Bnei Yehuda Tel Aviv is a football club with 90 years of history, a loyal crowd and a whole neighbourhood behind it. The official site had to be the digital home of all that: the next match, results and the table, the squad, the news, the official store — and, at the same time, a real working tool for the people who run the club every day.

onezero built the site, the store and the management system: an SSR frontend, a league-data integration, a WooCommerce store with name and number printing, payments and invoicing, and an admin console for orders, fulfillment, printing, payment reconciliation, products, matches, tickets and users.

bneiyehuda.co.il
The bneiyehuda.co.il home page: the next match with a countdown and a buy-tickets button, club news, the store and the league table
NEXT MATCH · LIVE TABLE
The official store on mobile: the 26/27 collection, the BYTLV collection and season filters
OFFICIAL STORE
  • league dataLIVEFixtures, results and the table from the league's API
  • fulfillment7Stages from payment to hand-over — printing queue included
  • match day8Categories in the checklist generated for every match
  • roles4Owner · admin · printer · staff — permissions per page

// 01 · What we built

Three products. One club.

Fans see a site and a store. Staff see a control room. Behind both — one codebase, shared data sources and one visual language in the club's orange.

  • 01FANS · SSR · LIVE DATA

    The official site

    The next match with a countdown, fixtures and results, the league table, the squad, news and gallery, a club page with a 3D trophy room, an all-time XI — all of it fast even when everyone logs on the same evening.

  • 02WOOCOMMERCE · PAYPLUS

    The official store

    Match kits by season, the BYTLV lifestyle line, name and number printing with a live preview, coupons, delivery or club pickup, payment and an automatic invoice.

  • 03ADMIN · OPERATIONS

    The control room

    A management system for the club's staff: orders, staged fulfillment, a printing queue with print-house exports, payment reconciliation, products and stock, match management with checklists, ticket distribution by SMS and users with permissions.

// 02 · The challenge

A football club
is also a small business.

Behind every match is a small team running a store, printing shirts, distributing tickets and coordinating buses and hotels — usually in spreadsheets, WhatsApp and memory. The system had to meet several demands at once:

  • 01

    Unify sources: news in WordPress, products in WooCommerce, league data from an external API, matches and tickets in our own database.

  • 02

    Hold match-day load — everyone checks the line-up and the score at the same hour.

  • 03

    Turn a printed shirt into a process: payment, printing, packing, shipping to the club, hand-over — without an order getting lost.

  • 04

    Give each staff member only what they need: the printer sees no prices and changes no orders.

  • 05

    Send tickets to fans, players and guests — no printing, no spreadsheets, and a record of who got what.

  • 06

    Feel like the club: orange, the lion, the stadium — and accessible to WCAG 2.0 AA.

And above all — every shekel collected has to match an order. No 'a payment went missing'.

// 03 · The solution

A match week.
Inside the system.

Instead of a feature list, we built the system around the club's real calendar. This is one week — from the moment the league publishes the round until the final whistle updates the table:

  1. 01

    The match enters match management — manually or synced from the league fixture list — with date, stadium and broadcaster

  2. 02

    A checklist is generated for home or away: logistics, operations, security and medical, teams and staff, crowd and tickets, match experience, media, post-match

  3. 03

    Staff close tasks with structured fields — bus departure time, hotel confirmation, lists, attachments — and the control room shows what is still open

  4. 04

    Ticket distribution: regular and VIP quotas, contacts by group, 'the regulars' in one click, and a PDF sent by SMS from the match's Drive folder

  5. 05

    On the site: the next match with a countdown, a buy-tickets button, and the store takes the pre-match wave of orders

  6. 06

    After the whistle: the result, the fixture list and the league table update from the league data — nobody types anything

  7. 07

    Meanwhile in the store: the new orders move to the printing queue, the daily print-house list and the fulfillment stages

OFFICIAL SITE · HOME

The next match, the table, the news and the store — on one screen, in the club's language: orange on black, the lion, the stadium.

bneiyehuda.co.il
The Bnei Yehuda Tel Aviv home page on desktop: the next-match card with a countdown, a news carousel, the store and the league table
NEXT MATCH · COUNTDOWN

// 04 · The store

A shirt with your name.
And a process behind it.

The official store runs on WooCommerce — but the fan never meets WooCommerce. They meet a fast store in club colours, organised by season, with the BYTLV collection and name-and-number printing you see on the shirt before you pay.

  • 01A catalogue by season: 26/27, 25/26, 24/25 and classics
  • 02BYTLV Collection — a lifestyle line with its own landing page
  • 03Name & number printing: shirt templates, digit styles, live preview
  • 04Server-side checkout with PayPlus and an automatic invoice
  • 05Coupons — including WooCommerce free-shipping coupons
  • 06Delivery or club pickup, customer e-mails at every step
  • 07Stock per size, and product videos
  • 08A server-side cache purged automatically when a product changes
The official store on mobile: a 'Store' heading, links to the 26/27 and BYTLV collections, season filters and the new-collection card
BYTLV · STORE

// 05 · Fulfillment & printing

From payment to hand-over.
No order falls through.

Every paid order enters a seven-stage flow: printing (if needed), print done, awaiting shipment, shipped to the club, arrived at the club, handed to the customer. The state lives on the order itself in WooCommerce, with a full history — so there is no second database to keep in sync.

  • 01Transitions only per an explicit table — no arbitrary jumps
  • 02Optimistic locking: two people never overwrite each other
  • 03Reverting a step — admin only, with a reason
  • 04The printer sees only the printing queue, without prices
  • 05A daily list and Excel export for the print house, a print sheet per order
  • 06Orders board: a 30-business-day SLA, alerts on ageing orders
  • 07Reconciliation: every PayPlus transaction against its WooCommerce order
  • 08Manual orders from the admin — phone, counter, sponsor

// 06 · Match management

Every match
comes with a checklist.

Match management is the club's operational heart. A match is created manually or synced from the league fixture list and immediately gets a home or away checklist. Every task can carry structured fields — yes/no, time, quantity, table — notes and files, and rolls up to a completion rate visible from the control room.

  • 01Sync from the league fixtures: opponent, date, stadium, round
  • 02A home and an away template, frozen per match at creation
  • 03Eight categories — from logistics to post-match
  • 04Structured fields: bus, hotel, staff lists, parking, equipment
  • 05Attachments, notes, autosave
  • 06Waze and Google Maps to the stadium, broadcaster, preparing/done status
admin/games
The admin's match-management screen: the next match against Hapoel Ra'anana with a 1/7 tasks progress ring, and the list of upcoming matches
BYTLV · MATCHES
admin/games/checklist
A match checklist in the admin: logistics and crowd-and-tickets categories, tasks such as hotel booking and the players' bus with time fields and attachments
MATCH CHECKLIST · 8 CATEGORIES

// 07 · Ticket distribution

A ticket by SMS.
Not on a slip of paper.

Every match has a quota of regular and VIP tickets — for players' families, management, sponsors, guests from the association. Until now it was managed in lists. Now it's a module: contacts by group, smart suggestions from previous matches, a 'regulars' row, and the ticket PDF sent straight to the phone.

  • 01Home and away quotas, regular and VIP tickets
  • 02Contact groups: players, families, management, sponsors, association and more
  • 03The PDF comes from the match's Drive folder — no manual upload
  • 04Sent by SMS via an Israeli provider, with Hebrew segment counting
  • 05A personal ticket page on the phone that works even without JavaScript
  • 06Export and data per match: who got what, when, how many

// 08 · The control room

BYTLV / Club Operations.

The management system has a brand of its own. Not another grey admin: warm cream for work surfaces, charcoal for navigation, club orange only for the primary action, Karantina for headings and the club's own icon family. The dashboard opens the morning with what matters: the next match, what needs attention, and where every order stands.

admin/control-room
The admin control room: a morning greeting, quick-action buttons, a 'next match' card with both crests and kick-off time, and order status tiles
BYTLV · CLUB OPERATIONS
  • 01

    Permissions enforced on the server, not just in the UI

  • 02

    Four roles and a page list per user

  • 03

    Confirmation before every destructive action, unsaved-change guards

  • 04

    Ctrl+K: navigation, actions, open an order by number

  • 05

    A dashboard with the next match, 'needs attention' and fulfillment status

  • 06

    Works on the phone: tab bar, drawers, mobile forms

  • 07

    AA contrast, full RTL, numbers and e-mails in LTR

  • 08

    Tested with Playwright on every screen, at 3 breakpoints

admin/products
The admin's products screen: summary tiles, filters and a product list with stock per size, price, printing type and publish status
PRODUCTS · STOCK PER SIZE

// 09 · For the fans

The table updates itself.
The trophies — in 3D.

The public side of the site was built to feel like the club, not like a template. Sports data arrives automatically, and marketing content stays with the staff in WordPress — nobody has to touch code.

  • Fixtures, results and table — from the league API, with a tidy empty state between seasons
  • Next match: countdown, broadcaster, link to tickets
  • The squad with a share screen per player
  • A 3D trophy room (Three.js) with a timeline of titles
  • All-time XI: the fan builds it, shares it as an image
  • News and gallery from WordPress, management and staff pages, financial reports
  • A 90th-anniversary splash
  • An accessibility statement and WCAG 2.0 AA compliance

Same code, same colours — on desktop, on tablet and on a phone in the stands.

bneiyehuda.co.il/league-table
The Leumit league table on the site: Bnei Yehuda Tel Aviv highlighted in second place, with games, wins, draws, losses, goal ratio and difference
LEAGUE TABLE · LIVE
bneiyehuda.co.il/games/schedule
The fixtures page: match cards by round with crests, the score, the league, date, stadium and broadcaster
FIXTURES · RESULTS

// 10 · Design & performance

Three principles.

  • 01

    Orange

    One language for the site, the store and the admin: club orange, black, the lion and the stadium as a backdrop, Karantina for headings. Even the stock screen looks like Bnei Yehuda.

  • 02

    Fast on match day

    Server-side rendering, a cache for everything that comes from WordPress, WooCommerce and the league, and automatic purges through webhooks when something changes. Even the admin is served from a warm cache.

  • 03

    Responsible

    WCAG 2.0 AA accessibility with a full statement, server-side permissions, customer details hidden from whoever doesn't need them, and a history for every change to an order.

// 11 · The outcome

A site for the fans.
A system for the club.

bneiyehuda.co.il is now the club's digital home: the next match, results and table update on their own, the official store sells kits and lifestyle with personal printing, and the staff run orders, printing, matches and tickets from one control room — from the office computer or a phone in the stands.

The system keeps growing with the club: further modules for customers, coupons and content are already marked in the menu — on the same infrastructure, the same permissions and the same language.

// 12 · Technology & capabilities

What's under the pitch

One SSR application serves the site, the store and the admin — with data sources that each stay where they belong.

  • FRONTENDReact Router 7 · React 19 · SSR
  • DESIGNTailwind 4 with a brand token system
  • COMMERCEHeadless WooCommerce: products, orders, coupons
  • CONTENTWordPress for news and gallery
  • DATASupabase/Postgres for matches, tickets and users
  • PAYMENTSPayPlus: payments, IPN, invoices, reconciliation
  • SPORTSLeague API: fixtures, results and table
  • MESSAGINGSMS, e-mail and Google Drive for tickets
  • OPSFulfillment flow with optimistic locking and history
  • PRINTINGExcel exports and print sheets for the print house
  • FANSThree.js for the trophy room, image sharing from the browser
  • INFRAServer cache, purge webhooks, Docker

// 13 · Running a club, a league or a peak-day business?

From a marketing site
to a system that runs things.

We build sites that hold load, stores that sell, and management systems staff actually use — with permissions, processes and history. Let's build yours.

Orange. Fast. In order.