Author info on posts and dark mode by default
Posts did not show who wrote them. The API returned `author_id` as a number, but the author relation was never eager-loaded — the frontend had no author data. W...
37 posts
Posts did not show who wrote them. The API returned `author_id` as a number, but the author relation was never eager-loaded — the frontend had no author data. W...
Blog posts looked flat. Headings were the same size as body text, code blocks had no formatting, and lists blended into paragraphs. I added a typography plugin,...
Why a separate service?
Up until now, every locale of a blog post was a separate row in the `posts` table. It worked, but it created a cascade of problems -- duplicated metadata, infla...
After weeks of building out the microservices, I hit a cluster of Docker issues that kept biting me on every fresh `docker compose up` -- disappearing vendor di...
Writing blog posts in a plain textarea is not a great experience -- no preview, no toolbar, no formatting hints. I replaced the raw textarea with EasyMDE in bot...
Three pillars of observability
Setting up seven microservices by hand -- cloning repos, copying .env files, generating TLS certs, updating /etc/hosts, creating Docker networks, generating sec...
A large cross-cutting iteration — two-language support (PL/EN) across the entire system, new static pages in Frontend, a newsletter, and a GitHub commits tile o...
A series of UX improvements: dark theme in SSO, post and comment likes without requiring login, colorful categories, and refreshed post cards. Plus the removal...