«Knowledge that is not passed on is knowledge that dies with you. And I still plan to live a while 😀»
Why I started sharing knowledge
Something has changed recently. Not in technology — in the requests I receive. Projects haven’t gone anywhere, work continues as before. But alongside the usual “build me a website” requests, I’m increasingly getting different kinds: “show me how”. Teach me. Tell me. Explain why it’s done this way and not that way.
When someone writes to you once — that’s coincidence. Twice — chance. But when it becomes a trend, you should listen. Over 17+ years in development, I’ve accumulated a lot of knowledge, approaches, mistakes and conclusions that live in my head, in my code, and in my projects. And they just sit there. They could be working.
That’s how the idea appeared — edu.kaplia.pro.
Why a separate resource and not a blog?
The first question I asked myself: why not publish educational materials right here, in the blog? The answer is simple — I want the blog to remain a blog. A space for personal thoughts, observations, reflections on the industry and the profession. A place where thinking is captured, not where manuals are rewritten.
And educational content is a completely different format. It’s structured courses, sequential lectures, code, examples, practice. It requires different architecture, different navigation, a different approach to presentation. And most importantly — it requires scaling. Today one course, tomorrow five, the day after that — a full-fledged library.
That’s why edu.kaplia.pro is a separate pet project. Its own territory for educational materials, living its own life and able to grow independently from the blog.
First course: HTML and CSS — the basics
For the start, I chose what everything begins with — web layout. HTML and CSS lectures from the basics to responsive layout. It might seem like a basic topic, “for beginners,” but I deliberately start with it.
Because even among experienced developers I regularly see gaps right 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 even existed. They build complex layouts but can’t explain the difference between inline and inline-block without Google.
For a strong programmer, a solid foundation is important. And this course is all about that.
How the content came to be: distillation of knowledge
Now for the most interesting part — where the material came from and how it was created. The process was non-trivial and, frankly, worth a separate case study in itself.
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 into three paragraphs of text. So I went a different route:
- Audio capture from video courses
- Transcription using Whisper technology (OpenAI) — converting speech to text
- Merging and distillation — combining information from different sources and ruthlessly removing fluff. Everything unnecessary, repetitions, tangents like “now let’s talk about…” — 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, edited, added to, and removed what I disagreed with or considered outdated
The result — a true distillation of the most useful material. No fluff, no “now let’s review,” no ten-minute introductions. Just the essentials.
This entire pipeline worked using Claude Code (Opus 4.6 model). And this brings us to the next topic.
The age of AI: creating is easy and incredibly fascinating
We live in a time when professional AI models — Claude Opus 4.6, Gemini 3.0 and others — turn the content creation process into an exciting collaboration. I’m not saying AI replaces expertise. It amplifies it. It makes it possible to do in weeks what would have taken months before.
Transcribing dozens of hours of video, structuring material, updating to modern standards — all of this would have been physically impossible to do alone in reasonable time. But with the right tools, it becomes a manageable and even enjoyable process.
But the key word here is “through me.” Every piece of material goes through the filter of my experience and expertise. AI helps process and structure, but the final decision is always mine.
Under the hood: custom engine
A separate point of pride — the technical implementation. I didn’t go the WordPress, Hugo or any other CMS route. Instead, I took my own lightweight PHP engine for rendering Twig templates and adapted it to the course structure.
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. Added a folder with lectures — the course automatically appears on the site, in navigation, in search, in sitemap.
Honestly? This is about 50% vibe code. I set the direction, architecture, structure — and Claude Code helped implement it. And that’s fine. That’s what modern development is: you’re the architect and reviewer, AI is the fast executor who needs your control.
The project’s source code is open and available on GitHub: github.com/vitaliikaplia/edu
What’s next?
Right now on edu.kaplia.pro lives the first course on web layout. But this is just the beginning. The platform is built to easily add new courses — and they will come. WordPress development, PHP, JavaScript, project architecture — there are plenty 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 the development of any specialist. Live and learn. And share what you’ve learned.