FeatureAbout page: full animated experience with GSAP SplitText hero, parallax '93' watermark, and scroll-triggered stat counters
FeatureAbout page: blur-dissolve spring entrance on statement cards, breathing-glow values grid, and spring-entrance certifications
FeatureService detail pages at /services/[slug] with dark hero, parallax icon watermark, benefit callout, and features checklist
FeatureQuote request page at /quote with multi-field form, service pre-fill from URL params, and honeypot spam protection
FeatureQuote API endpoint at /api/quote with rate limiting, validation, and Resend email delivery
FeatureJSON-LD structured data: Organization, LocalBusiness, WebSite schemas in site head, plus per-service ServiceStructuredData
ImprovementTeam section: LeadCard wrapped in TiltCard for 3D hover, all cards use blur-dissolve spring entrance with breathing glow
ImprovementContact CTA: main card wrapped in TiltCard, contact info cards use blur-dissolve spring instead of simple x-slide
ImprovementLatest News: replaced staggerContainer/fadeUp with blur-dissolve spring variants, featured card wrapped in TiltCard
ImprovementReduced motion standardized: scroll-reveal and game-of-life components now use useReducedMotion() hook
ImprovementNavigation: mobile logo uses inline GLIcon SVG (no network request), dark logo deferred with loading='lazy'
ImprovementServices data extended with fullDescription field for detailed service pages
v1.12.0
Blog UX audit: 35+ improvements across all priorities
FeatureLoading skeleton for blog post pages matching the actual article layout with hero, content lines, and sidebar placeholder
FeatureError boundaries on blog list and post pages with retry buttons and contextual messaging
FeatureBack-to-top button appears after scrolling past the first screen on blog posts, with smooth scroll animation
FeatureSocial sharing: LinkedIn, X, and email share links in both desktop sidebar and mobile meta card
FeatureTag filtering: clicking any tag on a blog post filters the blog list, with tag-aware heading and clear filter link
FeatureSkip-to-content accessibility link in site layout for keyboard and screen reader users
FeatureStandard markdown blockquote support with > prefix, in addition to the existing italic-wrapped convention
ImprovementMobile Table of Contents moved above article content instead of below, making it useful before reading
ImprovementMobile ToC expand/collapse now uses smooth max-height CSS transition instead of instant show/hide
ImprovementCopyLink with fallback: uses execCommand when clipboard API is unavailable, shows error state on failure
ImprovementPrev/Next article labels changed to Older/Newer for clearer chronological navigation
ImprovementCopy link and social sharing now available on mobile meta card, not just desktop sidebar
ImprovementCategoryPills converted from client to server component, removing unnecessary useSearchParams and reducing JS bundle
ImprovementBlog loading skeleton updated to match magazine-style featured post layout instead of old 2-column grid
ImprovementEmpty state for category/tag filter now shows icon, contextual message, and clear filter link
ImprovementFeatured post excerpt visible on mobile with single-line clamp instead of being completely hidden
ImprovementReading progress bar uses aria-hidden for screen readers, preventing noisy continuous announcements
ImprovementTable of Contents scroll-spy rootMargin adjusted from -75% to -60% for better active heading tracking
ImprovementPost card arrow icon changed from northeast diagonal to standard right arrow, avoiding external link convention
ImprovementGSAP stagger animations use clearProps to prevent cards staying invisible if ScrollTrigger fails
ImprovementPagination component supports ellipsis truncation for large page counts instead of showing every number
ImprovementPostBody React keys use content-based hashes instead of array indices for stable rendering
ImprovementUpdated date shown in post hero when updatedAt differs from publishedAt, important for regulatory content
ImprovementJSON-LD enriched with wordCount, articleSection, keywords, and absolute publisher logo URL
ImprovementReading time calculation strips markdown syntax before counting words for more accurate estimates
ImprovementBlog hero section uses overflow-x-hidden instead of overflow-hidden to prevent text descender clipping
ImprovementOG images include absolute URLs, width, height, and alt attributes for richer social previews
ImprovementCategory pill in blog post hero is now a clickable link that filters the blog list by that category
ImprovementBreadcrumb navigation has proper aria-label, aria-hidden separators, and aria-current on active page
ImprovementDynamic metadata for blog list: title and description update when filtering by category or tag
ImprovementFeatured post on blog list now shows the published date alongside reading time
ImprovementRSS feed includes post tags as category elements and cover images as enclosures
ImprovementRelated posts section sets data-navbar-theme for consistent navbar theming on scroll
FeatureCustom 404 page for blog posts with contextual message and link back to blog
FixDrop cap first-letter line-height increased from 0.85 to 0.9 for safer cross-browser rendering
v1.11.3
Blog content parsing and semantic HTML
FeatureNumbered list support in blog posts: content with 1. 2. 3. patterns now renders as ordered lists
FeatureInline code backtick support in blog content: `code` renders with mono font and muted background
ImprovementSemantic time elements with datetime attributes for blog post dates in cards and post pages
ImprovementReading time dynamically calculated from content in post cards and featured post, replacing hardcoded JSON values
ImprovementRelated posts algorithm now falls back to tag-matching when not enough same-category posts are available
ImprovementJSON-LD structured data uses absolute image URLs for better search engine discovery
ImprovementChangelog page added to sitemap.xml for search engine indexing
Fixheading-xl line-height corrected from 1.1 to 1.15, meeting safe minimum for descender rendering
FixSingle-line list items (paragraph starting with dash) now correctly parsed as unordered lists
v1.11.2
Blog audit fixes and RSS feed
FeatureCategory filtering now works: clicking a category pill filters the blog grid via URL search params with server-side post filtering
FeatureRSS 2.0 feed at /feed.xml with auto-discovery link in site head, serving all blog posts with Dublin Core metadata
FeatureCopy-link button in blog post sidebar copies the current URL to clipboard with visual feedback
FeatureCollapsible mobile Table of Contents shown below article content on small screens
FeatureDynamic reading time calculated from word count (238 wpm) instead of hardcoded JSON values
FeatureInline markdown links parsed in blog post content with safe href validation (https only)
ImprovementRelated posts section now has GSAP stagger entrance animation matching the blog grid pattern
ImprovementNavbar theme awareness on blog pages: dark hero sections set data-navbar-theme for proper contrast
ImprovementPagination preserves active category filter when navigating between pages
ImprovementFeatured post excluded from the article grid on the blog list page to prevent duplication
ImprovementCategory color map centralized in src/lib/blog.ts, removing hardcoded duplicate from post page
ImprovementBlog list page uses postsPerPage from _meta.json config instead of hardcoded value of 9
ImprovementRelated posts grid gap increased from 12px to 20px for consistent spacing with blog grid
ImprovementBreadcrumb title truncation now shows full title tooltip on hover
ImprovementReading progress bar includes aria-label for screen reader identification
FixDrop cap first-letter line-height corrected from 0.8 to 0.85, preventing potential descender clipping
FixAuthor name diacritics fixed in bih-drivers-eu-residence-restrictions post (Hujic to Hujic with accent)
v1.11.0
Blog redesign: editorial reading experience
FeatureTable of Contents sidebar with IntersectionObserver scroll-spy highlighting the active heading in real time
FeatureReading progress bar fixed at page top (3px, z-51) tracking scroll position within the article element
FeatureDrop cap styling on the first paragraph of each blog post using float-based first-letter pseudo-element
FeatureMagazine-style featured post on blog listing: full-width image with gradient overlay and text at bottom
FeatureCategory pills now display post counts per category and total article count
ImprovementProse typography upgraded: 17px base font, 1.75 line-height, larger heading sizes with generous top margins
ImprovementBlockquote styling enhanced with 3px primary border, subtle background tint, and rounded corners
ImprovementList markers colored with brand primary, strong text uses foreground color, hr rendered as gradient line
ImprovementHeading IDs generated via shared slugify() function for synchronized ToC anchor links and scroll offset
ImprovementBlog post sidebar restructured: ToC replaces author/tags cards, compact author line below, tags moved under content
ImprovementPost card excerpt upgraded from text-xs to text-sm with increased card body padding
ImprovementBlog list section padding increased to py-14/md:py-20 with All Articles heading and grid gap-5
ImprovementReading time shown as pill badge in post hero meta row instead of plain text
ImprovementFeatured post aspect ratio widened to 16/7 on mobile and 21/9 on desktop with slower hover zoom
v1.10.0
Accessibility and animation performance
FeatureAdded ARIA landmark labels to all 13 homepage sections for screen reader navigation
ImprovementGame of Life canvas animation now pauses via IntersectionObserver when scrolled out of view, eliminating ~24,000 cell computations every 300ms while off-screen
ImprovementExtracted 5 shared Framer Motion variants (fadeUp, fadeUpSmall, fadeIn, scaleIn, staggerContainer) into src/lib/motion-variants.ts, replacing 6 duplicate definitions across section components
FixPackage identity corrected from generic scaffold name to project name
v1.9.1
Contact form hardening
FeatureHoneypot field on contact form to silently reject automated bot submissions
ImprovementHidden field uses aria-hidden, zero dimensions, and negative tabIndex so real users never interact with it
ImprovementInput sanitization caps all fields at 5,000 characters with HTML entity encoding
FixForm state type updated to include honeypot field without breaking validation error indexing
v1.9.0
API rate limiting and image security
FeatureIn-memory sliding window rate limiter on contact API: 3 requests per 60 seconds per IP address
FeatureRate limit responses include Retry-After header with seconds until window reset
ImprovementIP extraction from x-forwarded-for and x-real-ip headers for accurate client identification behind proxies
ImprovementRate limiter module extracted to src/lib/rate-limit.ts for reuse across API routes
FixLocked down next/image remote patterns from wildcard to empty array, preventing potential SSRF through the image optimization proxy
v1.8.0
Homepage hero redesign
FeatureUnified hero section with inline stats strip and gradient bridge transition to content
ImprovementDownsized stat counters to restore proper typography hierarchy below the headline
ImprovementScroll-aware navbar with white logo and light nav links over the dark hero section
ImprovementHero CTA buttons use spring easing with scale feedback on press
FixNav link contrast on transparent header over dark sections
v1.7.3
SEO and discoverability
FeatureDynamic sitemap.ts generating 12+ URLs with per-route priority levels and change frequencies
Featurerobots.ts allowing all crawlers while blocking /api/ routes
ImprovementOpenGraph metadata with en_GB primary locale and bs_BA alternate for Bosnian audience
ImprovementTwitter summary_large_image card configured with site-wide defaults
ImprovementCanonical URLs and hreflang alternate links for /en and root paths
v1.7.2
Brand and changelog pages
FeatureBrand guidelines page with OKLCH color palette, fluid typography scale, and voice reference
FeatureChangelog page documenting technical infrastructure progress with version badges
ImprovementMoved company history timeline from homepage to about page
ImprovementBrand page pulls live values from the 9-file brand system (colors, typography, animations, interactions, voice)
v1.7.1
Features showcase redesign
FeatureColor-coded transport mode cards with real-time tracking grid
ImprovementReplaced generic feature icons with mode-specific illustrations from Lucide (563+ icon set)
ImprovementStaggered entrance animation on cards using GSAP ScrollTrigger callbacks
FixFixed tracking grid cell alignment on tablet breakpoints
v1.7.0
Homepage v1 launch
FeatureFull homepage implementation with 13 animated sections built from 16 section components
FeatureGSAP-powered entrance animations with staggered timelines and ScrollTrigger scrub
FeatureInteractive freight calculator with route estimation and animated results
FeatureLogistics coverage map with animated transport corridors across 5 regional hubs
FeatureTestimonial banner section with client quotes and star ratings
ImprovementAuto-scrolling client logo marquee with hover pause and infinite loop
ImprovementHow-it-works section with numbered step cards and connecting flow lines
v1.6.4
Resend email integration
FeatureResend v6.9 integration for contact form submissions with HTML email templates
ImprovementInline-styled email template matching brand colors for consistent appearance across mail clients
ImprovementGraceful fallback to console logging when RESEND_API_KEY is not configured in development
v1.6.3
Production readiness audit
FixAdded latin-ext subset to all 3 Google Fonts for Bosnian diacritical character support (c, s, z, dz)
FixPrevented horizontal scroll overflow on mobile iOS caused by full-bleed animation containers
FixText clipping from overflow-hidden containers on descenders (g, y, p, j)
ImprovementVercel deployment configuration with optimal caching headers and edge function routing
ImprovementAll fonts using display: swap for sub-100ms first contentful paint
v1.6.2
Navigation polish
FeatureSection-aware navbar using IntersectionObserver to detect dark/light sections in the top 72px viewport strip
ImprovementGlass morphism navbar with backdrop blur and border opacity on scroll
ImprovementScroll progress indicator bar with primary-color gradient fill
ImprovementNavbar theme cross-fade at 500ms with cubic-bezier(0.4, 0, 0.2, 1) iOS-style easing
FixSmooth navbar show/hide transition without scroll jank
v1.6.1
Mobile animation fixes
FixReplaced ScrollTrigger scrub with callback-based tweens on mobile for reliable touch scrolling
FixManifesto section scroll animation now follows reading pace on touch devices
FixReduced manifesto text density on small screens for comfortable reading
ImprovementuseReducedMotion hook respects prefers-reduced-motion media query across all animated components
v1.6.0
About section and typography refresh
FeatureRedesigned about section with statement cards, value grid, and company history timeline
FeatureISO certification showcase with quality policy card and standards listing
ImprovementSwapped body font from Inter to Merriweather Sans with full Bosnian diacritical support
ImprovementWork Sans adopted for headings at weights 500-800 for stronger visual hierarchy
v1.5.1
Legal and privacy pages
FeaturePrivacy policy page with GDPR-compliant data processing disclosures
FeatureTerms of service page with liability and dispute resolution sections
ImprovementLegal pages share a consistent prose layout with serif headings and comfortable reading width
v1.5.0
UI overhaul and client logos
FeatureComplete UI overhaul with iOS-inspired card system using squircle border radii
FeatureClient logo integration with trusted-by marquee section pulling from clients.json
ImprovementRefined spring easing curves (--ease-spring, --ease-ios, --ease-smooth) across all interactive elements
ImprovementDark theme with indigo-tinted grayscale palette (--ios-gray-1 through --ios-gray-6)
ImprovementContact CTA section with gradient background and animated entrance
v1.4.2
Team gallery and service animations
FeatureTeam member photo gallery with leadership cards pulling from team.json
FeatureCrafted idle animations and entrance tweens for service icons using GSAP timelines
ImprovementBento grid layout for service icon display with responsive column count
ImprovementTeam page linked from navigation with avatar hover effects
v1.4.1
Custom cursor and interaction design
FeatureCustom cursor with bulletproof hover detection on interactive elements
FeatureInteraction states defined in brand/interactions.css with hover, focus, and active feedback patterns
ImprovementButton interaction feedback with spring-based scale transforms on press
FixCursor position tracking on nested overflow containers
v1.4.0
Delivery routes visualization
FeatureTerrain route SVG with flowing gradient paths between regional logistics hubs
FeatureBosnia logistics SVG map with real geography outline (1346x1290 viewBox) and 26 collection routes to 5 hubs
FeatureAnimated density zones overlay with glow effects and grid patterns
ImprovementSVG stroke dash animation for route flow indicators with configurable speed
v1.3.2
Animation system expansion
FeatureOrbit animation component with configurable radius, speed, and child element count
FeatureGrid moving lines animation for geometric section backgrounds
FeatureDecorative pattern generator for section dividers and visual rhythm
ImprovementAll animation components use .client.tsx suffix enforcing client-side rendering boundary
v1.3.1
Conway's Game of Life
FeatureCanvas-rendered Conway's Game of Life with ~24,000 cells at 6px resolution
ImprovementGeneration updates every 300ms with 0.08 opacity transition speed for smooth cell fading
Improvement12% initial spawn probability (Math.random() > 0.88) creating organic density
ImprovementDark mode adapted: 30% max opacity in dark, full opacity in light for visual balance
v1.3.0
Blog engine and content pages
FeatureBlog listing page with post cards, featured images, and category filtering
FeatureDynamic blog post pages with JSON content rendering, reading time estimation, and related posts
Feature6 blog posts written covering EU regulations, BiH export trends, customs integration, and company news
Feature4 document resource pages: ATA Carnet, EORI Number, Incoterms guide, and measurement institution request
ImprovementBlog pagination component for scaling beyond initial post set
ImprovementProse styling with serif headings and optimized 65ch reading width
v1.2.1
Animation infrastructure
FeatureGSAP 3.14 integration with ScrollTrigger, ScrollSmoother, and SplitText plugins registered in src/lib/gsap/index.ts
FeatureFramer Motion 12.33 (motion/react) with AnimatePresence for route transitions
FeatureTilt card component with 3D perspective transform following cursor position
FeatureFade-in animation wrapper with configurable direction, delay, and viewport trigger
Improvementtw-animate-css 1.4 for Tailwind-native animation utility classes
v1.2.0
Services and contact pages
FeatureServices page with icon-mapped transport mode cards loading from services.json
FeatureContact page with multi-field form validation and Resend-backed API endpoint
FeatureOffice locations section pulling addresses and coordinates from offices.json
ImprovementLucide icon integration (lucide-react 0.563) for consistent iconography across 40+ components
v1.1.2
Data access layer and type system
FeatureTyped data loader in src/lib/data.ts with functions for site config, navigation, services, team, and posts
Feature5 TypeScript type definition files: site.ts, blog.ts, services.ts, content.ts, and barrel index.ts
ImprovementAll JSON data files validated against TypeScript interfaces at import time
ImprovementStrict TypeScript configuration with no implicit any, strict null checks, and exact optional properties
v1.1.1
JSON data layer
Feature15 structured data files: site.json, navigation.json, home.json, services.json, offices.json, clients.json, team.json, documents.json, plus 6 blog posts and _meta.json
ImprovementCompany data centralized in site.json with name, tagline, contact details, and social links
ImprovementNavigation structure defined in navigation.json with nested menu items and route mappings
v1.1.0
Design system foundation
FeatureOKLCH color system with primary oklch(0.5574 0.2076 25.8), indigo-tinted gray scale, and perceptually uniform palette
FeatureFluid clamp typography scale from heading-xl down to body-sm using three font families
FeatureCSS custom properties for all theme tokens with @custom-variant dark mode toggling
FeatureLayered shadow system with indigo-tinted elevation across 4 depth levels
FeatureEasing token system: --ease-spring, --ease-ios, --ease-smooth for consistent motion
ImprovementSquircle border radius tokens matching iOS design language
ImprovementBrand system split into 9 files (colors, typography, animations, interactions, voice) in /brand directory
v1.0.1
Component primitives and tooling
FeatureBase UI components: Button, Input, Textarea, Avatar, and ImagePlaceholder with variant props
FeatureRadix UI primitives (v1.4) for accessible low-level component building blocks
FeatureCVA (class-variance-authority v0.7) installed for type-safe component variant patterns
Improvementclsx + tailwind-merge utility pipeline for conflict-free class composition
ImprovementESLint 9 with Next.js recommended rules for consistent code quality
v1.0.0
Project scaffolding
FeatureNext.js 16.1.6 app router with React 19, TypeScript strict mode, and static site generation
FeatureTailwind CSS 4 with postcss pipeline and @tailwindcss/postcss integration
FeatureReact Compiler activated via babel-plugin-react-compiler for automatic memoization
Feature3 Google Fonts configured: Merriweather Sans (body), Work Sans (headings), IBM Plex Mono (mono)
FeatureJSON-driven site configuration for company data, navigation, and content
FeatureResponsive layout with fixed header, footer, and 15+ planned routes
ImprovementGSAP 3.14 animation library with ScrollTrigger and @gsap/react bindings
v0.1.0
Initial repository
FeatureRepository created with Next.js create-next-app scaffold
FeatureGit initialized with .gitignore for node_modules, .next, and environment files
Improvementpnpm selected as package manager for disk-efficient dependency resolution