Sep 23, 2024 - Sep 26, 2024

Magento Frontend Bootcamp course

One single week with only Magento frontending

One single week with only Magento frontending

Can't miss one developer too long? But you still want to make sure that that developer gets in-depth fast? Our bootcamp concept offers a quick solution: A set amount of time to cover numerous topics in a fast pace.

See the details below Or see our Shopware portfolio
The training made pure abstraction manageable and digestible
Marko Beenink (Mountain IT)

Details of this bootcamp

Start date
Monday, September 23, 2024
End date
Thursday, September 26, 2024
Daily times
09:30 - 16:30
4 days
Yireo, Baarn, NL
Minimum of attendees
Maximum of attendees
€1795 (excluding VAT)
Lunch, snacks, fruit, drinks, goodies, courseware
Contact us for details

Day by day outline

Sep 23, 2024 Day 1

Luma basic theme
Hyvä basic theme
Template overrides
XML layout definitions
Sep 24, 2024 Day 2

Block & ViewModel classes
Frontent Performance
Magewire basics
Sep 25, 2024 Day 3

Luma JavaScript basics
KnockoutJS & RequireJS
Luma checkout
Sep 26, 2024 Day 4

Hyvä theme modifications
TailwindCSS and AlpineJS
Compatibility modules

Topics of this bootcamp

Basic theme skeleton Static content deployment Working with the pub/ folder Deployment modes essentials Dealing with view.xml XML layout updates Page handles and other handles Page layouts and layout structuring Changing block layouts PHTML templating Removing unneccessary CSS Dealing with blocks and containers Rendering child blocks Block caching vs Full Page Caching Creating a simple module Working with ViewModels vs Blocks Grunt and Gulp Customizing CSS the right way LESS and SASS Responsiveness Performance optimizations Module patterns, invokation patterns JavaScript classes and prototype chain jQuery widget instantiation vs jQuery plugins AMD and RequireJS scripts Declaritive vs imperative invocation RequireJS configuration and overrides RequireJS mappings and pathings RequireJS overrides vs mixins KnockoutJS ViewModels and observables Subscribing to Knockout events Analysing UIComponents like the minicart and the checkout Knockout templating with child components Adding a step in the checkout Modifying fields in the checkout Loading data from the server via customerData Config Providers and Layout Processors Private Content versus Public Content Using the uiRegistry Debugging KO ViewModels and the XML layout Christmas Tree Overview of Hyva Themes Running projects with Hyva successfully Kickstarting TailwindCSS Using the ViewModel registry Kickstarting AlpineJS Working with customerData Working with custom Hyva events AlpineJS components in Hyva Making GraphQL and other AJAX calls Run-through of Hyva Checkout (React) Migrating existing Magento extensions

The following lessons are included in this bootcamp

With this bootcamp, you will get access to all online video lessons as well

