2023: A Year in Tutorials & Open Source
Written by weaverryan
For SymfonyCon 2022, I wore a Mickey Mouse costume in front of over 1000 Symfony developers. This year, I brought my 7-year-old son Beckett. You all treated him like a star, made him balloon animals & helped him build Legos. The rest of the year, I got to play with Symfony, create tutorials and work with some of the most gifted people I know to build open source tools that I'm extremely proud of.
I have an odd, wonderful job, entirely crowd-sourced by you lovely people.
So in the interest of openness, I wanted to share what we did in 2023, my hopes and dreams for 2024 and... some stats!
2023 Open Source
In 2023, I spent 636 hours
on open source, entirely sponsored
by SymfonyCasts - i.e. you! The truth is that open source takes time, and time
requires money. You make this economically possible. Victor
also worked hard on supporting our libraries, which was huge.
My time breaks down into a few major buckets:
- AssetMapper
235 hours
- Bootstrapped the new component from scratch
- Ushered in the "no build" era for Symfony!
- Symfony UX
143 hours
- 7 minor releases (
2.7
-2.13
) with hundreds of new features - The
<twig:Component />
HTML syntax! - 3 new components:
ux-translator
andux-svelte
,ux-toggle-password
- Added StimulusBundle
- 7 minor releases (
- Live Components
135 hours
- Smart rendering system added
- Much more robust hydration system & support for DTOs
- Stabilization: the package will soon not be experimental
- Deferred / lazy loading
We also created new packages!
- symfonycasts/tailwind-bundle
- symfonycasts/sass-bundle
- symfonycasts/dynamic-forms
- symfonycasts/micro-mapper
None of this mentions the real work: maintenance, reviewing pull requests, fixing tests, etc. I work on this, but the true stars are people from the community & the Symfony core team. For example, check out the work from nicolas-grekas! Thanks to our users, SymfonyCasts is able to financially support Symfony itself in a significant way.
2023 Tutorials
In 2023, we published 19.2
hours of content, which is slightly down from 2022
(20.7
hours). That's frustrating. There is so much content I'd like to cover,
and we have big goals this year to streamline our processes. Personally, I'd love
to hit 30 or 40 hours. Symfony deserves that. And, fortunately, the SymfonyCasts
team helps so I can focus my time.
How many tutorials were watched? Over 3100 DAYS
of content was watch last year.
That's nearly 10 years of tutorials in 1 year! The top tutorials were:
Screencast | Days Watched |
---|---|
Symfony | 538 |
ApiPlatform | 239 |
Symfony Fundamentals | 185 |
Symfony & Doctrine | 155 |
EasyAdminBundle | 147 |
Symfony Security | 121 |
ApiPlatform Ep2 | 102 |
Stimulus | 94 |
Messenger | 88 |
Symfony 5 | 73 |
If you zoom into the final 3 months, not surprisingly LAST Stack and API Platform episode 3 are 6th and 8th.
How long does it take to make a tutorial? Great question! The biggest variance depends on research. Yup, sometimes I have a lot to learn before hitting record!
Tip
wh
- "work hours" - the number of hours of work spentvh
- "video hour" - the number of hours of video produced
The times below are my hours: they don't take into account editing and other important things I have help with.
- 30 Days of LAST Stack
126 hours
spent /4.1 hour
tutorial =30.7
wh/vh - API Platform Ep3
97 hours
spent /3.7 hour
tutorial =26.2
wh/vh - API Platform Ep2
83 hours
spent /3.7 hour
tutorial =22.4
wh/vh - API Platform Ep1
58 hours
spent /2.9 hour
tutorial =20.4
wh/vh - AssetMapper
37 hours
spent /2.1 hour
tutorial =17.6
wh/vh - Integration Testing
26.5 hours
spent /1.0 hour
tutorial =26.5
wh/vh - Doctrine Queries
25 hours
spent /1.4 hour
tutorial =17.8
wh/vh
The key is `wh/vh
`: how much work goes into each hour of video produced.
I have a few ideas to improve this:
New tutorial authoring tool. We use a fantastic, internal tool called TutsHero to help us build the code for each tutorial. But it's time to modernize that and better integrate it with the recording process. This should also alleviate the time it takes to add our magic "code blocks".
AI in Script Editing. Fun fact: I first record rough audio while recording the video. We use AI to transcribe that. Then we manually clean up the script, reformatting code (
foo arrow bar
becomes$foo->bar()
), addingticks
around code, and rephrasing. Finally, I record this. The script editing this takes a significant amount of time and I think AI can help automate this.
What about other authors? Sure! Though finding consistent, high-quality authors is hard. If you have a passion for teaching, definitely reach out!
2023 SymfonyCasts.com
Our team - Diego, Vladimir, Victor & Leanna - work a lot on SymfonyCasts.com so that we can have nice things... and I can focus on tutorials (Diego & Victor also help with creating tutorials).
Out of the million different things from 2023, one stands out: our new Tailwind-powered design. We're rolling this out slowly - but you can see it on this blog section or any course pages. And this is more than a re-skinning: it's a chance for us to embrace the LAST Stack principles: leverage Turbo, delete a lot of custom JavaScript and use Stimulus everywhere. It's fantastically fun to work with.
Comments & Questions Answered
At the end of each tutorial, I like to say:
If you have any questions, we're here for you down in the comments.
And we mean it. In 2023, 2572 comments were posted to the site, out of which 1144 were replies from us. The best part? All of those questions and answers live in public: they help everyone.
What about 2024?
So what's next? I have a few goals for 2024:
More languages. Each new tutorial's script and subtitles are already translated into Spanish in a high-quality way thanks to AI. We should add more languages to make the content accessible to more people.
More tutorials. We have a lot of ideas for new tutorials. We're also working on a new authoring tool to help us create them faster.
Live-streaming. I started live-streaming in 2023 and it was fun! Should we keep doing it? Channel at - https://www.youtube.com/@weaverryan.
Videos of Ryan. That's me! In 2024, I'd like to actually get on camera for the videos. We'll see how that goes :).
Got something else on your mind? Let me know in the comments!
And thank you ❤️.
18 Comments
Hey @bagsiur ,
Thank you for your interest in SymfnyCasts tutorials! Yes, Sylius is in our ideas pool too, but with a low priority. Unfortunately, we don't have a specific date when it might be released, right now we're busy with other cool topics. But I will count your voice on that course!
Cheers!
Just came here to say that I'm with @bagsiur and would love to see a Sylius tutorial too <3
Hey @stlgaits ,
Thank you for your interest in SymfonyCasts tutorials :) Still no specific plans for this course in the nearest future, but your vote was counted too ;)
Cheers!
Since we are on the topic of 2024, I would like to ask you to not forget that a large part of the Symfony community have deep investments in Bootstrap for the frontend, myself included.
Your focus on Tailwind is entertaining, but unfortunately totally irrelevant, at least to me. Some of your LAST videos were only useful for users of Tailwind.
I want to suggest that SymfonyCasts videos maybe shouldn't be so opinionated about a non-Symfony topic, about which there is still a lot of debate, if you review Hacker News.
There is just no way that I will invest, or can justify investing, in switching from Bootstrap 5 to Tailwind.
Would you mind, in future front-end-related videos, to at least include instructions on doing the same thing in Bootstrap as well?
Yo @Marcus!
I would like to ask you to not forget that a large part of the Symfony community have deep investments in Bootstrap for the frontend, myself included.
That's fair. It's hard to support multiple CSS frameworks at the same time... but I will do my best not to leave people behind who are not using Tailwind :).
Cheers!
What I find interesting and somewhat confusing is the movement now to create reusable Tailwind components, such as buttons, alerts, etc. Either via Flowbite, Twig Components, or whatever else.
I'm like, "Wait, you're reinventing the Bootstrap wheel that is already very round."
The other thing that bugs me about Tailwind is how it bloats your HTML files with 10, 20 classes to accomplish the same thing that one class in Bootstrap accomplishes. The browser has to parse all those classes, match them in the CSS file, and apply them. While with Bootstrap it makes one roundtrip with one class. Take the card
class as just one example.
Yea, to follow up on what Victor said, I definitely did not like Tailwind at first. Look at all that ugly HTML! Like many things, I grew to love it. Now those classes look descriptive :). I can quickly see why something has a border and where that's coming from. But yea, totally subjective. I also like that, when needing custom styling (e.g. something that Bootstrap doesn't handle out-of-the-box), I don't need to come up with a name for a new CSS class: I can just add the Tailwind utility classes. I like skipping that step :).
The browser has to parse all those classes, match them in the CSS file, and apply them. While with Bootstrap it makes one roundtrip with one class. Take the card class as just one example.
I'm not sure if this is true. It may be - but I couldn't find any information on it.
tl;dr I really like Tailwind, but I didn't at first, but use whatever you like best :).
Cheers!
It appears, according to Guru ChatGPT, that the browser builds the DOM, processes the CSS file(s), and then applies the styles (in the order it found them in the CSS) to the DOM, in that order.
So, for each class in the CSS, it has to apply the styling to all the DOM elements that have that class. That's kind of, duh. But, it means with Tailwind it needs to repeat that process many, many more times than with Bootstrap.
Anyway, I'm biased because I'm not a front-end developer or designer, but I still do everything on my apps. Prepackaged stuff is a big win for me.
Hey Marcus,
Tailwind is not just a new Bootstrap, it has a completely different approach. Yes, you're right, with Tailwind you may need tens of CSS classes to do something similar to Bootstrap that requires only a few of them, and they are less readable. But the choice between them is mostly a matter of taste and specific project needs. But Tailwind will definitely give you more flexibility and control over the Bootstrap. Also it gives you faster and more effective ways of rapid UI development. Btw, if you ever heard something like "your website styles look like very Bootstrap" and you want to make it more unique - that's a good reason to take a look towards Tailwind. Otherwise, Bootstrap might be a perfect solution for you :)
In short, those 2 have 2 different approaches, and both have pros and cons, so you should base on your matter of taste and your project needs - that will help you to choose the correct solution for you.
Cheers!
Thanks Ryan. If it's just rarely, I don't believe it will be distracting.
I've watched many SymfonyCasts videos, and I find them, and your outstanding presentation skills and style, extremely helpful, no, actually absolutely essential in understanding Symfony. I was worried the videos were going to morph into those Youtube ones where the thumbnail sports the obligatory surprised expression of the presenter -- the same ones where I speed-browse for the "Don't recommend channel" button.
Thank you for your excellent work. SymfonyCasts videos are essential in understanding how to best use Symfony.
"In 2024, I'd like to actually get on camera for the videos."
If you mean you want to insert your talking head into a frame in the SymfonyCasts training videos, I would strongly advise against doing that, for three reasons:
1) It will distract from the content of the video. One's eyes tend to gravitate towards the speaker, distracting attention from the actual content and value of the video.
2) It does not add any significant educational or information value to the video.
3) The purpose of the SymfonyCasts video is not to build personal brand for the presenter. Youtube videos are more suited for that purpose.
Yo @Marcus!
I appreciate your honest feedback about this, and it's actually helpful :). I was planning on being on screen... rarely: at the beginning of the entire tutorial and now and then when I want to explain something for 45 seconds (so at least you can see me, instead of staring at nothing on the screen). But I wasn't planning (and your comment reinforces that this is the correct decision) to be on the screen ALL the time. So hopefully that'll let me gain a little rapport with the audience, but not be a constant thing. And hopefully this will work for you :).
Cheers!
Your contribution to the Symfony world is absolutely fantastic. Thanks.
Thank you for your hard and excellent work. Keep up your good work in 2024. 👍
Ryan, have you thought about creating a tutorial about Sylius? I know there is a Sylius online course published by the authors, but no one does it like you. There are courses about EasyAdmin, NetGen Layouts, and Drupal on SymfonyCast. Why not consider creating a tutorial about Sylius?