perf: optimize portfolio runtime delivery
Some checks failed
Test and deploy / Verify production build (push) Has been cancelled
Test and deploy / Deploy production (push) Has been cancelled

Replace the blocking asset loader with progressive rendering, defer expensive media and Three.js work, and reduce hydration and animation costs. Move deployment from a static Nginx export to the standalone Next.js runtime with optimized dynamic images.
This commit is contained in:
2026-09-09 12:43:37 +03:30
parent 9143ba8504
commit f34bea05cd
63 changed files with 1296 additions and 1048 deletions

View File

@@ -11,7 +11,7 @@ export interface SkillCategory {
export interface ToolItem {
id: string;
name: string;
icon: string;
icon: PortfolioImage;
}
export interface SkillDiscipline {
@@ -28,13 +28,13 @@ export interface FilterTab {
const tool = (id: string, name: string, icon = id): ToolItem => ({
id,
name,
icon: `/images/tools/${icon}.png`,
icon: portfolioImage(`/images/tools/${icon}.png`, 72, 72),
});
const placeholderTool = (id: string, name: string): ToolItem => ({
id,
name,
icon: `/images/tools/${id}.png`,
icon: portfolioImage(`/images/tools/${id}.png`, 72, 72),
});
export const skillsByDiscipline: Record<DisciplineId, SkillDiscipline> = {
@@ -241,3 +241,4 @@ export const filterTabs: FilterTab[] = [
{ id: 'product-management', label: 'Product Management' },
{ id: 'design-ux', label: 'Design & UX' },
];
import { portfolioImage, type PortfolioImage } from '@/types/media';