Interactive football canvas
A visual workspace for positioning players and creating tactical or training scenarios.
Interactive SaaS Application
I developed an interactive football coaching environment that combines a Fabric.js tactics board with training-session planning, saved drills and animated visual instruction.

01Overview
EasyCoach was developed as a specialized planning platform for football coaches.
The application gives coaches a visual environment for creating drills, positioning players, illustrating movement and organizing exercises into complete training sessions. Rather than relying on a static image, coaches can use an interactive board to explain how a drill or tactical sequence develops.
I worked on the platform using React, Fabric.js, Node.js and Express. The project brought together the responsiveness of a browser-based graphics application with the structure expected from a modern SaaS product.
The platform has been used by coaching staff working at under-18 national-team level, making clarity and practical usability especially important.
02Challenge
Coaching diagrams become much more useful when they can communicate how a play develops over time.
That introduced a different level of complexity from placing static objects on a pitch. The application needed to manage player positions, visual instructions, sequences and saved session data while keeping the editing experience fast enough for day-to-day coaching work.
03Solution
The core board was built with Fabric.js and integrated into React.
Fabric.js handled the interactive canvas objects, while React controlled the broader application state and interface. Node.js and Express supported the application backend and the storage of planning data.
The interface was organized around coaching tasks. Users could work visually on the pitch, prepare drills and combine them into training sessions. The implementation focused on making the canvas a functional part of the product rather than a disconnected embedded tool.
A visual workspace for positioning players and creating tactical or training scenarios.
Supports visual explanation of how players and tactical elements move during a drill.
Allows coaches to add direction, movement and instructional markings to the pitch.
Makes it possible to prepare structured layouts for tactical discussion and training.
Exercises can be stored and reused instead of being recreated for every session.
Individual exercises can be organized into a complete and structured training plan.
04Technical approach
React and Fabric.js solve different problems.
React is declarative and works well for controlling application interfaces and state. Fabric.js directly manages canvas objects and interactions. Integrating the two requires a deliberate boundary so React does not unnecessarily recreate the canvas while changes made on the canvas can still be represented in the application data.
The board logic was therefore handled as a specialized interactive layer, with React managing the wider editing experience and Node.js supporting persistence and application services.
Technical challenge
A static position can be represented with simple coordinates. A coaching sequence needs more context: the objects involved, their intended movement and the relationship between different steps.
The application needed a structured way to retain the visual plan so that a saved drill could be reopened and understood later. This required the canvas to function as both a visual editor and a representation of reusable application data.
05Interface
06Outcome
EasyCoach became a strong demonstration of how browser-based graphics can solve a specialized professional problem.
The platform combined canvas interaction, animation-oriented planning, saved application data and a modern React interface. Its use by coaching staff working at under-18 national-team level provided meaningful validation that the workflow could support serious coaching preparation.
The project also expanded my experience beyond basic Fabric.js editing by requiring the board to work as part of a larger React and Node.js product.
07Contribution
I design and build custom web platforms, interactive interfaces and production-ready digital products.
Start a Conversation