Andrius Lukminas
37 articles published

Our Journey to Next.js 16
What changed when we upgraded from Next.js 14 to 16, including the middleware to proxy migration.

Building the Session Guard Component
How we implemented automatic session timeout with warnings and graceful re-authentication.

Implementing Real-Time Features with WebSockets
Our approach to adding real-time updates for notifications, chat, and live data.

Creating Our Cyber-Industrial Design System
The principles and tokens behind our distinctive dark-theme design system.

Dockerizing for Production Deployment
How we containerized our Next.js application for consistent, reproducible deployments.

The Database Schema Evolution
How our database grew from 10 tables to 50+, and the migration strategies we used.

Setting Up GitHub Actions for CI/CD
Our CI/CD pipeline configuration for automated testing, building, and deployment.

Implementing Server-Side Authentication Checks
Why client-side auth checks aren't enough, and how we protect routes at the server level.

Tailwind CSS 4: What Changed for Us
Our experience upgrading to Tailwind CSS 4 and adapting to the new configuration.

Building the Admin Sidebar with Role-Based Visibility
How we created a dynamic sidebar that shows different menu items based on user roles.

Handling Form Validation with Zod
Our patterns for type-safe form validation using Zod schemas.

Performance Monitoring in Production
Tools and techniques we use to monitor and optimize production performance.