February 2026
Initial Commit
The first commit initializes the repository with basic files and structure.
Loading...

SADOVNIKOV
Site
Sadovnikov is a personal portfolio website. Its main purpose is to allow you to showcase your experience, stack, and projects to a potential employer. Also, Sadovnikov has become a large educational project in which I studied the modern architecture of full‑stack applications.
NextJS
SASS
React
TypeScript
Caddy
Redux Toolkit
The main challenge was that Sadovnikov gradually stopped being just a website. It became a system with multiple content types, media, localization, an admin UI and its own production environment.
Every project has RU/EN content, while the admin panel still needs to remain manageable as the amount of structured data grows.
Images can be uploaded from the admin panel, stored on the server and served as independent assets across project pages.
While publishing JustBuy, I became a real user of my own CMS and realized that a plain textarea was not enough. That led to a rich-text editor with Visual and HTML modes.
Docker Compose, PostgreSQL, Prisma, Caddy and self-hosted Umami are connected into one production setup running on my own VPS.
While improving the admin panel, I used an AI coding agent for the first time not only for suggestions, but also for direct implementation work.
I defined the requirements, UX and boundaries of the feature. The AI agent was used to accelerate implementation by modifying the codebase directly, while I reviewed the result, tested the integration and studied the resulting implementation.
I consider this part of the project AI-assisted development rather than code written entirely by hand.
The main development cycle of Sadovnikov is complete. The site already serves its primary purpose: I can publish and present projects without changing the source code.
I also plan to deploy an isolated demo copy of the admin panel so portfolio visitors can explore the CMS without getting access to production data.
Sadovnikov is my personal portfolio and, at the same time, a full-stack product that combines a custom CMS, a public website, localization, analytics, media storage and production infrastructure.
I did not want to build another static portfolio. I wanted a tool I could actually use to publish projects, manage metrics and media, and write detailed case studies without editing source code.
After several older projects, I wanted a new reference point: a project that would reflect how my approach to frontend, backend, architecture and deployment had changed.
I had previously used MobX and liked its model. I chose RTK deliberately because Redux and Redux Toolkit appeared much more frequently in job descriptions, while Toolkit offered a more practical and less boilerplate-heavy way to learn the Redux ecosystem.
Sadovnikov became much more than a portfolio website for me. It was the first project where I connected an admin application, public UI, database, media handling, analytics, localization, tests and production infrastructure into one system.
The biggest change was learning to think not only about how to implement a feature, but also about how it will be used, maintained and operated in production.
Dogfooding turned out to be especially valuable. Once I started using the CMS to publish real projects, I discovered UX problems that were almost invisible while I was only developing it.
Speed and perormance
90/100
Average loading time
1.4 s
Search engine optimization
100/100
Lighehouse, A11y
93/100
Explore the project timeline