Introduction to free 09m 34s
Development tools free 12m 34s
Development performance free 17m 28s
Deployment modes free 24m 04s
Static content deployment   16m 35s
Setting the Magento root free 07m 06s
Troubleshooting tips  
Relevant database tables  
Theme location free 03m 40s
Creating a theme free 08m 11s
Parent themes free 10m 19s
Theme inheritance free 23m 11s
Theme structure   02m 19s
Theme vs module free 06m 48s
File view.xml  
Introduction to PHTML templates   04m 33s
Using the MageSpecialist DevTools free 08m 54s
Using mage2tv/cache-clean free 04m 29s
Overriding a PHTML template free 11m 08s
Creating a new template   13m 03s
PHTML vs HTML templates   05m 44s
Debugging PHTML templates   06m 07s
Understanding the root template  
Escaping values in templates  
XML layout concepts   07m 24s
Comparison with Magento 1   04m 19s
XML layout essentials   17m 31s
Review of homepage demo free 08m 58s
Handles and handle types   21m 58s
Understanding page layouts   25m 08s
Adding labels to containers   15m 42s
Using containers   14m 48s
Adding a new page layout  
The head section in the layout   10m 25s
Blocks in the layout   14m 09s
Layout updates   19m 17s
Moving elements   07m 56s
Removing elements   02m 55s
Rendering child elements in blocks   19m 17s
Reordering elements   08m 57s
Using block templates   14m 16s
Block arguments in the XML layout   20m 02s
Adding Google fonts  
Common XML layout modifications  
Understanding root.phtml  
Overriding layout   04m 38s
Adding FontAwesome  
Overriding the logo   21m 02s
Adding menu-items to the main or the top menu  
Text blocks   05m 48s
Troubleshooting layout issues  
Setting up Store Views for translation free 09m 48s
Translating content   17m 20s
Translating system strings free 09m 16s
Using inline translations  
Creating a custom language pack  
How JavaScript translations work   20m 10s
Module essentials  
Creating a Block  
Using ViewModels free 15m 42s
ViewModels vs Blocks free 07m 48s
Extending AbstractBlock   01m 50s
Working with CMS Blocks free 13m 55s
Example: Show products that are on sale  
Assigning variables  
Example: Adding a product to the footer  
Layout name vs layout alias  
Customizing email templates   16m 00s
Adding a block to an email template free 04m 15s
Using Yireo EmailTester   03m 09s
CSS strategies free 05m 54s
How CSS is added via the XML layout free 05m 47s
Magento its LESS strategy  
LESS basics   04m 25s
To copy Fotorama into a LESS file   09m 25s
Removing calendar.css and others free 04m 04s
One single CSS or separate CSS files?   04m 31s
Understanding the @magento_import directive   15m 50s
Example module with some LESS   09m 57s
LESS compilers   09m 59s
Debugging var/view_preprocessed/   06m 28s
Including critical CSS  
CSS responsiveness - the Magento way free 15m 41s
Best practices for overriding LESS files   09m 31s
Using SASS instead of LESS  
SASS basics  
Grunt vs Gulp  
Using Grunt for LESS compilation   16m 28s
Grunt tips  
Frontools Gulp usage  
Using subodha his Gulp   05m 03s
bobmotor Gulp usage  
General performance tips  
JS bundling  
Caching blocks   07m 12s
Magento theme type  
Troubleshooting themes  
Luma JavaScript standards  
Invocation patterns free 17m 34s
jQuery in Magento  
jQuery and the keyword this  
jQuery noConflict mode  
How JavaScript translations work   20m 10s
AMD standard free 12m 07s
RequireJS basics free 05m 58s
RequireJS config per Magento module free 19m 19s
RequireJS configuration free 07m 48s
RequireJS rewrites free 21m 18s
RequireJS shims   11m 59s
RequireJS mixins   33m 55s
Component initializations   34m 10s
Return values of RequireJS modules free 22m 58s
Example: Changing background color   48m 57s
Changing options of the StoreView switcher   13m 35s
Dynamic dependencies  
RequireJS tips  
Introduction to Knockout.js free 09m 17s
Knockout Context Debugger browser plugin free 03m 41s
Binding Knockout the Magento way free 17m 13s
Binding variables in Knockout free 07m 13s
Text input with Knockout observable   11m 05s
Using ko.observableArray   11m 28s
Simple counter with Knockout free 26m 32s
Interacting with Knockout ViewModels free 08m 07s
Interacting with Magento uiComponents   16m 23s
Simple Knockout ViewModel linking free 48m 33s
Analysing the customer greeting   14m 14s
Subscribing to the minicart   36m 47s
Working with computed observables  
Knockout Components  
Debugging Knockout  
Using the uiRegistry free 12m 04s
Definition of UiComponents   16m 01s
Advanced UiComponent   18m 29s
Knockout HTML templates   17m 51s
Analysing the minicart free 22m 33s
Rendering child components   30m 35s
Adding extra info to the minicart free 13m 28s
State component with Knockout  
ConfigProviders for window.checkoutConfig   10m 56s
Layout processors free 23m 12s
Adding a new Layout Processor   15m 52s
Adding a child component to the checkout free 27m 45s
Adding a new step in checkout free 37m 52s
Component configuration   15m 01s
Adding a field to the address form  
Adding a CMS block in checkout   24m 04s
Data sources in the checkout free 06m 59s
Add additional email validation  
ZIP code validation  
Payment validators  
Observer quote changes  
Calling upon checkoutProvider  
Add a block to the sidebar  
Observing field validation  
Definition of Private Content   02m 42s
Dealing with customerData   17m 09s
Example for using customerData   10m 23s
Add a new customerData section   11m 21s
How customerData sections get their data   11m 26s
Showing customer().lastname in a Knockout template   11m 40s
Introduction to Hyvä Themes free 12m 37s
Overview of Hyvä theme packages free 16m 39s
Overview of Hyvä modules free 06m 01s
Hyvä Admin free 05m 41s
Running a project in Hyvä   10m 41s
Requirements for Hyvä free 06m 32s
Development tools for Hyvä   06m 41s
Installation of Hyvä packages   12m 00s
Creating a new Hyva theme   13m 16s
Extending the Hyva/default theme free 20m 31s
Discovering the Hyva/default theme   15m 20s
Using browser syncing free 06m 52s
Introducing Tailwind   19m 00s
Quick start   23m 49s
Using Windy for Tailwind CSS development free 03m 00s
Hyvä build modes free 06m 12s
Tailwind configuration file free 10m 03s
Configuring breakpoints   12m 49s
Configuring colors   17m 17s
Working with PostCSS   06m 54s
Optimizing CSS classes   22m 16s
Purging Magento modules  
Configuring fonts free 13m 36s
Tailwind plugins   05m 49s
Using the prose plugin   11m 23s
The workings of @apply   04m 49s
Tips and tricks  
Just-In-Time Mode   14m 17s
Hyva_CmsTailwindJit module free 13m 46s
Tailwind 3 upgrade  
Using PHPStorm for Tailwind development   04m 14s
Using ViewModels   14m 13s
Creating a ViewModel for Hyva   10m 14s
Working with icons  
Introduction to AlpineJS free 04m 35s
Basic syntax free 17m 08s
x-model directive   05m 21s
Magics   01m 54s
The $el magic   01m 31s
The $nextTick magic   05m 13s
x-ref directive   06m 26s
Watching variables   03m 49s
x-cloak directive   03m 50s
x-spread directive   04m 14s
Nested data  
AlpineJS state   03m 47s
Copying a slider from alptail   19m 45s
JavaScript events in Hyva   09m 39s
Hyva private content   27m 27s
Depending on window.hyva   04m 00s
Mixing AJAX call with events  
Loading a CMS Block via GraphQL   34m 59s
Checkout options free 11m 35s
Hyvä React Checkout free 06m 50s
Customizing the React checkout   11m 08s
Fixing the cart ID   04m 11s
Fix duplicate React versions   03m 14s
Fix the vendor folder   03m 55s
Overriding components   06m 11s
React or Preact developer tools   06m 08s
React checkout architecture   24m 15s
Using context in the React checkout  
Using the React checkout in production  
Dealing with CORS issues  
Compatibility modules   07m 50s
Rewrite Luma scripts to Alpine   07m 23s
Using compatibility modules   08m 05s
Creating a compatibility module   24m 07s
Converting an Example Widget module   20m 06s
Introduction to Hyvä widgets  
Performance tips  
Equal heights solutions  
Get your ticket for this bootcamp now

