“Knowledge that isn’t passed on is knowledge that dies with you. And I plan on sticking around for a while 😀”
Why I started sharing knowledge
Something has changed recently. Not in technology — in the requests I receive. The projects haven’t gone anywhere, the work goes on as before. But alongside the usual “build me a website,” a completely different kind of request keeps coming in: “show me how.” Teach me. Walk me through it. Explain why it’s done this way here and not another way.
Once is happenstance. Twice is coincidence. But when it becomes a pattern, it’s worth paying attention. Over 18 years in development, I’ve accumulated a pile of knowledge, approaches, bruises, and lessons learned that live in my head, in my code, and in my projects. And they just sit there. Just sit. When they could be working.
That’s how the idea was born — edu.kaplia.pro.
Why a separate resource and not the blog?
The first question I asked myself: why not publish the learning materials right here, on the blog? The answer is simple — I want the blog to stay a blog. A space for my own thoughts, observations, and reflections on the industry and the profession. A place where thinking gets captured, not where manuals get rewritten.
Educational content is a completely different format. It’s structured courses, sequential lectures, code, examples, practice. It calls for a different architecture, different navigation, a different approach to presentation. And most importantly, it needs room to scale. Today it’s one course, tomorrow five, and the day after — a full-fledged library.
That’s why edu.kaplia.pro is a separate pet project. Its own territory for learning materials, living its own life and free to grow independently of the blog.
First course: HTML and CSS — the foundation
To kick things off, I chose where everything begins — markup. HTML and CSS lectures, from the fundamentals to responsive layouts. It might seem like a basic, “beginner” topic, but I’m starting with it deliberately.
Because even among experienced developers, I regularly see gaps right there in the foundation. People write React but don’t understand how the cascade works. They use Tailwind but don’t know what BEM is or why it ever existed. They build complex layouts but can’t explain the difference between inline and inline-block without googling it.
A strong programmer needs a solid foundation. And that’s exactly what this course is about.
How the content came to be: distilling knowledge
Now for the most interesting part — where the material came from and how it was created. The process was anything but trivial and, frankly, deserves a case study of its own.
It all started with video courses I have access to on learning platforms. But video is a slow and often watered-down format. A good lecturer can spend half an hour explaining what fits in three paragraphs of text. So I went a different route:
- Audio capture from the video courses
- Transcription with Whisper (OpenAI) — turning speech into text
- Merging and distillation — combining information from different sources and ruthlessly cutting the fluff. Everything redundant — the repetition, the “now let’s talk about…” tangents — cut out
- Updating — bringing the material in line with 2026 trends and standards
- My review — every article in the course went through my personal check. I proofread, corrected, expanded, and cut anything I disagreed with or considered outdated
The result is a true distillation of the most useful material. No fluff, no “now let’s recap,” no ten-minute introductions. Just the essence.
This entire pipeline ran on Claude Code (the Opus 4.6 model). Which brings us to the next topic.
The age of AI: creating things is easy and incredibly fun
We live in a time when professional AI models — Claude Opus 4.6, Gemini 3.0, and others — turn content creation into a genuinely exciting collaboration. I’m not saying AI replaces expertise. It amplifies it. It lets you do in weeks what used to take months.
Transcribing dozens of hours of video, structuring the material, updating it to modern standards — all of that would have been physically impossible to pull off single-handedly in any reasonable time. With the right tools, it turns into a manageable — even enjoyable — process.
But the key phrase here is “through me.” Every piece of material passes through the filter of my experience and expertise. AI helps process and structure, but the final call is always mine.
Under the hood: a custom engine
A separate point of pride is the technical implementation. I didn’t go with WordPress, Hugo, or any other CMS. Instead, I took my own lightweight PHP engine for rendering Twig templates and adapted it to the course structure.
The result: PHP 8.3 + Twig 3.x + SCSS + Vanilla JS. No database, no frameworks, no bloat. Content lives in the file system. Courses and lectures are just folders and .twig files. Drop in a folder of lectures, and the course automatically shows up on the site — in the navigation, in search, in the sitemap.
Honestly? It’s about 50% vibe-coded. I set the direction, the architecture, the structure — and Claude Code helped implement it. And that’s fine. That’s what modern development is: you’re the architect and reviewer, and AI is a fast executor that still needs your oversight.
The project’s source code is open and available on GitHub: github.com/vitaliikaplia/edu
What’s next?
Right now, edu.kaplia.pro hosts its first course, on markup. But this is just the beginning. The platform is built to make adding new courses easy — and more are coming. WordPress development, PHP, JavaScript, project architecture — there’s no shortage of topics.
This project is my way of systematizing what I know and making that knowledge accessible. Not for hype or monetization, but because sharing experience is a natural stage in any specialist’s growth. Live and learn — and keep sharing what you learn.