Personal project2 min read
ROXL, Portfolio, Blog and AI Catalogue in Three Languages

Tech stack
Links
Services
- →Site architecture and development on Next.js
- →Three-language localisation
- →MDX content pipeline
- →Writing with a coding agent
Deliverables
- ✓Portfolio with more than 50 cases
- ✓MDX blog with more than 70 articles
- ✓Catalogue of AI solutions and plugins
- ✓Build stamp in the footer
Challenge
ROXL is my own site: a portfolio of client and personal projects, a blog and a catalogue of AI solutions and plugins. It had to stay easy to fill with new material, work in three languages and remain fast as the number of cases and articles grew.
Decision
The site is built on Next.js with the App Router and next-intl, with English, Russian and Spanish versions of every page. Blog articles are written in MDX and compiled through Contentlayer, with support for math, citations, code highlighting and GitHub-style callouts. Project cases are typed data files, so a case that is missing a translation fails the build instead of slipping through.

Static snapshot — scrollable Safari preview
Writing With a Coding Agent
A short screencast of how a coding agent helps me write articles in MDX. I describe what a piece should cover, and the agent drafts it in the site's format, fills in the three language versions and checks that the build still passes.
Implementation
Case pages carry a table of contents, reading time and a progress bar, images open in a zoom lightbox, and site previews like the one above show a whole site in a scrollable browser frame. The footer shows the version, commit and build time, so it is clear how fresh the production build is. The site runs on Vercel with its analytics and Speed Insights.
Outcome
The site holds more than 50 project cases and over 70 articles in three languages, and a new case or article goes live with a single commit.
Open for contract collaboration
I am available for contract-based collaboration. If you have an interesting project idea, schedule a call via Calendly.
Schedule a 30-min call