Meet the teachers

Jisse Reitsma

Jisse Reitsma

Jisse Reitsma is the developer of 60+ Magento extensions and has given technical Magento trainings for years. Besides his ability to understand complex technology, he is skilled in making this knowledge understandable for everyone. With him, you can expect in-to-depth guidance plus lots of practical tips. Jisse is the mastermind of MageTestFest, Reacticon and MageUnconference and former Magento Master.

Len Lorijn

Len Lorijn

Len worked - as a Magento backend developer - through the years for various agencies, among which Guapa, Youwe and Elgentos. He also helped organize MageTitans Groningen and was a volunteer at MageUnconference NL. He knows the tech, he loves the tech, he is the right man to guide you in the tech. In his free time, he does photography and works at a pop podium.

Target group

Target group

  • Technical merchants
  • Trainees or interns
  • Webdesigners
  • Frontend developers
  • Junior backend developers


  • Experience with Magento 2 Admin Panel
  • An installation of Magento 2 running locally
  • Basic knowledge of object-oriented PHP and XML
  • Skilled in HTML and CSS

These are the options we give you

At your place or ours?

Everyone learns at her/his own pace. We provide both in-house training and public training throughout Europe - whatever suits your team best. When 3 or more developers are attending, a custom training is often more economical. Contact us for more details.

You'll get courseware

Every workshop is accompanied with official Yireo coursematerial. Attendees are sent a digital version of this material after the training. It contains slides, comments and references. Additionally, our GitHub repos contain numerous more code samples.

Online classrooms

Online trainings are also our training: Via Zoom or Google Hangout sessions, our teacher is able to connect with your team. The benefit here is that the team is able to connect from various places itself as well, timeframes are more flexible. Afterwards, a video recording will be shared with all attendees for reference.

On-demand self-paced training

This training is also available as an On-Demand training: Via numerous video lessons, including accompanying student notes (equalling a book on their own), you'll learn about the topics in your own pace. And when you bump into questions, you can fall back to the teachers guidance.


Yireo could be the right partner for you

We have trained 5000+ developers in numerous disciplines since 2005

  • Professional training at affordable prices
  • Truely active with numerous open source projects in the community
  • Trainings, bootcamps, hackathons, events
  • Passionate, enthousiastic, knowledgable in the right combination

Customer quotes

Jisse understands how you can put your brain to work and keep you constantly on the edge of your seat Kayne Spikker (Modern Minds)
A crash course by Yireo is like to be Neo learning Kung Fu Tjitse Efdé (Vendic)
I have made use of Yireo its full range of both on-demand courses as well as classroom courses during my development career. Yireo its courses provide me with just that extra that no other courses have yet been able to: the encouragement to think outside the box. Isolde van Oosterhout (Sols Webdesign)
Read more quotes of our customers

Some of the customers that we have trained in the past years

See a more complete listing of our customers