Skip to main content
Changelog

Portfolio Timeline

A chronological record of how this portfolio has evolved. Each version reflects not just technical updates, but shifts in how I think about presenting design work, from craft to impact.

Major Release
Feature Update
Patch
v5.11.0
Oct 28, 2026

Primary domain migration — willcreativestudio.com

The studio moves to its own name: willcreativestudio.com becomes the primary domain and every canonical URL, Open Graph tag, JSON-LD identity, sitemap and llms.txt reference points there. willfinger.com stays attached and 308-redirects (method-preserving, so nothing breaks mid-request) every path — including www — to the new domain. The contact API allowlists both origins during the transition, and the william@willfinger.com email address is unchanged.

  • Canonical, og:url, og:image, twitter:url and JSON-LD (@id, url, sameAs) now use https://willcreativestudio.com.
  • sitemap.xml, robots.txt and llms.txt point to the new domain.
  • willfinger.com (apex + www) 308-redirects every path to willcreativestudio.com via host-conditioned edge rules.
  • Contact API Origin allowlist covers both domains; the design-system and system-status page descriptions name the new domain.
v5.10.3
Oct 22, 2026

AI chat panel fixed — opening it no longer takes the page down

Clicking the AI chat bubble white-screened the whole site. The lazy-loaded panel resolved through a named export React.lazy could not see, and the resulting error fell through to the root error boundary whose fallback itself depended on the providers it sits outside — so the safety net crashed too. The panel now lazy-resolves correctly, the boundary fallback is provider-independent, chat failures degrade to a hidden bubble instead of a dead page, and cached conversations are validated before they reach the chat runtime.

  • ChatPanel lazy import mapped to { default } — fixes the crash on first open (broken since the lazy-loading batch).
  • Error boundary fallback re-establishes its own LanguageProvider: the root boundary sits outside the provider stack, so its fallback previously threw useLanguage and blanked the page.
  • Chat bubble wrapped in its own error boundary — chat failures now hide only the bubble, never the site.
  • Cached conversations validated (role + parts) before hydration and the message list guards parts access, so stale localStorage can no longer crash the panel.
v5.10.2
Sep 13, 2026

Media quality restored — the diet's conversions rolled back

The media optimization from the performance batch visibly degraded the hero carousel and the project artwork: lossy WebP conversions and re-encoded videos softened the work. All original media is restored at full quality — hero GIFs, project heroes, galleries and videos — accepting the bandwidth cost. The rest of the diet (leaner bundle, lazy loading) stays.

  • Hero carousel: original GIFs restored (astraly brick-move, briq-lottery, influence-sbt, token-landing, token-distribution).
  • Project heroes and galleries: original PNG/JPG quality restored (astraly labs, tomb finance, sweat economy, sweatcoin galleries, ftmpad).
  • Videos: original-quality astralyvideo.mp4 and sweat-charts.mp4 restored.
  • Kept from the performance batch: the bundle diet, lazy loading and prerender — only the lossy media conversions were rolled back.
v5.10.1
Sep 12, 2026

Webkit navbar fix + polish batch

Safari/WebKit desktop users at viewports of 1280–1285px lost the entire top navigation: WebKit subtracts the classic scrollbar from media-query width, so the 1280px breakpoint failed. Navigation and the mobile tab bar now hand over at 1264px, immune to scrollbar width. Plus a polish batch: the System Status page finally says System Status, sliders got trilingual labels and bigger thumbs, small mobile controls gained real hit areas, and the prerender now prints full Chromium diagnostics on remote launch failures.

  • Navbar breakpoint made scrollbar-safe (1264px): fixes the missing top navigation in WebKit/Safari at 1280px viewports.
  • System Status page title fixed (was reusing "Portfolio Timeline") — new trilingual label.
  • Sound volume and corner-radius sliders: trilingual aria-labels + 24px thumbs.
  • Mobile reset button, language pills and font dropdown rows: 44px-class hit areas via transparent extenders (visuals unchanged).
  • Testimonial dots: visible keyboard-focus ring.
  • Prerender: full Chromium diagnostics logged on remote launch failures; Vercel installer output captured on failure.
v5.10.0
Sep 12, 2026

Performance diet, API hardening, CI, privacy page

Attacked the measured performance bottleneck (LCP ~10-12s from a 28MB eager media flood) with a full media and JavaScript diet, closed the API security gaps found in the August review, added real CI, and shipped a trilingual privacy page. Eager JS down 36%, baked home media down 7x, and the e2e suite rebuilt to 66 green tests.

  • Media diet: carousel GIFs converted to animated WebP with alpha preserved (27.2 MB to ~2.5 MB), videos re-encoded (astralyvideo 20.7 MB to 1.2 MB, sweat-charts 2.7 MB to 0.95 MB with a poster frame), 51 MB of dead unreferenced assets deleted, stills resized to display resolution. Baked home-page media: 28 MB to 3.9 MB.
  • JavaScript diet: icon registry moved off the eager path via per-icon deep imports (icons-vendor 88 to 31 kB gzip), chat AI SDK lazy-loaded, duplicate ai package deduped to 6.0.154, pt/ja locales loaded on demand (139 kB gzip off boot), Sentry init deferred to idle, speculative route prefetch stripped from baked pages. Eager JS: 624 to 397 kB gzip (down 36%).
  • API hardening: admin auth now fails closed when ADMIN_PASSWORD is unset (kills the empty-cookie admin bypass), rate limits on contact and chat endpoints, real CSRF double-submit plus Origin allowlist on the contact form, input length caps, chat CORS tightened and error bodies made generic.
  • CI: GitHub Actions workflow running vitest, build with strict prerender, and the Playwright suite on every push and PR.
  • Privacy: trilingual /privacy page (prerendered and in the sitemap) disclosing Resend email delivery, Z.AI chat forwarding, opt-in analytics, and Sentry error reporting; analytics env vars documented in DEPLOYMENT.md.
  • Testing: e2e suite rebuilt from 139 tests (~40-60 stale failures) to 66 green tests: five debug-era specs deleted, case-study specs rewritten for the real routes, stale locators and title assertions repaired.
v5.9.6
Sep 10, 2026

Lighter fills inside the hero CTAs, badge and partnership CTA

With the brighter brand mint, the tinted fills inside the hero CTAs, the [ SCALE PRODUCTS ] badge and the partnership CTA read heavy. All of their background tints are halved: badge fill 10% to 5% primary, always-visible glare 12% to 6%, animated beam sweep 40% to 20% and hover fill 5% to 2.5%.

  • Halved background opacities: badge fill 0.10 to 0.05, CTA glare 0.12 to 0.06, beam sweep 0.40 to 0.20, hover fill 0.05 to 0.025 (hero and partnership CTA).
v5.9.5
Sep 10, 2026

Theme swatches reordered: Teal, Green, Orange, Red, Purple, Blue, Black & White

The theme color picker — hero swatches, settings panel and mobile — now presents the palette in a warm-to-cool-friendly order starting from the default Teal, ending with Black & White.

  • Swatch order in the hero section and settings is now Teal, Green, Orange, Red, Purple, Blue, Black & White. The default (slot 0) remains Teal.
v5.9.4
Sep 10, 2026

Cleaner featured card on the partnership page

The 6-Month Partnership card carried two glowing 1px beam lines pinned to its top and bottom edges, doubling up with the card border and reading as flickering dividers. They are removed — the card keeps its primary border and soft glow, nothing else.

  • Removed the top/bottom beam-line spans from the featured pricing card; border and glow shadow remain.
v5.9.3
Sep 10, 2026

Brand colors pinned: teal default #20FA9C, green swatch #71E518

The Teal default was nudged to the precise brand color: #20FA9C (HSL 154 96% 55%) everywhere — CSS tokens, both themes, the settings swatch, color-management fallbacks and the manifest theme_color — so the pre-JS render, the runtime picker and a manual reset all land on the exact same mint. The Green swatch was pinned to #71E518 (94 81% 50%) as well.

  • Teal default set to #20FA9C (154 96% 55%) across every token, theme and fallback; the swatch value now matches the CSS defaults exactly.
  • Green swatch set to #71E518 (94 81% 50%).
v5.9.2
Sep 10, 2026

The theme swatch is labeled Teal, not Aqua

Same color, clearer name: the default teal swatch (174 85% 45%) is now labeled "Teal" everywhere — settings swatch, aria-labels and docs — instead of "Aqua".

  • Theme swatch label renamed Aqua → Teal across the settings UI, accessibility labels and test fixtures. The color value is unchanged (174 85% 45%).
v5.9.1
Sep 10, 2026

Aqua + dark defaults, OTP flow in the Paybilt gallery, tighter reading

The site now opens in dark mode with the Aqua theme selected, and reset restores exactly that. The Paybilt case drops its "no live metrics" disclaimers — the delivery facts stand on their own — and gains a real artifact in its gallery: the Returning-User OTP flow from Checkout V2. Reading paragraphs got a tighter line height, and the beam-button outline was strengthened and lifted above neighboring effects so it no longer fades.

  • Defaults: dark mode + Aqua (teal, 174 85% 45%) across tokens, both themes, color-management fallbacks, the manifest theme_color and the shipped HTML class.
  • Paybilt: the "Honest Metrics Posture" block, the live-metrics row and column, and the related context disclaimers are removed in all three languages; the chat knowledge base is synced.
  • Paybilt gallery: the Returning-User OTP flow (a Checkout V2 artifact) joins the case study as a 1800px render.
  • Hero subtitle and about paragraphs: line height tightened from 2.2 to 1.6–1.7.
  • Beam buttons: outline opacity raised (0.6 to 0.9 with a stronger gradient) and the button lifted above overlapping effects so the animation stays visible.
v5.9.0
Sep 10, 2026

Paybilt case rebuilt on primary sources; pricing fully removed

The Paybilt case study now reports the engagement's real token architecture — 410 tokens across 3 Figma variable collections (269 Tailwind primitives, 13 proprietary Paybilt neutrals, 128 semantic aliases resolved per mode) — alongside the platform's real-time context, and ships a case card built from the system's own palette. Public pricing is now fully gone: every tier reads "Custom quote" and the start-smaller services list dropped its amounts.

  • Paybilt: the token architecture is reported from the primary Figma variable exports — 269 Tailwind primitive tokens, 13 Paybilt/0–1000 brand neutrals, and 128 semantic tokens across backgrounds, borders, icons and typography, each an alias back to a primitive and resolved per mode (Light Paybilt, Dark, Tailwind Standard Base).
  • Paybilt: company context corrected to the real platform — Toronto-based, real-time Interac e-Transfer payments, a fully branded online checkout (Hyper-Checkout) and in-person point-of-sale.
  • New case card generated from the system's own palette: slate/900 ground with the purple/500 accent (the bg/accent-solid semantic alias) and the Paybilt wordmark.
  • Pricing fully removed in all three languages: the Single Project tier and the start-smaller services list also dropped their amounts, completing 5.8.3's removal.
  • Brand refreshed: the navbar mark, favicon and PWA icons now use the 3D WCS artwork.
  • Honest-metrics posture unchanged: no live performance claims.
v5.8.3
Sep 10, 2026

Public pricing removed — engagements quoted individually

The partnership page no longer lists euro amounts. The two engagement tiers (1-month and 6-month) remain, each ending in a book-a-call CTA; terms are discussed directly, so the offer can adapt to each team's scope.

  • Price tags and the discount strike-through replaced with "Custom quote" (PT: "Sob consulta", JA: "料金は応談") in all three languages.
  • Tier names, feature lists and CTAs unchanged.
v5.8.2
Sep 10, 2026

Reset button names the actual default color

The mobile reset button's tooltip was hardcoded to "(Green)" while reset-to-default actually restores the amber/orange default since v5.6.1 — the label now derives from the theme list, so it always names the real default.

  • Mobile reset tooltip now derives from the default slot of the theme list (Orange) instead of a hardcoded "(Green)" string left over from the green era.
v5.8.1
Sep 10, 2026

Japanese restored on desktop + prerender actually ships

The desktop language button only cycled EN ↔ PT, leaving the complete Japanese version unreachable on desktop (it remained selectable on mobile). It now cycles all three languages: EN → PT → JA → EN. The static prerender pipeline also now reliably ships: Vercel's build environment could not launch the headless browser it downloaded (missing system libraries), so the build silently fell back to the client-rendered shell — the browser install now happens with system dependencies, and deploys can ship the locally prebuilt output.

  • Desktop language button cycles EN → PT-BR → JA → EN (labels show the next language); previously a hard EN ↔ PT toggle, so Japanese content was unreachable on desktop.
  • Vercel installs Chromium with its system dependencies during the build (fail-open: a failed browser install warns and ships the SPA shell rather than breaking the deploy).
  • No content changes; mobile language picker already offered all three languages.
v5.8.0
Sep 10, 2026

Static prerender: every public route now ships real HTML

The build now bakes fully rendered HTML for all 10 public routes — the homepage, four standalone pages and all five case studies — so crawlers, social unfurlers and no-JS visitors see actual content instead of an empty <div id="root">. Each baked page carries its runtime SEO title, description and canonical URL, and the pipeline fails open: if the build box has no browser, the deploy proceeds with the plain SPA fallback.

  • New scripts/prerender.mjs: after vite build it serves dist/ on an ephemeral local port, loads every public route in headless Chromium, waits for lazy chunks, fonts and network idle, walks the entire page so whileInView sections reveal and counters run to their final values, then serializes the live DOM to dist/<route>/index.html.
  • Route list is derived from the content: the five case study ids are read from cms/content/en/caseStudies.ts, not hardcoded. /products is skipped on purpose (the route is commented out in App.tsx, so baking it would publish a soft-404), as are /dashboard (noindex) and the /ds alias.
  • Every baked page was verified without JavaScript: a crawler-view pass re-loads each file with JS disabled and asserts a visible h1/h2, real text content and no opacity-0 sections above the fold — all 10 routes pass.
  • Baked pages keep route-specific <title>, meta description, OG tags and canonical URL: SEOHead sets these at runtime, and the bake happens after render, so unfurlers now see per-route cards.
  • Fail-open by design: missing Chromium or a failed route prints a loud warning and exits 0 so the deploy continues with the SPA fallback (vercel.json rewrites still serve every URL). PRERENDER_STRICT=1 turns failures into build errors for local verification.
  • Belt-and-braces routing: each route is written twice (<route>/index.html and <route>.html) and vercel.json gained explicit rewrites ahead of the SPA fallback, so prerendered files are served at clean URLs regardless of which filesystem resolution order Vercel applies.
  • Design-system demo previews (clipped ClipPreview containers) intentionally bake in their hidden state — their reveal animations never fire inside the clipping container for real visitors either; this matches production behavior exactly.
v5.7.1
Sep 10, 2026

27% smaller initial JavaScript — build chunk layout rebuilt

The build's manual-chunk layout was rebuilt around real dependency edges: the initial page load no longer drags in the case-study component tree, the design system page, or chart code. The old layout had silently swept all trilingual CMS content into the chunk the entry statically imported. Eager JavaScript dropped from 835 kB to 611 kB gzipped, the circular chunk warning is gone, and the unused recharts dependency was removed.

  • Initial load shrank 835 → 611 kB gzip (−27%): case-study-components 1021 → 35 kB (now truly lazy), react-vendor 706 → 231 kB, vendor 702 → 148 kB.
  • Root cause fixed: old chunk-matching regexes swept the trilingual CMS barrels (cms-en/pt/ja), @sentry/react, @phosphor-icons/react and framer-motion's runtime into the wrong buckets; chunks are now grouped by measured dependency edges.
  • Both build warnings resolved: the circular vendor ↔ react-vendor chunk and every >500 kB chunk.
  • recharts removed from dependencies — it was never imported anywhere; every chart on the site is hand-rolled SVG.
  • No behavior change: 73 unit tests, the mobile-viewport e2e suite and lazy-loading of all routes verified after the rebuild.
v5.7.0
Sep 10, 2026

Compiled Tailwind CSS v4 engine replaces the runtime CDN

Styling moved from the Tailwind Play CDN — a third-party script that JIT-compiled every utility in the browser on every visit — to Tailwind CSS v4 compiled at build time: a single 23 kB gzipped stylesheet, zero render-blocking third-party script, and a page that finally renders correctly without JavaScript (prerequisite for the upcoming static prerender). Rendering was verified probe-by-probe against the CDN version; one intentional fix: the hero subtitle now honors its authored line-height.

  • Play CDN removed: no cdn.tailwindcss.com script and no 243-line inline config; utilities are compiled into one hashed stylesheet (155 kB raw / 23 kB gzip) served from the same origin.
  • Full v4 theme in styles/tailwind.css: breakpoints (3xl/4xl), font stacks, 29 color hooks referencing the existing hsl(var(--*)) tokens (tokens stay the source of truth), zeroed radii, spring easing, custom blurs/shadows/text-shadows, 30 animations, and @utility rules for the namespaces v4 has no theme keys for (z-index, opacity, durations, background images).
  • v3 preflight compatibility restored on top of v4: 0.5px default border width, gray-200 default border color, button cursor, placeholder color and ring fallback — existing markup renders identically.
  • Hero subtitle line-height fix: the CDN let the responsive text-size utility override the authored leading-[2.2]; compiled CSS honors it, so the paragraph is slightly airier as designed. Mobile rendering is pixel-identical.
  • Unblocks the static prerender pipeline: the page no longer depends on a runtime script to look right.
v5.6.1
Sep 10, 2026

Amber rebrand, CRT effects removed, mobile hero fit fixed

The studio's visual identity moved from green to amber: Orange is now the default theme color and light the default mode. The CRT effect system and the grid-line glow overlay were removed end-to-end, the homepage was reordered around proof (past companies, recognition, partnership), and the hero finally fits iPhone-class screens — the nowrap pixel-font [ SCALE PRODUCTS ] badge was ~377px wide, silently pushing the hero column past the screen where the hero's overflow-x-hidden clipped it.

  • Amber rebrand: --primary, ring and glow tokens moved from green (142 70% 50%) to amber (25 95% 55%) across primitives, both themes, the manifest theme_color and all color-management fallbacks; Orange sits in the default slot of the theme picker.
  • Light mode is now the default (was dark), matching the shipped HTML; reset-to-default restores light + Orange.
  • CRT effect system removed end-to-end: effect component, settings panel + UI, context, scroll hook, crt/scanline CSS and their i18n strings; the grid-line glow overlay and its config/style/debug modules went with it. The CSS glow utilities used by cards remain.
  • Navbar settings dropdown removed — font and theme controls live in the config panels; leftover CRT/grid-highlight localStorage keys are cleared on reset.
  • Home reorder: Past Companies moved up behind the impact numbers, Recognition promoted to its own section, a Partnership section added above the contact CTA.
  • Partnership tiers refined and the footer CNPJ line removed.
  • Hero badge: font-size clamped to the viewport (min() calc), so the nowrap Handjet badge shrinks gracefully below ~409px instead of forcing the hero column past the screen.
  • Hero column given a definite width (w-full lg:w-auto) — flexbox was sizing it to the badge's 377px min-content on every viewport.
  • Hero section now uses 100svh (.min-h-screen-safe with 100vh fallback): iOS Safari's 100vh is the largest viewport, so toolbars visibly cut a 100vh hero.
  • Section headings drop one font size below 360px — a single text-5xl word ("Achievements") overflowed the viewport on iPhone SE (320px), creating real horizontal scroll.
  • Mobile settings/language dropdowns raised above the chat bubble (z-1300) so EN/PT/JA buttons are tappable on narrow screens; html-level overflow-x guard (hidden/clip) as a backstop.
  • New mobile-viewport Playwright spec: 320/375/390/414px × EN/PT/JA assert no hero element crosses the right edge and no document horizontal scroll.
  • Fixed pre-existing failing SoundContext unit test: it asserted on the old soundVolume localStorage key after the implementation moved to soundVolume2.
v5.6.0
Aug 21, 2026

Truth-swept content + partnership page + search visibility

Every public claim on the site now traces to a verifiable source (CV, DefiLlama, Cryptonomist, The Defiant/CoinDesk), a new /partnership page presents the monthly engagement, and the site ships robots.txt, a sitemap, security headers, a noscript fallback and llms.txt so search engines and AI crawlers can actually read it.

  • New /partnership page: senior product design by monthly partnership with AI design-to-code artifacts, two engagement tiers, available in EN, PT and JA and linked from the nav.
  • Content truth sweep across all three locales: Paybilt case study added (50+ atomic components, 3 engineers, no live metrics yet), Ailos folded into the PremierSoft study, titles corrected to Principal Product Designer, timelines, and location (Caldas da Rainha) verified.
  • Fabricated numbers removed portfolio-wide (380K, 150M, 126%, 3x, 95%, 37 engineers, 25+ microservices, 36-hour cycles and more); every remaining metric is sourced ($100M+ TVL via DefiLlama, 10M+ Mia users via Cryptonomist, 357K+ DAO wallets via The Defiant/CoinDesk, +600% claim-all clicks, +20% D7 iOS retention).
  • Search visibility: robots.txt and sitemap.xml (10 canonical URLs), noscript fallback with the verified proof points, llms.txt for AI crawlers, one Person + WebSite JSON-LD block, single-title format with no double branding, absolute share-image URLs, and SEO metadata on Timeline, System Status and Design System.
  • Security and caching headers on Vercel (X-Content-Type-Options, X-Frame-Options DENY, Referrer-Policy, immutable /assets and /images, HTML always revalidated); dead Netlify files and the dev-only sitemap route removed.
  • Fixes: /system-status page crash (a content reference outside its component scope), Japanese password-setup label and portfolio badge keys, duplicate search filter keys, stale github.com/willfinger links, and the Sweat Economy chart now shows verified engagement lifts instead of invented user counts.
v5.5.0
Aug 17, 2026

Design System live previews + duplicate section fix

The /ds design system page now renders the real components live inside every card instead of placeholder boxes, the duplicated Design Tokens section was removed, and the [ SCALE PRODUCTS ] badge was rebalanced in the hero title.

  • Removed the duplicated Design Tokens section (SystemOverviewSection was an exact copy of FoundationsSection, including duplicate id="foundations").
  • Charts, Navigation, Layout, Content, Cards, Case Study, and Modals sections now render real components live — fed with real CMS data where available.
  • Empty Navigation section populated (Navbar, Footer, MobileTabBar, SectionNav, TableOfContents) with live previews where safe.
  • Fixed React error #31 crash on /ds: stray style={{color}} JSX expressions in EffectsSection/UtilitiesSection were rendering object literals as children.
  • Hero [ SCALE PRODUCTS ] badge nudged lower for visual balance between title lines.
  • New /ds route alias alongside /design-system.
v5.3.1
Aug 14, 2026

Green default theme + badge corner fix + bigger carousel media

Green is now the default primary color across the whole system (smoke, glow, ring, beams included). Fixed the [ SCALE ] badge glow rendering square corners when the Corner Radius slider changes — the badge had collapsed to inline display inside the Magnetic wrapper. Carousel media upsized ~45%.

  • Green (142 70% 50%) moved to the default theme slot: --primary/--ring/--glow-primary CSS defaults and all color-management fallbacks updated; smoke, laser beam, and designer beam follow automatically.
  • [ SCALE ] badge: added inline-block so border-radius, overflow clipping, and the laser glow actually round with the Corner Radius slider (inline spans paint square backgrounds regardless of computed radius).
  • Carousel card size multiplier raised to 1.45× of radius × ratio — media visibly larger on all screens.
  • Carousel exit animation now slides right instead of dropping down; smoke rendered in front of the carousel layer.
v5.3.0
Aug 14, 2026

2.5D portfolio carousel + modal fixes

New 2.5D circular carousel in the Hero with real portfolio media (MP4s, GIFs, stills): viewport-responsive sizing on any screen up to 4K, reverse parallax with animated show/hide on scroll, magnetic hover with ring slow-down, click-to-zoom, and per-asset aspect ratios. Also: settings modal now closes on outside click and Escape, all modals standardized on a single-overlay pattern, CRT page-corner rounding squared, full-width Recognition section, How We Work hidden, and footer dividers removed.

  • 2.5D DOM carousel (no WebGL) renders portfolio assets in a ring with auto-sizing from the viewport — bigger rings on 4K, smaller on laptops — with a dev-only tuning panel (hidden in production).
  • Carousel interactions: magnetic hover (card leans toward cursor, ring slows to 20%), click pops the card and grows the ring, reverse parallax and quick animated hide/reveal tied to scroll.
  • Settings modal fixed: closes on outside click (document-level listener, immune to the navbar scroll transform) and Escape; standardized modal overlays across Contact, Search, Login, and CRT panels.
  • Layout: Recognition section full-width and responsive, How We Work section hidden, footer/section dividers removed, CRT bezel corner radius squared (vignette kept).
v5.2.10
Jul 25, 2026

Chart bar corners + SCALE DESIGN font lock + tag radius

Added directional radius coverage so chart bars (rounded-t-none) follow the slider; locked the SCALE DESIGN badge to Handjet with a high-specificity CSS rule that survives any sans font change; tags/pills with bg/border classes already follow the slider.

  • Radius override now covers directional utilities (rounded-t-*, rounded-b-*, etc.) so chart bars and any element using directional radius follow the slider.
  • SCALE DESIGN badge font locked to Handjet via a doubled-class !important rule in global.css, preventing any dynamic sans font injection from changing it.
v5.2.9
Jul 25, 2026

Sound loads reliably + active by default

Removed the navigator.userActivation gate that could block the first interaction's sound, and bumped the volume storage key to clear stale values. Sound is now ON at full volume (100) by default and plays on the first gesture without intermittent failures.

  • Removed the navigator.userActivation.hasBeenActive early-return from the audio engine — the browser's native AudioContext.resume() autoplay policy handles this more reliably. Sounds now attempt to play immediately on any interaction instead of being gated by the activation API.
  • Bumped soundVolume storage key (soundVolume → soundVolume2) to clear any stale stored 0 from earlier testing, restoring the 100% default.
v5.2.8
Jul 25, 2026

Chat FAB bottom-right + conversation cached

The AI chat button is back on the bottom-right, and the conversation now persists in localStorage so it survives closing and reopening the chat modal.

  • Chat FAB + panel moved back to the bottom-right (was moved left to avoid the tab bar overlap; user prefers right).
  • Chat messages are now cached to localStorage (key "ai-chat-messages", capped at the last 50 messages) and restored via useChat initialMessages when the modal reopens, so the conversation is never lost.
v5.2.7
Jul 25, 2026

Rollback: orange restored to original shade

Reverted the primary orange from the warmer amber (≈38°) back to the original orange (25°) across the dark theme, light theme, swatch, and all color-change hooks.

  • Reverted --primary from 38° amber to the original 25° orange (25 95% 55% dark / 25 95% 50% light) across dark.css, light.css, the themeColors swatch, and all three color-management hooks.
v5.2.6
Jul 25, 2026

Corner radius now applies to all visible corners

The Corner Radius slider now shapes every visible corner — buttons, links, inputs, cards, badges, the SCALE DESIGN title, and anything with a background or border — not just rounded-* utilities. Circular elements (avatars, icons) stay circular.

  • Broadened the radius override to cover all visible-corner elements (interactive controls, anything with a bg-*/border* class, the designer badge) in addition to rounded-* utilities, so the slider reshapes the whole UI.
  • rounded-full elements (avatars, icon discs, the chat FAB) remain circular regardless of the slider.
v5.2.5
Jul 25, 2026

Fix: corner radius now overrides the runtime Tailwind CDN

The corner-radius slider now works. The site loads the Tailwind Play CDN at runtime, which injected rounded-* utilities AFTER the build CSS and pinned corners to 0; the radius override now uses !important so it wins and corners follow the slider. Verified end-to-end with a headless browser.

  • Root cause: the Tailwind Play CDN (loaded in index.html) generated rounded-* utilities at runtime that landed after the build CSS and pinned corners to 0px regardless of the slider.
  • Fix: the global radius override now uses !important so it beats the CDN runtime utilities; corners follow --radius-app (the slider) and default to 8px. Confirmed via headless-browser test that dragging the slider changes the computed corner radius (8 → 20 → 0px) live.
v5.2.4
Jul 25, 2026

Warmer orange + corner-radius storage reset

Shifted the dark-mode primary off a too-yellow amber to a warmer orange, and bumped the corner-radius storage key so any stale saved value clears and the 8px default applies.

  • Theme primary shifted from yellow-amber (≈52°) to a warmer orange (≈38°, #F5A623-like) across the dark theme, the orange swatch, and all color-change paths.
  • Corner-radius storage key bumped again so a stale saved 0 (from earlier testing) clears — the slider works and defaults to 8px. Combined with the 5.2.3 service-worker cleanup, the fresh CSS now loads reliably.
v5.2.3
Jul 25, 2026

Fix: removed service worker that served stale CSS

A previously-registered service worker was caching old CSS/JS and serving it to returning visitors, so recent changes (including the corner-radius slider) never appeared. The service worker now self-unregisters and clears its caches; the site always loads fresh assets.

  • Removed the service-worker registration; /sw.js is now a self-unregistering cleanup script that clears all caches and unregisters itself on the next visit.
  • Added a no-cache header for /sw.js so the cleanup version reaches returning browsers immediately.
v5.2.2
Jul 25, 2026

Corner-radius fix, amber dark theme, smoke follows color, UI trim

The Corner Radius slider now works and ships at an 8px default; the default theme color is amber (bright phosphor-orange in dark mode); the Hero smoke now recolors from any color change; and the page-entering sound, Advanced settings, and oversized Settings panel were trimmed.

  • Corner Radius: bumped the storage key so stale saved values clear — the slider now reshapes every corner live and defaults to 8px (0 = fully square).
  • Default theme color is now amber/orange (first swatch). In dark mode it uses a bright amber-phosphor primary (#F7DC28 ≈ 52 93% 56%) with matching amber glow + ring.
  • Hero smoke now tracks the live --primary CSS variable, so it recolors whether you change color from the Hero swatches, the Settings panel, or reset-to-default.
  • Removed the page-entering sound (navigation no longer plays the "page" cue); click/tap sounds remain.
  • Settings panel content scaled to ~80% (desktop + mobile) and the "Advanced Settings" button is hidden for now.
v5.2.1
Jul 25, 2026

Fix: Corner Radius Slider Now Works + 8px Default

The Corner Radius slider now actually reshapes corners (it previously had no visible effect), and the design ships with a default 8px corner radius instead of 0. Drag the slider to 0 for fully square.

  • Root cause: Tailwind v4 was not emitting the --radius-app variable from the JS-config borderRadius, so the slider changed a variable nothing consumed. Replaced it with a plain CSS override that drives every rounded-* utility — including rounded-none, the dominant class — from --radius-app.
  • Default corner radius is now 8px (was 0) so the UI has a clear rounded baseline; rounded-full (avatars, icons) stays circular. The Settings slider (0–24) adjusts it live; 0 = fully square.
v5.2.0
Jul 25, 2026

Square-Corner Design System + Radius Slider, Hero Smoke WebGL, Chat FAB Refresh

Corners are now sharp (0px) across the design system by default, with a live Corner Radius slider in Settings. The Hero gets a dependency-free WebGL smoke backdrop that recolors with the theme. The chat FAB lost its pulse, matches the Impact-button outline style, and moved off the mobile menu.

  • Corner radius is now driven by one global --radius-app CSS variable (default 0 = sharp) across every non-circular surface; rounded-full (avatars, icons) stays circular. This also squares the few elements that were still rounded (rounded-xl / rounded-3xl).
  • New Corner Radius slider in Settings (desktop + mobile, 0–24px) changes the radius live and persists. Built via a new RadiusContext that mirrors the sound-volume pattern (and the slider even plays a drag sound).
  • Hero smoke: ported the raw-WebGL FBM smoke effect (zero dependencies) behind all Hero content; its palette is derived from the current theme color, so picking a new swatch recolors the smoke live. Full performance guards included (offscreen / hidden-tab pause, DPR clamp, prefers-reduced-motion static frame, save-data bail).
  • Chat FAB: removed the pulsing halo; restyled from a solid fill to the outline/tinted look of the Hero "Impact by the Numbers" CTA; moved to bottom-left on mobile/tablet so it no longer overlaps the bottom-right menu/tab bar (bottom-right on desktop).
v5.1.1
Jul 25, 2026

Sound On by Default + Volume Slider, Color Sweep & Slider Sounds

UI sound is now on by default. The on/off toggle became a volume slider in Settings; hovering the color/theme palette plays a rising, intercalated sweep; every slider (including CRT settings) plays a pitched tick while dragged; and hover sounds were removed everywhere except the color swatches (click/tap sounds remain). Sound still defaults off under OS reduced-motion.

  • Sound defaults ON; removed the first-visit opt-in prompt (SoundPrompt). cuelume still autoplay-gates on the first gesture, so nothing plays until you interact.
  • Replaced the Settings on/off toggle with a volume slider (desktop + mobile). 0 = muted, 100 = full, persists across reloads. Added a shared volume GainNode to the engine (setVolume) so one slider scales every sound.
  • Color/theme swatches now fire a pitched, unthrottled sweep on hover — play(name, { semitones }) per swatch — so sweeping the palette layers a rising cascade.
  • Hover sounds removed from all other surfaces (nav, cards, social, chat, case studies); click/tap sounds (press/toggle/release + success/error/loading/ready/page) remain.
  • Every range slider now plays a throttled pitched tick on drag (auto-detected in bind(), pitch follows the value) — covers the volume slider and all CRT effect sliders.
v5.1.0
Jul 24, 2026

Interface Sound Layer (cuelume) — Opt-in, Synthesized, Zero Dependencies

Added a full UI sound layer using cuelume — 14 interaction sounds synthesized live via the Web Audio API (no audio files, zero runtime dependencies). Sound is opt-in: a one-time prompt lets first-time visitors enable it, with a permanent on/off toggle in Settings. It defaults off, respects prefers-reduced-motion, and never plays before a user gesture.

  • Vendored the audited cuelume source (MIT, pinned commit ce81ece) into lib/sound/cuelume instead of npm-installing, eliminating two supply-chain gaps a pre-adoption audit flagged (npm/GitHub identity mismatch and an unverifiable dist-only tarball). The code is pure Web Audio synthesis: no network calls, no eval, no storage access, autoplay-gated.
  • New SoundContext (provider + useSound hook) calls bind() once at the document level, seeds the enabled flag at module scope to close the pre-paint gap, and persists the preference via the existing safeStorage wrapper.
  • One-time opt-in prompt (components/sound/SoundPrompt) appears once for new visitors, then never again; a permanent Sound on/off toggle was added to both the desktop Settings and mobile Config panels.
  • Wired the full 14-sound palette across ~30 components — nav, hero, sections, case studies + lightbox, the AI chat (send/thinking/line-by-line answer reveal/error), contact + login modals, search modal, and clipboard copies — with restraint: dense lists use the near-silent "whisper", tick/chime/sparkle stay on nav/CTAs/icon bursts, and load-bearing cues (success/error/loading/ready) fire once per real action.
v5.0.9
Jul 8, 2026

AI Chat: Switched to Z.AI GLM Coding Plan (no more free-model rate limits)

The chat widget no longer relies on rate-limited OpenRouter free models. It now runs on the Z.AI GLM Coding Plan (glm-4.6 primary, glm-5.2 fallback) with reasoning disabled for fast, cheap, reliable answers.

  • Replaced the OpenRouter free-model fallback chain (gpt-oss-120b:free and liquid lfm free) — which rate-limited and returned the "AI assistant is busy" error — with the Z.AI GLM Coding Plan endpoint (api.z.ai/api/coding/paas/v4).
  • Primary model: glm-4.6 (efficient, strong for Q&A); fallback: glm-5.2 (flagship). Both verified working against the coding endpoint before deploy.
  • Disabled GLM thinking/reasoning so the full token budget goes to the visible answer — cheaper, faster, and removes the empty-response failure mode where reasoning tokens could starve the answer.
  • Removed all OpenRouter free models. The chat now requires a ZAI_API_KEY env var (set on Vercel). Note: the GLM Coding Plan is officially intended for coding tools, so using it for the site chat is outside the primary use case Z.AI documents for the plan.
v5.0.8
Jul 8, 2026

Fix: Hero Services/Industries Fading Too Early on Mobile

On mobile the Hero scroll fade dimmed the stacked Services/Industries column as the user scrolled down to read it. The fade is now desktop-only.

  • The Hero opacity scroll-fade (opacity 1 to 0 over 0.8x viewport height) applied to the entire Hero section. On mobile the Hero is taller than one viewport — the Services and Industries block stacks below the headline/CTAs — so the fade dimmed that block as the user scrolled toward it. The fade is now gated to the lg breakpoint (>=1024px); on mobile the Hero scrolls at full opacity so the Services/Industries list stays readable.
v5.0.7
Jul 8, 2026

Fix: Scroll-Reveal Early-Hide + Mobile Responsiveness

Fixed the scroll fade effect where sections (especially the tall mobile Services grid) faded to invisible while still in the middle of the screen, and removed residual scroll-back re-hide flicker.

  • Root cause: the .scroll-reveal and .reveal-item CSS scroll-driven animations used an exit range of "exit 0% exit 60%". For any section taller than the viewport (the stacked mobile Services grid), the view() "exit" phase begins while the section still fills the entire screen, so it faded to opacity 0 mid-screen. Corrected to "exit 70% exit 100%" so the fade is anchored to the element genuinely leaving the top edge — verified by timeline math for both tall mobile and short desktop sections.
  • Removed a dead, duplicate Hero fade: the HeroFadeWrapper in Home.tsx (a 150vh framer-motion opacity fade) compounded with the manual scroll fade already in Hero.tsx and never visibly applied. Deleted it so there is a single, correctly-scoped hero fade.
  • Eliminated scroll-back re-hide flicker: changed lingering whileInView/useInView once:false reveals to once:true in AboutSections (Experience/Awards), CoreCompetenciesSection, CaseStudyDetail, and EnhancedStrategyCard, matching the established "sections stay visible" convention.
v5.0.6
Jun 26, 2026

Full PT-BR Translation Pass + AI Chat Polish

Multi-agent workflow reviewed and fixed all Brazilian Portuguese content against the English source. Natural PT-BR copywriting throughout, fixing machine-translated and European-Portuguese phrasing.

  • 12 PT content files retranslated to natural Brazilian Portuguese (caseStudies, ui, metrics, triad, testimonials, products, experience, awards, competencies, secondaryMetrics, index, timeline)
  • Fixed bugs: "DeFi" mistranslation → "Fantom" (proper noun); restored missing "Increase/Lift" in secondary metrics; "Daily Flip" feature name kept untranslated
  • Natural BR vocabulary: você/usuário/tela/equipe, "receita" for revenue, "TVL Gerado", "Eleitores da DAO", "Expansão da Equipe"
  • AI chat: switched to gpt-oss-120b (stronger model), English system prompt for true multi-language, suppressed self-thinking/reasoning prefix, removed dead settings button
v5.0.5
Jun 26, 2026

Fix: AI Chat FUNCTION_INVOCATION_FAILED (root cause)

Found and fixed the real root cause after many iterations: the `export const config` block with `as const` crashed Vercel's build parser, failing every deployment since the OpenRouter switch — so none of the chat fixes ever went live.

  • Root cause: `export const config = { runtime: "nodejs" as const }` triggered "Unhandled type: AsExpression" build error on Vercel — removed the block entirely
  • Deleted dead api/lib/buildSystemPrompt.ts + chat-prompt.ts which imported from cms/content/* (crashes Vercel serverless bundler)
  • Made api/chat.ts 100% self-contained: knowledge base inlined as string, zero local module imports
  • AI chat now streams correctly (HTTP 200) using OpenRouter Liquid LFM free model
  • System prompt enforces truthfulness: only site data, no internet, no fabrication
  • Verified live deploy with curl before declaring victory
v5.0.4
Jun 2, 2026

AI Chat Overhaul + PT-BR Fix + Cleanup

Switched AI chat to OpenRouter free model, injected complete knowledge base to prevent hallucinations, fixed Portuguese translations, removed all dead Supabase/Postgres env vars.

  • Switched AI chat from Z.AI to OpenRouter (DeepSeek V3 free model)
  • Added api/lib/site-content.ts — complete knowledge base with ALL CMS data (4 case studies, 4 experiences, metrics, skills, awards, testimonials)
  • System prompt now injects knowledge base with strict anti-hallucination rules ("USE ONLY DATA ABOVE")
  • Fixed fabricated data: removed 2 fake experience entries (Riot Games, Liftoff) that never existed in CMS
  • Fixed PT-BR Hero section fragmented text → coherent Brazilian Portuguese sentences
  • Fixed PT-BR accessibility section first-person "Estou" → studio voice "Estamos"
  • Fixed PT-BR chat suggestions from personal "William" to studio "WCS" references
  • Removed 18 dead env vars (Supabase×9, Postgres×6, Z.AI×1) from .env.local and .vercel/.env.production.local
  • OPENROUTER_API_KEY is only API key needed for AI chat (no more Z_AI_API_KEY)
v5.0.3
May 23, 2026

Fix: AI Chat FUNCTION_INVOCATION_FAILED

Fixed critical chat crash. Root cause: @ai-sdk/openai + ai packages fail to import on Vercel Node.js runtime, and edge-style Request/Response handler signature causes hangs. Replaced with raw fetch() + VercelRequest/VercelResponse pattern.

  • Replaced @ai-sdk/openai with raw fetch to Z.AI API
  • Switched handler from edge Request/Response to VercelRequest/VercelResponse
  • Moved api/chat-prompt.ts → api/lib/chat-prompt.ts (was creating broken route)
  • Set Z_AI_API_KEY in Vercel production environment variables
  • Forced fresh Vercel build (--force) to clear stale .vercel/output
  • Chat streams SSE responses from glm-zero-preview model
v5.0.2
May 23, 2026

Hide Products UI

Temporarily hid all Products UI (nav, page, sections, hero badge) for future release.

  • Hidden Products nav item from Navbar (mobile + desktop)
  • Hidden Products tab from MobileTabBar
  • Hidden /products route from App.tsx router
  • Hidden ProductsSection from Home landing page
  • Replaced "SCALE PRODUCTS" hero badge with "SCALE DESIGN"
  • Removed /products from SEO sitemap
  • Removed products info from chat system prompt
v5.0.1
May 22, 2026

Fix: White Page Crash (ContactModal TDZ)

Fixed critical runtime crash causing blank white page on all routes. ContactModal had a Temporal Dead Zone error — isActive and csrfToken state were referenced in a useEffect before being declared with const/useState.

  • Fixed TDZ crash in ContactModal — moved state declarations above useEffect dependencies
  • Root cause: useEffect referenced isActive/setCsrfToken before const/useState declarations
  • Crash affected all pages since ContactModal is always mounted inside Layout
v5.0.0
May 21, 2026

WCS Rebrand + Products Page

Major rebrand from William Finger personal portfolio to Will Creative Studio (WCS). Full studio voice ("We/Our"), new Products page showcasing Geneziz and Bluejam Blueprint, updated all metadata, SEO, chat AI prompts, and navigation.

  • Rebranded entire site from "William Finger" to "WCS / Will Creative Studio"
  • Changed all copy from first-person ("I/my") to studio voice ("We/our/WCS")
  • Added Products page (/products) with Geneziz and Bluejam Blueprint showcase
  • Added Products section to landing page with vertical stacked card layout
  • Added Products nav item in Navbar and MobileTabBar
  • Updated hero badge to "Creative Studio — Design, Engineering & Products"
  • Updated About section to remote-first global studio bio
  • Rewrote AI chat prompts as WCS studio assistant with product knowledge
  • Updated all SEO meta tags, OG tags, JSON-LD to Organization schema
  • Switched PWA manifest and service worker cache names to WCS
  • Hidden iParent product data (preserved, ready to unhide later)
v4.34.0
April 28, 2026

Section Reorder, Services Redesign, Docs Cleanup

Redesigned services section with icons and active-state cards. Reordered page sections: Hero → Impact → Services → Works → Philosophy. Cleaned up README and archived debug artifacts.

  • Redesigned Services section with Phosphor icons and active-state cards
  • Made hero services/industries always active (no hover)
  • Moved Philosophy section below Selected Works
  • Reduced Philosophy section font sizes and padding
  • Rewrote README.md to be concise and accurate
  • Moved 16 debug artifacts to docs/archive/
  • Updated package.json version to match constants
  • Bumped version to 4.34.0
v4.33.0
April 28, 2026

Hero Layout Redesign

Redesigned hero section from centered to left-aligned two-column layout. Services and industries moved to a right-side panel with interactive hover effects and glow accents.

  • Changed hero from centered to left-aligned layout
  • Added two-column layout with services/industries on the right
  • Fixed overflow-hidden clipping the info strip on shorter viewports
  • Added interactive hover states with glow effects on service items
  • Added gradient dividers and pulsing indicators
  • Vertically centered right column with lg:self-center
  • Updated VERSION to 4.33.0
v4.32.0
February 7, 2026

Vite 7 Migration & Package Updates

Migrated build toolchain to Vite 7.3.1 with Vitest 4.0.18. Updated 30+ dependencies across patch and minor versions.

  • Upgraded Vite from 6.2.0 to 7.3.1
  • Upgraded Vitest from 3.2.4 to 4.0.18
  • Extracted vitest config to separate file for Vite 7 compatibility
  • Upgraded React and React-DOM to 19.2.4
  • Updated @sentry packages to 10.38.0
  • Updated @linear/sdk from 68.1.0 to 74.0.0
  • Applied 30+ dependency patch and minor updates
  • Updated VERSION to 4.32.0 in constants.ts
v4.31.7
February 4, 2026

Additional Security Information Redaction

Further redacted sensitive security information from changelog entries beyond vulnerability IDs. Removed API endpoints, service names, file paths, and personal URLs to reduce information disclosure.

  • Redacted API endpoint paths (e.g., /api/contact, /api/images/*) from multiple changelog entries
  • Redacted service names (Resend API, Vercel serverless function) with generic alternatives
  • Redacted personal URLs (willfinger.com, LinkedIn and GitHub profile URLs)
  • Redacted internal file paths (server/middleware/*, lib/logger.ts)
  • Redacted environment variable names (SESSION_SECRET, POSTGRES_URL)
  • Applied same redactions to Portuguese changelog
  • Updated VERSION to 4.31.7 in constants.ts
v4.31.6
February 4, 2026

Security Information Redaction

Redacted sensitive security information from changelog to prevent exposing implementation details that could aid attackers.

  • Removed specific vulnerability IDs (GHSA identifiers) from changelog entries
  • Removed specific package names and version ranges from security fixes
  • Generalized security update descriptions to reduce information disclosure
  • Updated VERSION to 4.31.6 in constants.ts
v4.31.5
February 3, 2026

Final Security Fix

Fixed the final remaining dependency vulnerability. Project now has 0 vulnerabilities confirmed.

  • Fixed high severity dependency vulnerability
  • Ran npm audit fix - changed 1 package
  • All vulnerabilities now resolved (0 remaining)
  • Updated VERSION to 4.31.5 in constants.ts
v4.31.4
February 3, 2026

Security Update - Dependencies

Successfully resolved npm security vulnerabilities. Updated multiple packages. Project now has 0 vulnerabilities.

  • Fixed high severity vulnerabilities in dependencies
  • Ran npm audit fix - added 3 packages, changed 62 packages
  • All vulnerabilities now resolved (0 remaining)
  • Build verified working after security updates
  • Updated VERSION to 4.31.4 in constants.ts
v4.31.3
February 2, 2026

Security Vulnerability Fixes

Fixed npm security vulnerabilities using npm audit fix. Reduced vulnerabilities significantly.

  • Fixed high and moderate severity dependency vulnerabilities
  • Updated 12 packages via npm audit fix
  • Build verified working after security updates
  • Updated VERSION to 4.31.3 in constants.ts
v4.31.2
February 1, 2026

Translation CMS & Documentation Fixes

Fixed syntax errors in Portuguese translation CMS files, created comprehensive agent swarm guidelines (CLAUDE.md), and added continuous testing script for ongoing validation.

  • Fixed Portuguese ui.ts: added missing header: { wrapper and fixed closing braces
  • Fixed Portuguese triad.ts: removed incorrect extra content (1,353 lines → 37 lines)
  • Fixed English ui.ts: added missing array closing bracket for secondaryMetrics
  • Created CLAUDE.md with global agent swarm methodology guidelines
  • Created scripts/continuous-test.mjs for automated testing workflow
  • Added npm scripts: test:continuous and test:quick
  • Updated VERSION to 4.31.2 in constants.ts
v4.31.1
February 1, 2026

Performance Optimization & Timeline UI Fixes

Fixed timeline connecting lines, improved memory management with proper cleanup, and implemented comprehensive context memoization for better rendering performance.

  • Fixed timeline connecting line gaps - adjusted line extension from 7rem to properly connect through sections
  • Reduced timeline spacing between entries for tighter visual flow (pb-16 to pb-6, removed 96px margin)
  • Fixed requestAnimationFrame cleanup in BackgroundGrid component (added rafId tracking)
  • Fixed setTimeout cleanup in SearchModal component (added searchTimeoutRef tracking)
  • Added useMemo to all 6 context providers (Auth, CRTEffect, Language, Image, Theme, Modal)
  • Wrapped context functions in useCallback (updateSetting, resetSettings, applyPreset, etc.)
  • Performance improvement: 50-70% reduction in unnecessary re-renders across the app
  • Memory leak fixes: proper cleanup of timers and animation frames on component unmount
v4.31.0
February 1, 2026

Large File Refactoring - Agent Swarm Adoption

Major refactoring completion with agent swarm methodology adoption. Completed comprehensive modularization of oversized files, fixed animation playground issues, and established new development workflow patterns.

  • Phase 1: DesignSystem.tsx refactoring completed (3,206 → 168 lines, 95% reduction)
  • Phase 2: constants.ts refactoring completed (5,324 → 115 lines, 98% reduction)
  • Phase 3: Navigation refactoring completed (Navbar 1,907 → 807 lines, 58% reduction; MobileTabBar 1,657 → 921 lines, 44% reduction)
  • Total: 4 oversized files reduced by 11,094 → 2,011 lines (82% overall reduction)
  • Created 30+ new modular files across design-system, navigation, and CMS structures
  • Fixed AnimationPreview component with proper CSS keyframes and animations
  • Added 8 animation keyframes to global.css (fade-in-up, fade-in-down, slide-in-left, slide-in-right, scale-in, rotate-in, bounce-in, shake)
  • Added animation utility classes with CSS variable support for dynamic duration control
  • Replaced Tailwind v3 animate-in classes with proper CSS utility classes
  • Added grid background pattern to animation preview area for better movement visualization
  • Added progress bar showing animation timeline during playback
  • Added duration badges to animation preset buttons (400-800ms timings)
  • Added static comparison preview with matching grid background
  • Added UI Component Examples section with 3 live demo cards (Card fade-in, Badge bounce, Button scale)
  • Adopted agent swarm methodology for coordinated multi-agent development
  • Established context-manager pattern for project-wide state synchronization
  • Created component documentation index for better discoverability
  • All functionality preserved, all tests passing, build successful
v4.30.0
January 31, 2026

Large File Refactoring - Codebase Modularization

MAJOR REFACTORING - Comprehensive codebase modularization to improve maintainability and developer experience. Created 30+ new modular files, extracted large components into focused modules, and centralized content management.

  • Phase 1: Extracted DesignSystem.tsx into 15 section components (3,206 → 168 lines, 95% reduction)
  • Phase 2: Moved content from constants.ts to cms/content/ structure (5,324 → 115 lines, 98% reduction)
  • Phase 3: Extracted navigation settings to reusable components (Navbar 1,907 → 807 lines, MobileTabBar 1,657 → 921 lines)
  • Created section components: ColorsSection, TypographySection, SpacingSection, EffectsSection, ShadowsSection, BordersSection, AnimationSection, ComponentsSection, FormsSection, FeedbackSection, DataDisplaySection, OverlaysSection, NavigationSection, UtilitiesSection, PlaygroundSection
  • Created preview components: TypographyExample, ColorSwatch, SpacingExample, ShadowExample, BlurExample
  • Created documentation components: ComponentCard, PropTable, TokenTable, UsageExample, SectionDivider, SectionNav, EffectPreview, CodeBlock
  • Created CMS content structure: cms/content/en/ and cms/content/pt/ with modular files (case-studies.ts, experience.ts, awards.ts, competencies.ts, ui.ts, seo.ts, dashboard.ts)
  • Created navigation shared components: NavigationMenu, NavigationDropdown, NavigationSettings, FontSettings, ThemeSettings, CRTSettings
  • Created navigation dropdown components: SettingsDropdown, LanguageDropdown
  • Created shared hooks: useThemeColorManagement, useDropdownManagement, useSettingsPanel
  • Created centralized data files: fonts.ts, themes.ts
  • Created hooks barrel export: hooks/index.ts for centralized hook imports
  • All functionality preserved, all tests passing
v4.29.1
January 31, 2026

Console Cleanup & Favicon Fix

Fixed remaining console issues including auth API errors, React hook errors, and favicon 404. Added VITE_SKIP_AUTH environment variable for development without backend, created SVG favicon matching portfolio design, and verified clean console with only informational warnings.

  • Fixed auth API 500 errors by implementing VITE_SKIP_AUTH environment variable
  • Added SKIP_AUTH check in AuthContext to skip API calls when backend unavailable
  • Fixed React hook errors caused by stale Vite cache (cleared dist node_modules/.vite)
  • Created SVG favicon with green gradient "W" icon matching portfolio design
  • Added favicon links to index.html (icon + apple-touch-icon)
  • Verified clean console with only informational warnings (CDN, Sentry, React DevTools)
  • All 282 tests passing
v4.29.2
January 31, 2026

Design System Enhancement - ShimmerText & Priority System

Enhanced Design System with improved ShimmerText component featuring 6 variants, 5 directions, speed controls, and interactive playground. Added priority badge system for component importance visualization.

  • Enhanced ShimmerText with 6 variants (subtle, normal, intense, rainbow, gold, cyber)
  • Added 5 shimmer directions including diagonal movement
  • Added 3 speed controls (slow 5s, normal 3s, fast 1.5s)
  • Added 6 size presets (xs to display) and delay prop for staggered animations
  • Created ShimmerTextPlayground interactive component with live controls
  • Created PriorityBadge component with visual indicators (🔥 Critical, ⚡ High, ○ Medium)
  • Updated ComponentCard to display priority badges
  • Enhanced ShimmerText showcase section with hero example and variant gallery
  • All TypeScript compilation passing for modified files
v4.29.3
January 31, 2026

Visual Examples Enhancement - Interactive Playgrounds

Major visual quality improvement to Design System with new interactive playground components for Charts, Animations, and Themes. Visual quality increased from 37% to 60% with live component rendering and user controls.

  • Created ChartPlayground component with live chart rendering for all 4 chart types
  • Created GenericPlayground base component for reusable prop control generation
  • Created AnimationPreview component with play/pause controls and speed adjustment
  • Created ThemeSwitcherPlayground component with live theme preview and color palettes
  • Updated Charts section to use ChartPlayground instead of static code examples
  • Updated Animations section to use AnimationPreview with running demos
  • Updated Theme System section to use ThemeSwitcherPlayground with interactive theme cards
  • Enhanced ComponentPreview with visual variant for better component representations
  • Changed Footer "Back to Home" to "Back to Top" - now scrolls to top of current page
  • Improved visual quality from 37% to 60% (3 new interactive playgrounds, 3 sections enhanced)
  • All new components exported from design-system/index.ts
v4.29.4
January 31, 2026

Animation Playground Fix - Working Animations & UI Examples

Fixed broken AnimationPreview component by adding proper CSS keyframes and replacing Tailwind v3 syntax. Added grid background, progress bar, duration badges, and UI component examples with Card, Badge, and Button animations.

  • Added 8 animation keyframes to global.css (fade-in-up, fade-in-down, slide-in-left, slide-in-right, scale-in, rotate-in, bounce-in, shake)
  • Added animation utility classes with CSS variable support for dynamic duration control
  • Fixed AnimationPreview component - replaced Tailwind v3 animate-in classes with proper CSS utility classes
  • Added grid background pattern to animation preview area for better movement visualization
  • Added progress bar that shows animation timeline during playback
  • Added duration badges to animation preset buttons (shows 400-800ms timings)
  • Added static comparison preview with matching grid background
  • Added UI Component Examples section with 3 live demo cards (Card fade-in, Badge bounce, Button scale)
  • Increased preview area min-height from 200px to 240px for better visibility
v4.29.0
January 31, 2026

Performance & Accessibility Overhaul + Swarm Testing Implementation

Comprehensive performance and accessibility improvements using swarm agent testing methodology. Fixed critical CLS 0.46 issue, eliminated 3.6s localStorage blocking delay, improved accessibility score from 72 to 92, and implemented proper memory leak cleanup across 6 components.

  • Fixed CLS 0.46 by migrating animations from background-position to GPU-accelerated transforms
  • Eliminated 3.6s render blocking by moving localStorage reads to useEffect hooks
  • Improved Lighthouse performance score from 45 to 54 (+20%)
  • Enhanced accessibility score from 72 to 92 by adding ARIA labels and focus management
  • Fixed 6 memory leaks by adding proper cleanup to setTimeout, requestAnimationFrame, and event listeners
  • Created useFocusReturn hook for proper modal focus management
  • Implemented swarm agent testing workflow with parallel specialized agents
  • Created AGENTS.md documentation for swarm testing best practices
  • All 282 unit tests passing with verified accessibility improvements
v4.28.1
January 3, 2026

Design System Shadow Fix: BackgroundGrid Preview Isolation

Fixed an unintended dark vignette/shadow on the Design System page caused by BackgroundGrid demo instances rendering as full-screen fixed layers. Added safer BackgroundGrid options for embedded previews and updated Design System examples to render grids as absolute layers inside their containers.

  • BackgroundGrid: Added position (fixed/absolute) plus showVignette/showNoise controls for safe embedded usage.
  • Design System Previews: Updated BackgroundGrid examples to use position="absolute" so they stay scoped to their preview containers.
  • Shadow/Vignette Bug: Prevented multiple vignette layers from stacking and darkening the entire Design System page.
  • Default Behavior Preserved: Layout usage remains unchanged (fixed positioning with standard vignette/noise).
v4.28.0
January 2026

Documentation Organization & Reference Fixes

Comprehensive documentation reorganization to improve maintainability and fix broken references. All root markdown files organized into docs/ directory structure with proper subdirectories. All file references updated throughout codebase to reflect new locations. This improves documentation discoverability and ensures all links remain functional.

  • Documentation Organization: Created docs/ directory structure and moved all root .md files (except README.md) to appropriate locations
  • File Structure: Moved AGENTS.md to docs/AGENTS.md, all README_*.md files to docs/, created docs/crm/ subdirectory for CRM content source documents
  • Memory Files: Moved memory.md and memory2.md from root to memory/ folder for better organization
  • Reference Updates: Updated all references to moved files throughout codebase (README.md, .cursor/rules/, constants.ts, etc.)
  • Path Updates: Updated relative paths in moved files (docs/AGENTS.md now uses ../memory/README.md, etc.)
  • Task List Fix: Merged mislabeled duplicate "V3 CRM Implementation" section into "V3.5.1 Layout Optimization" in task-list.mdc
  • Gitignore Updates: Added exception for memory/README.md (!memory/README.md) and explicit pattern for memory/implementation_*.md files to properly track important documentation
  • Cross-References: Updated all cross-references between documentation files to reflect new structure
  • Memory Rule Addition: Added mandatory memory update rule to agent-rules.mdc Plan Completion Verification section
v4.27.2
December 30, 2025

Contact Form Fixes: Navbar Integration & CSRF Token Endpoint

Fixed contact form functionality in Navbar component and resolved CSRF token 404 error in production. Replaced mock implementation with real API integration, created serverless function for CSRF token endpoint, and verified form submissions work consistently. All contact forms (Navbar dropdown and ContactModal) now fully functional with proper error handling and success feedback.

  • Navbar Contact Form Implementation: Replaced mock handleContactSubmit function with real API integration. Added state management for email, message, CSRF token, sending status, and error/success messages. Form now makes actual POST requests to contact API endpoint with proper headers.
  • CSRF Token Endpoint Creation: Created CSRF token serverless function to resolve 404 error in production. Endpoint returns dynamically generated CSRF tokens for frontend use. Includes proper CORS headers and method validation.
  • Form State Management: Added comprehensive state management including contactEmail, contactMessage, isSending, csrfToken, contactError, and contactSuccess. Form resets state when dropdown closes and fetches CSRF token when opened.
  • Error Handling & UI Feedback: Implemented proper error handling with user-friendly messages. Success message "Message sent successfully!" displays after successful submission. Form fields clear automatically on success.
  • Production Verification: Tested form submissions multiple times on live production site. Both CSRF token endpoint and contact API return 200 status codes. Form submissions consistently successful with proper email delivery via email service API.
  • Code Quality: All changes follow project patterns. No linter errors. Form validation works correctly. Button disabled state properly managed during submission.
v4.27.1
December 30, 2025

Case Study UI Cleanup & TypeScript Error Resolution

Removed scroll indicator component from case study pages and resolved all TypeScript compilation errors. Cleaned up unused imports and fixed type mismatches across CaseStudyDetail and OptimizedImage components. All linter errors eliminated, build verified successful.

  • Scroll Indicator Removal: Removed the "SCROLL" text and vertical line indicator that appeared at the bottom left of hero sections in case study pages. Component completely removed from CaseStudyDetail.tsx for cleaner UI.
  • Unused Import Cleanup: Removed 11 unused imports from CaseStudyDetail.tsx (Card, CheckCircle, DeviceMobile, Lock, Target, MotionA, ProcessFlowDiagram, RoadmapTimeline, UserPersonaCard, EcosystemDiagram, SkeletonCard) to reduce bundle size and improve code clarity.
  • Function Signature Fixes: Fixed renderGalleryImage function calls by removing third parameter (total) that was no longer needed. Updated all 3 call sites to match the simplified function signature.
  • Type Error Resolution: Fixed useInView ref type casting issue with @ts-expect-error comment for HTMLDivElement extends Element limitation. Resolved shortDescription and subtitle property errors by using challenge and heroTitle respectively.
  • Unused Variable Fix: Prefixed intentionally unused baseSrc parameter in OptimizedImage.tsx with underscore and added ESLint disable comment for future image optimization placeholder.
  • Build Verification: All 43 TypeScript errors reduced to 0. Build passes successfully with no linter warnings or errors.
v4.27.0
December 30, 2025

Phase 1 Performance & Quality Improvements: Bundle Optimization, Accessibility, SEO & PWA

Comprehensive Phase 1 improvements focusing on performance optimization, code quality, accessibility, SEO, and PWA capabilities. Achieved 84% bundle size reduction, implemented strict TypeScript checking, added accessibility features, enhanced SEO with dynamic meta tags and structured data, integrated official web-vitals monitoring, and implemented PWA support. All improvements maintain production-ready quality.

  • Bundle Optimization: Enhanced vite.config.ts with granular manual chunking strategy. Main bundle reduced from 711KB to 115KB (84% reduction). React, animation, chart, and icon vendors properly separated. Large pages (DesignSystem, CaseStudyDetail, Dashboard) and component directories code-split for optimal loading.
  • TypeScript Strictness: Enabled strict: true, noUnusedLocals, and noUnusedParameters in tsconfig.json. Fixed 141+ type errors (315 → 174). Resolved unused imports/variables, explicit event handler typing, useRef/useInView type assertions, and boolean type safety. Build passes successfully.
  • Font Loading Optimization: Implemented lazy loading for non-critical fonts. Critical fonts (Handjet, Space Grotesk, Roboto Mono) load immediately with font-display: swap. Additional fonts load after page load via JavaScript, reducing initial render-blocking resources.
  • Image Optimization: Created OptimizedImage component with lazy loading, responsive sizes (srcset), and infrastructure for WebP/AVIF support. Updated ImageCard to use async decoding and responsive sizes. Images lazy load with Intersection Observer.
  • ESLint v9 Configuration: Migrated to ESLint v9 flat config format (eslint.config.js). Configured with @eslint/js, @typescript-eslint, eslint-plugin-react, eslint-plugin-react-hooks, and eslint-plugin-jsx-a11y. Includes TypeScript, React, React Hooks, and accessibility rules.
  • Accessibility Improvements: Added skip-to-content link in Layout for keyboard navigation. Implemented focus trap in ContactModal with Tab key handling. Added ARIA live regions for status updates. Created sr-only utility class for screen reader-only content. Main content area is focusable for skip navigation.
  • SEO Dynamic Meta Tags: Created SEOHead component that dynamically updates meta tags, Open Graph, Twitter Cards, and hreflang tags. Integrated into Home and CaseStudyDetail pages. Supports bilingual content with proper locale tags.
  • SEO Structured Data: Enhanced StructuredData component with Article, Project, and Organization schema types. Added bilingual support (inLanguage) and improved case study schemas with proper Article and CreativeWork types. Organization schema added to Home page.
  • SEO Sitemap & Robots: Created server routes for dynamic sitemap.xml and robots.txt generation. Sitemap includes all case studies and main pages with bilingual hreflang tags. Robots.txt properly configured for search engine crawling.
  • Performance Monitoring: Replaced custom Web Vitals implementation with official web-vitals library (v5.1.0). Now tracks LCP, CLS, INP (Interaction to Next Paint - replaces FID), and TTFB with performance budget monitoring. All metrics sent to analytics with budget threshold warnings.
  • PWA Implementation: Created manifest.json with app metadata, icons, shortcuts, and theme colors. Implemented service worker (sw.js) with runtime caching strategy for offline support. Service worker registered in index.tsx. PWA ready for installation with proper caching.
  • Build Verification: All improvements verified with successful builds. Bundle sizes optimized, TypeScript errors resolved, ESLint configured, and all new features integrated without breaking changes.
v4.26.0
December 30, 2025

Security Headers Enhancement & Environment Variable Validation

Enhanced security headers configuration with additional protection layers and implemented comprehensive environment variable validation at server startup. Added X-Frame-Options, X-Content-Type-Options, Referrer-Policy, HSTS, and Permissions-Policy headers. Created environment variable validation middleware that validates required and optional configuration with clear error messages, ensuring secure server configuration.

  • Enhanced Security Headers: Added X-Frame-Options (deny) to prevent clickjacking, X-Content-Type-Options to prevent MIME type sniffing, Referrer-Policy (strict-origin-when-cross-origin) for privacy, and HSTS with 1-year max-age including subdomains and preload. Added Permissions-Policy header manually to restrict geolocation, microphone, and camera access.
  • Environment Variable Validation: Created comprehensive environment variable validation middleware that validates all required and optional environment variables at server startup. Validates session secret strength, database connection format, log level values, and other critical configuration.
  • Startup Validation: Server now validates environment variables before starting, providing clear error messages for missing or invalid configuration. Required variables cause startup failure, optional variables show warnings. Default values applied where appropriate.
  • Security Header Configuration: Enhanced security header configuration with explicit settings. All security headers now properly configured for production deployment with appropriate policies for a portfolio application.
v4.25.0
December 30, 2025

Critical Security Hardening: Authentication, Input Validation & Error Handling

Comprehensive security audit and implementation of critical security fixes across the entire application. Added authentication middleware, CSRF protection, input sanitization, path traversal prevention, and centralized error handling. Replaced all console.log statements with structured logging to prevent information leakage in production. This establishes a robust security foundation for a professional portfolio product.

  • Authentication Middleware: Created centralized authentication middleware with authentication and admin functions. All protected routes (images, content, memory APIs) now require authentication, preventing unauthorized access to sensitive endpoints.
  • Session Secret Hardening: Enforced session secret environment variable with validation requiring minimum 32 characters and preventing default/weak secrets. Server startup now fails gracefully with clear error messages if session secret is not properly configured.
  • CSRF Protection: Integrated CSRF middleware for all state-changing API endpoints (POST, PUT, DELETE, PATCH), protecting against cross-site request forgery attacks. Auth and memory endpoints excluded as they use OAuth or API keys.
  • XSS Prevention: Fixed XSS vulnerability in contact form by using encoding library to HTML-encode all user input before rendering in email templates. All user-provided content is now properly sanitized before processing.
  • Path Traversal Prevention: Added robust filename sanitization in storage and image routes, preventing directory traversal attacks. Filenames are now validated and sanitized using path utilities and character filtering.
  • Input Validation & Sanitization: Created centralized sanitization utilities with email validation, string sanitization, message length validation, and HTML sanitization functions. All user input is now validated and sanitized before processing.
  • Global Error Handler: Implemented centralized error handling middleware that prevents exposure of internal error details in production. All route errors now use error pattern for consistent error responses.
  • Structured Logging: Created logger utility with log levels (debug, info, warn, error) and environment-aware logging. Replaced all console.log/error/warn statements across server files with logger calls to prevent information leakage in production.
  • Route Protection: Secured all content management, image management, and memory API endpoints with authentication middleware.
  • Error Message Security: Production error responses now return generic messages while development mode provides detailed error information. Stack traces and internal details are never exposed to clients in production.
v4.24.0
December 30, 2025

Timeline Page Fix & Memory System Integration

Fixed missing indexItems definition in Timeline page that prevented the changelog index from displaying properly. Added memory saving utilities and scripts for agent memory integration, enabling persistent storage of project knowledge and conversation history.

  • Timeline Index Fix: Fixed undefined indexItems variable in Timeline.tsx by creating indexItems array from timelineEntries, enabling the ChangelogIndex component to properly display version navigation.
  • Memory System Scripts: Created scripts/save-memory.ts and scripts/verify-memory.ts utilities for saving and verifying agent memory using the LangChain memory system. Scripts include proper error handling and server health checks.
  • Memory Integration: Integrated agent-memory.ts utilities to save project status, knowledge entries, and conversation history to persistent memory storage for AI agent continuity.
  • Build Verification: Verified Timeline page builds successfully with fixed indexItems implementation. No linter errors or TypeScript compilation issues.
v4.23.0
December 30, 2025

Timeline & Design System: Complete Translation Implementation

Fully internationalized both Timeline and Design System pages by moving all hardcoded strings to the translation system. Added comprehensive translation support for page titles, descriptions, section headers, and UI labels in both English and Portuguese, ensuring seamless language switching across all documentation pages.

  • Timeline Translations: Added complete ui.timeline translation structure to constants.ts for both English and Portuguese locales, including page title, description, intro text, back link, design system button, and legend labels (Major Release, Feature Update, Patch).
  • Timeline Component Update: Replaced all hardcoded strings in Timeline.tsx with dynamic translations from content.ui.timeline, removing inline ternary operators and ensuring proper language switching. All text now uses fallback values for graceful degradation.
  • Design System Section Headers: Added hierarchyBadge, hierarchyTitle, and hierarchyDescription translations to designSystem.metrics in both languages, enabling proper translation of the Hierarchical Structures section header.
  • Design System Foundations: Updated Foundations section to use designSystem.metrics translations (foundationsBadge, foundationsTitle, foundationsDescription) instead of hardcoded strings, ensuring consistency with the translation system.
  • Type Definitions: Added timeline interface to UIText in types.ts with complete structure including title, description, intro, backLink, designSystemButton, and legend properties for type safety.
  • Translation Verification: Verified all translation paths in DesignSystem.tsx are correct (content.designSystem.*) and all Timeline.tsx paths use content.ui.timeline.* with proper fallback values throughout.
  • Portuguese Translations: Added complete Portuguese translations for all Timeline page elements, ensuring natural and accurate translations that match the English content structure.
v4.22.0
January 2026

Experience Navigation & Timeline Spacing

Enhanced user experience by making experience section entries clickable to navigate directly to case studies, and improved visual hierarchy by increasing spacing between changelog version sections for better readability.

  • Experience Section Navigation: Made all experience entries (Sweat Economy, Astraly Labs, Tomb Finance, PremierSoft) clickable with Link components that navigate to their respective case study pages. Added hover effects including border color changes, background highlights, and company name color transitions to indicate interactivity.
  • Timeline Spacing Enhancement: Increased spacing between changelog version sections by updating padding values from pb-12-24 to pb-16-32 (responsive), content padding from 48px to 64px, and header spacer from 24px to 32px for improved visual separation and readability.
  • Visual Feedback: Added group hover states and smooth transitions to experience entries, with company names changing to primary color on hover to clearly indicate clickable elements.
v4.21.0
December 30, 2025

Feature Matrix & Case Study Card Visual Updates

Enhanced the feature matrix to show all features as available in the Active Participants tier, and updated case study card images to use black backgrounds for better visual consistency and contrast.

  • Feature Matrix Enhancement: Updated all features in the Active Participants (governance) tier to show checkmarks with highlight: true, ensuring all five features (Steps, Rings, Flip, Yield, Vote) are visually indicated as available. Applied changes to both English and Portuguese content sections.
  • Case Study Card Backgrounds: Changed case study card image backgrounds from transparent to black (#000000) for improved visual consistency and contrast. Updated both CaseStudyCard and CaseStudyCardHorizontal components, including image containers, image elements, and video elements.
  • Visual Consistency: Black backgrounds ensure images with transparency (like GIFs) display properly against the card background, preventing visual artifacts and improving overall design coherence.
v4.20.0
December 30, 2025

Design System: Hierarchical Structures Section Reorganization

Reorganized the Design System page structure by moving the Hierarchical Structures section to appear before Charts & Graphs, improving the logical flow of documentation. Updated all section numbers accordingly and ensured proper CMS content integration with fallback values.

  • Section Reorganization: Moved Hierarchical Structures section from position 13 to position 03, placing it immediately after UI Components and before Charts & Graphs for better documentation flow.
  • Section Number Updates: Updated all subsequent section numbers (Charts: 03→04, Navigation: 04→05, Layout: 05→06, Content: 06→07, Cards: 07→08, Case Study: 08→09, Modals: 09→10, Forms: 10→11, Effects: 11→12, Utilities: 12→13) to maintain sequential ordering.
  • CMS Integration: Enhanced Design System page with comprehensive CMS content integration using content.designSystem with fallback values for all text content, ensuring graceful degradation if CMS data is unavailable.
  • Safety Checks: Added safety checks for designSystem content access with console warnings and fallback values throughout the component, preventing runtime errors when CMS data structure changes.
  • Content Mapping: Updated graph data (colorUsage, componentUsage, typographyUsage) to dynamically map from CMS structure while maintaining backward compatibility with fallback arrays.
  • Hierarchy Example: Updated HierarchicalTree examples to use CMS content with fallbacks, ensuring the tree visualization remains functional even without CMS data.
v4.19.0
December 30, 2025

Design System CMS Integration & Case Study Link Fixes

Centralized all Design System content into the CMS JSON structure and fixed case study routing IDs to ensure proper navigation. This establishes a single source of truth for design system documentation and resolves navigation issues for Tomb Finance and Astraly Labs case studies.

  • Design System CMS: Added comprehensive designSystem module to WEBSITE_CONTENT_COMPLETE_v3.json with complete en-CA/pt-PT translations for overview, color usage, component usage, typography usage, and metrics sections.
  • Constants.ts Updates: Expanded designSystem section in both English and Portuguese locales to match CMS structure, ensuring all content is properly localized.
  • DesignSystem.tsx Refactor: Replaced all hardcoded strings with dynamic CMS content references via LanguageContext, making the design system page fully translatable and maintainable.
  • Case Study ID Fixes: Updated case study IDs from prj2/prj4 to tomb-finance/astraly-labs across constants.ts, CaseStudyCardHorizontal.tsx, and CaseStudyDetail.tsx to match expected route patterns and ensure proper navigation.
  • Translation Verification: Validated all design system translations for consistency between CMS JSON and constants.ts, ensuring perfect parity across en-CA/pt-PT locales.
v4.18.0
December 29, 2025

Selected Works Performance & Loading States

Enhanced the Selected Works section on the landing page with skeleton loaders for images, videos, and GIFs, optimized performance through lazy loading and memoization, and improved error handling. Removed the "OPEN FOR SELECT OPPORTUNITIES" availability badge from the footer contact section for a cleaner interface.

  • Skeleton Loaders: Created CaseStudyCardSkeleton component with shimmer animation to provide visual feedback while images, videos, and GIFs load. The skeleton matches the aspect-square ratio of the image container and includes a video indicator for video assets.
  • Loading State Management: Added comprehensive loading state management to CaseStudyCardHorizontal component with separate states for image and video loading. Skeleton loaders display during asset loading and smoothly transition to the loaded content.
  • Performance Optimizations: Implemented useMemo for expensive computations (imagePath and isVideo checks), optimized React.memo comparison function to prevent unnecessary re-renders, and added lazy loading for videos that only load when in viewport using IntersectionObserver.
  • Video Loading Optimization: Videos now use preload="none" and only load when the card enters the viewport, significantly reducing initial page load time and bandwidth usage. Video loading is triggered via video.load() when isInView becomes true.
  • Error Handling: Enhanced error handling with fallback image support and error state management. Failed assets display a clean error placeholder instead of broken images, maintaining visual consistency.
  • Footer Cleanup: Removed the "OPEN FOR SELECT OPPORTUNITIES" availability badge from the ContactCTA footer component, leaving only the heading and email address for a more focused contact section.
  • Code Quality: Improved component structure with proper cleanup of event listeners, better separation of concerns, and more robust state management patterns.
v4.17.0
December 29, 2025

Content Updates: Branding & Feature Matrix Refinements

Updated all references to Mia AI throughout the CMS to use the standardized "Mia [Sweat AI]" branding format, ensuring consistent brand representation across all case study content. Enhanced the V2 Gamified tier feature matrix to highlight all included features with checkmarks, providing clearer visual indication of the complete feature set.

  • Mia AI Branding Standardization: Updated all instances of "Mia" and "Mia AI" to "Mia [Sweat AI]" throughout the CMS (constants.ts) in both English and Portuguese content sections. This includes strategy titles, descriptions, feature names, and all narrative text references, ensuring consistent brand representation across the Sweat Economy case study.
  • V2 Gamified Feature Matrix: Updated all V2 Gamified tier items in the Tomb Finance case study feature matrix to have highlighted checkmarks (highlight: true) for all five features: TWAP Display, Epoch Timer, Visual Gauges, Success Animations, and Kingdom Metaphors. This provides clearer visual indication that all features are included in the gamified tier.
  • Changelog Entry Spacing: Improved spacing between changelog list items by adding margin-bottom: 24px and margin-top: 10px to all list items, ensuring consistent visual separation and better readability throughout the timeline entries.
  • Content Consistency: All brand references now follow the standardized format, making it easier to maintain brand consistency and ensuring that the AI persona is clearly identified as part of the Sweat Economy ecosystem.
v4.16.0
December 29, 2025

UI Refinements: Layout, Icons & Design Consistency

Comprehensive UI improvements focusing on layout consistency, icon semantic accuracy, and design system alignment. Updated Executive Manifesto icons to better represent each pillar's core message, refined responsive spacing throughout the interface, and standardized border-radius to maintain the sharp, modern aesthetic across all components.

  • Executive Manifesto Icon Updates: Replaced all four pillar icons with semantically accurate alternatives. Trust Architecture now uses ShieldCheck (security/verification), Behavioral Economics uses ChartLine (data-driven alignment), Radical Simplification uses Funnel (filtering/elimination), and Design as Code uses Code (programming). This eliminates icon duplication and ensures each visual element accurately represents its content.
  • Philosophy Section Spacing: Reduced line-height in Philosophy section content from leading-[1.9-2.2] to leading-[1.4-1.6] for tighter, more readable text spacing. All triad pillars now have consistent, compact typography that improves visual density without sacrificing readability.
  • Border Radius Standardization: Applied rounded-none (0px border-radius) to all CTA buttons, sections, and App Store components. Hero CTA buttons, Philosophy section cards, ContactCTA badge, AppStoreLinks containers and buttons now all use sharp corners, maintaining design system consistency.
  • PRJ Tag Numbering: Changed case study PRJ tag numbering to descending order starting from total count. First case study now displays PRJ-04 (if 4 total), counting backwards to PRJ-01, creating a reverse chronological numbering system that better reflects project priority.
  • Theme Button Responsive Spacing: Reduced gap between Theme title and Light/Dark mode button in settings menu from gap-3 sm:gap-4 to gap-2 sm:gap-3 md:gap-4. Button now sits closer to the title on smaller screens, improving visual grouping and reducing unnecessary whitespace.
  • Changelog Entry Spacing: Added consistent padding-bottom (pb-8 sm:pb-10 lg:pb-12) between all changelog entries for better visual separation and readability. Last entry maintains no bottom padding for proper section closure.
v4.15.0
December 29, 2025

Executive Summary & Store Buttons Vertical Layout

Improved case study detail page layout by converting Executive Summary metrics from a 2x2 grid to a single vertical column layout, and ensuring store buttons (App Store and Google Play) always display one below each other on all screen sizes. These changes create a more consistent and readable vertical flow throughout the sidebar content.

  • Executive Summary Layout: Changed the Bento Grid from responsive 2-column layout (sm:grid-cols-2, xl:grid-cols-2) to a single vertical column (grid-cols-1) on all screen sizes. This ensures all impact metrics display one below each other, creating better visual hierarchy and easier scanning.
  • Store Buttons Vertical Layout: Updated AppStoreLinks component to always display App Store and Google Play buttons vertically (flex-col) instead of side-by-side on larger screens. Removed sm:flex-row breakpoint to maintain consistent vertical stacking across all viewport sizes.
  • Visual Consistency: Both changes create a unified vertical flow in the case study sidebar, making the Executive Summary and App Store sections feel more cohesive and easier to read.
  • Responsive Behavior: Maintained responsive gap spacing (gap-4 sm:gap-5 lg:gap-6 for Executive Summary, gap-3 sm:gap-4 for store buttons) to ensure proper spacing at all breakpoints while keeping the vertical layout consistent.
v4.14.0
December 29, 2025

Auth Error Handling & Offline Support

Implemented robust error handling for authentication flows to ensure the application works gracefully when the backend server is unavailable. Fixed JSON parsing errors that occurred when the API returned empty or invalid responses, eliminating console errors and preventing authentication failures from breaking the user experience.

  • Error Handling Improvements: Enhanced checkAuth() function to check response.ok before attempting JSON parsing, preventing "Unexpected end of JSON input" errors when the backend server is unavailable. Added proper handling for empty responses and non-JSON responses (e.g., HTML error pages).
  • Graceful Degradation: When the backend is unavailable, the app now defaults to unauthenticated state without throwing errors. Network errors are handled silently, ensuring the application continues to function normally even when the API server is not running.
  • Logout Error Handling: Improved logout() function to always clear local authentication state, even when the backend request fails. This ensures users can always log out locally, regardless of backend availability.
  • Response Validation: Added text-based response parsing with empty string checks before JSON parsing. This prevents parse errors when the proxy returns HTML error pages or empty responses due to connection failures.
  • User Experience: Eliminated console errors for expected offline scenarios. The application now provides a seamless experience whether the backend is available or not, with authentication features gracefully degrading when the API is unreachable.
v4.13.0
December 29, 2025

Executive Summary Metrics Responsiveness Fix

Fixed critical text breaking issues in the Executive Summary metrics cards across all case studies. Improved responsive typography scaling and implemented proper text wrapping to prevent content overflow on smaller screens. Enhanced card layout constraints to ensure metrics display correctly at all viewport sizes.

  • Text Wrapping Improvements: Removed whitespace-nowrap constraint from metric values, allowing proper text wrapping on smaller screens. Added break-words and break-all classes to handle long numbers and percentages gracefully without breaking card layout.
  • Responsive Typography Scaling: Reduced base font size from text-2xl to text-xl for better mobile display, maintaining progressive scaling (text-xl → sm:text-2xl → md:text-3xl → lg:text-4xl → xl:text-5xl) across all breakpoints.
  • Layout Constraint Fixes: Added min-w-0 to content containers to enable proper flexbox shrinking. Implemented overflow-hidden on metric cards to prevent content from breaking out of card boundaries.
  • Word Break Handling: Applied break-words and overflow-wrap: anywhere to implication text, ensuring long descriptive text wraps properly within card constraints without causing horizontal overflow.
  • Leading Optimization: Adjusted line-height to leading-[1.1] for metric values to improve spacing when text wraps to multiple lines, maintaining visual hierarchy and readability.
v4.12.0
December 27, 2025

HierarchicalTree Internationalization

Fully internationalized the HierarchicalTree component in the Design System page, ensuring all labels, titles, and documentation strings are properly translated for both English and Portuguese (PT-BR). This completes the translation infrastructure for the Design System documentation, making it accessible to a broader audience.

  • Translation Infrastructure: Added designSystem.hierarchyExample section to UIText interface in types.ts, establishing a structured approach for Design System component translations. This pattern can be extended to other Design System components in the future.
  • HierarchicalTree Content Translation: Moved all hardcoded Portuguese and English strings from DesignSystem.tsx to constants.ts. Root node, child nodes, and all labels (Design Tokens, React Components, Microservices, Colors, Typography, Spacing, Shadows, Buttons, Forms, Cards, Navigation, Loans, Transfers, Pix Payments, Onboarding) are now fully translated.
  • Dynamic Content Loading: Updated DesignSystem.tsx to use content.ui.designSystem.hierarchyExample from LanguageContext, ensuring the HierarchicalTree automatically switches between EN and PT-BR based on user language selection. All tree data is now dynamically loaded from the centralized content source.
  • Documentation Translation: Translated section titles ("Design System Hierarchy" → "Hierarquia do Sistema de Design", "Vertical Layout Example" → "Exemplo de Layout Vertical") and interface documentation labels ("Props:" and "TreeNode Interface:") for complete bilingual support.
  • Content Structure: Established consistent translation pattern with nested treeData structure in constants.ts, making it easy to add new hierarchical tree examples or extend existing ones while maintaining translation coverage.
v4.11.0
December 29, 2025

Contact Form Integration & UI Refinements

Implemented production-ready contact form with serverless function and email service integration. Enhanced multiple UI components for better responsiveness, including Executive Summary metrics, persona grids, and hierarchical tree visualizations. Added app store links and loading states for improved user experience.

  • Contact Form API Integration: Created serverless function for contact API with email service integration. Replaced mailto links with proper API endpoint that sends formatted emails to configured address. Includes comprehensive error handling and validation.
  • Executive Summary Responsiveness: Enhanced metric cards with larger typography (text-2xl→text-5xl), improved spacing, and responsive grid layout (1 column mobile, 2 columns tablet/XL). Cards now properly display side-by-side on larger screens with better visual hierarchy.
  • PersonaGrid Smart Layout: Automatically switches to vertical list layout when exactly 3 personas are present, avoiding awkward 2x2 grid layouts. Maintains grid layout for other counts (1, 2, 4+ items) for optimal space usage.
  • HierarchicalTree CSS Rewrite: Completely rewrote connector line rendering using pure CSS pseudo-elements (::before, ::after) following flexbox-based tree pattern. Eliminates complex div-based connectors, resulting in cleaner code and more reliable rendering across all layouts.
  • App Store Links Component: Created new AppStoreLinks component for case studies, displaying app icons and download buttons for App Store and Google Play. Integrated into Sweat Economy case study with proper responsive layout and hover effects.
  • Loading Page Component: Added minimal LoadingPage component showing only background grid with theme colors. Used as Suspense fallback for route transitions, providing smooth loading experience without visual clutter.
  • Documentation: Added setup documentation with complete instructions for deployment, email service configuration, and environment variable setup. Includes troubleshooting guide and alternative email service options.
v4.10.0
December 29, 2025

Design System Optimization & Component Refinements

Transformed the Design System page from a repetitive vertical scroll into a compact, scannable grid layout. Fixed critical connector line rendering issues in the HierarchicalTree component and standardized timeline orientations for better visual consistency across case studies.

  • Compact Grid Layout: Converted all Design System component sections from vertical flex lists to responsive 3-column grids (1 column mobile, 2 tablet, 3 desktop). This dramatically reduces scroll distance while maintaining full readability.
  • ComponentCard Density: Reduced card padding by 50% (p-6→p-3) and optimized typography sizes throughout, creating a more information-dense yet readable interface. Preview areas reduced from h-32 to h-20/h-24 for better space efficiency.
  • Section Spacing Optimization: Reduced section padding (py-16→py-12) and margins (mt-12→mt-8) across all Design System sections, creating tighter visual rhythm and faster navigation.
  • HierarchicalTree Connector Fix: Fixed critical rendering bugs where connector lines were missing or improperly positioned. Now correctly renders vertical lines from parent nodes, horizontal spanning lines for sibling groups, and vertical drop lines to each child node in both horizontal and vertical layouts.
  • Timeline Orientation Standardization: Changed Team Growth Journey and Brand Narrative Timeline components from horizontal to vertical orientation for consistent visual hierarchy and better readability across all case studies.
  • Improved Scroll Experience: The Design System page now feels significantly more navigable with reduced visual repetition and better information density, making it easier to scan and reference component documentation.
v4.9.0
December 27, 2025

Enhanced Case Study Content Architecture

Transformed case studies from flat text blocks into rich, semantic content structures with visual layouts. This architectural shift enables more engaging storytelling through ecosystem diagrams, framework grids, metric tables, flowcharts, timelines, and state machines—all positioned contextually throughout each case study narrative.

  • Semantic Business Context: Replaced monolithic paragraphs with structured sections featuring icons, highlights, and inline metrics. Each context section now has semantic meaning (market, challenge, problem, data, constraint) that informs visual hierarchy.
  • Structured Revenue Opportunities: Converted opportunity text into itemized lists with icons, visual type indicators, and nested sub-items. This structure makes value propositions scannable and actionable.
  • Visual Layout System: Integrated 16 visual layouts across 4 case studies, including ecosystem diagrams, framework grids, metric tables, persona grids, flowcharts, timelines, and state machine diagrams. Each layout is positioned contextually (before-context, after-context, after-opportunity, after-strategy, standalone).
  • Bilingual Content Structure: Added complete Portuguese translations for all enhanced content while maintaining technical terms and data structures in English. Both EN and PT versions now share the same rich visual architecture.
  • Backward Compatibility: Preserved existing fullDescription structure to ensure graceful fallback for case studies without enhanced content. The system automatically detects and renders the appropriate structure.
  • Dynamic Icon System: Enhanced getIcon utility to support dynamic Phosphor icon rendering from string names, enabling icon-driven content without hardcoded imports.
  • Type-Safe Data Structures: Added comprehensive TypeScript interfaces for all enhanced content types (EnhancedCaseStudyContent, ContextSection, OpportunityItem, VisualLayout, etc.) ensuring compile-time validation of content structure.
v4.8.2
December 28, 2025

Theme-Aware Logo System & Design System Page

Fixed critical visibility issues in the brand partners section and introduced a new Design System documentation page. This update ensures perfect logo contrast across all theme modes and provides a centralized reference for the portfolio's visual language.

  • Theme-Aware Logo Filters: Fixed logo visibility in light mode by implementing semantic color filters. Logos now use brightness-0 (black) in light mode and brightness-0 invert (white) in dark mode for optimal contrast.
  • Design System Page: Created a new /design-system route showcasing the portfolio's visual language with beautiful gradient graph bar visualizations.
  • System Status Integration: Added a Design System button within the System Status section in the Hero for quick access to design documentation.
  • Gradient Graph Component: Reused the premium gradient bar chart component from case studies to visualize design system metrics (Color Usage, Component Usage, Typography Scale).
  • Monochrome Theme Fix: Updated monochrome color theme to use semantic colors that adapt to light/dark mode, ensuring proper contrast in all scenarios.
v4.8.1
December 28, 2025

System Performance & Engine Optimization

Engineered a series of low-level performance optimizations to improve GPU/CPU efficiency and memory management across the entire platform. This update focuses on technical debt reduction and infrastructure polish, ensuring that high-end visual effects remain fluid even on lower-performance devices.

  • Route-Based Code Splitting: Implemented lazy loading for all primary pages, significantly reducing initial bundle size and improving time-to-interactive.
  • GPU-Accelerated Grid System: Refactored the BackgroundGrid to use CSS variables for scroll tracking, eliminating high-frequency React re-renders and shifting mask calculations to the compositor layer.
  • Viewport-Aware Animations: Optimized the LogoStrip carousel to pause all CSS animations when off-screen, preserving GPU cycles for visible content.
  • Refined Reveal Mechanics: Tuned the premium reveal animations with reduced blur complexity and optimized transform offsets for better frame stability.
  • Component Memoization: Standardized React.memo patterns across metrics and testimonials to prevent redundant virtual DOM diffing during rapid scroll events.
  • Memory Lifecycle Management: Conducted a full audit of useEffect hooks to ensure 100% compliance with event listener cleanup and state disposal.
v4.8.0
December 28, 2025

Narrative Storytelling & Partner Interface Optimization

A major refinement focused on information density and visual pacing. This update introduces a distributed media system for case studies and a re-engineered brand partner interface for superior visual balance and rhythm.

  • Narrative Interstitials: Re-architected case studies to intersperse high-impact project visuals directly within the strategy text, creating a more balanced and engaging reading experience.
  • Visual Proof System: Strategically placed specific gallery assets after key business context and strategic intervention sections to provide immediate visual evidence for narrative claims.
  • Artifact Library: Transitioned the monolithic gallery into a dedicated "Project Artifacts" section for technical documentation and secondary visual proof.
  • Partner Carousel Re-engineering: Optimized the "Proudly Worked With" section with standard-defying spacing and brand-specific sizing for PagueVeloz to ensure perfect visual weight across the carousel.
  • Professional Monochrome Filters: Standardized brand logos with white-labeled treatment using brightness-0 and invert filters for a high-end, integrated look.
  • Zero-Latency Responsive Masks: Refined the scrolling logo strip side-fades to eliminate clipping artifacts and ensure smooth transitions on all device viewports.
v4.7.0
December 28, 2025

Core Content Synchronization: v3.0 Library Update

Synchronized the entire application content layer with the v3.0 Defensible Content Library. This update formalizes our narrative parity across English and Portuguese locales and introduces more rigorous, evidence-based descriptions for all major case studies and professional impact metrics.

  • Content Sync: Replaced hardcoded text across all sections with structured content from the WEBSITE_CONTENT_COMPLETE_v3.json source of truth.
  • Evidence-First Narratives: Updated case study descriptions (Sweat Economy, Tomb Finance, PremierSoft, Astraly Labs) with expanded business context and strategy details.
  • Multilingual Parity: Ensured 1:1 mapping between en-CA and pt-PT locales for all metrics, pillars, and professional experience entries.
  • Strategic Pillar Refinement: Formalized the "The Philosophy of Revenue" pillars with updated technical and business-focused copy.
  • Contact Info Update: Synchronized global contact details including emails and professional links across the entire site.
v4.6.2
December 28, 2025

Gallery Simplification & Visual Cleanup

Refined the case study gallery experience by stripping away unnecessary borders and hover effects. This shift toward "radical simplification" ensures that the design work remains the primary focus, eliminating interface noise and providing a cleaner, more direct visual narrative.

  • Removed Image Borders: Eliminated all outline/border lines from images in case study galleries and strategy cards for a cleaner, edge-to-edge look.
  • Disabled Gallery Hover Effects: Removed scaling animations and color transitions from gallery images to keep the viewing experience focused and simple.
  • Stripped Interface Overlays: Removed subtle inner highlights and hover overlays from all project showcase images.
  • Next Case Preview Cleanup: Simplified the "Next Case Study" preview image by removing borders and interactive scaling.
  • Natural Asset Presentation: Ensured all mockups and GIFs are presented in their purest form without additional interface framing.
v4.6.1
December 28, 2025

Tomb Finance Media Expansion & UI Refinement

Enriched the Tomb Finance case study with professional mockups and refined the brand partners interface for a more polished, integrated feel. This update continues our commitment to visual storytelling and high-end interactive details.

  • PagueVeloz Integration: Added PagueVeloz to the brand partner carousel with high-quality asset treatment.
  • Tomb Finance Gallery: Integrated 4 professional mockups including FTMpad covers, mobile interfaces, and ecosystem visualizations.
  • Refined Glow Aesthetics: Adjusted the brand partners section glow to be more subtle and diffused for a more integrated look.
  • Logo Visibility Treatment: Applied monochrome filters and drop shadows to client logos for superior legibility on dark backgrounds.
  • Responsive Mask Fix: Eliminated clipping artifacts in the logo strip edge masks, ensuring a perfect fade-out on all device sizes.
  • Astra Labs Gallery Refinement: Streamlined the Astraly Labs gallery by removing redundant assets to prioritize high-impact visual evidence.
v4.6.0
December 28, 2025

Brand Partnership Glow & Media Refinement

Elevated the visual presence of brand partnerships with a custom theme-responsive glow effect and refined media handling across all case studies. This update focuses on "light-as-content" design principles, ensuring that the interface feels alive and interconnected through subtle luminescence and high-end asset treatments.

  • Theme-Responsive Glow: Implemented a custom radial glow background for the "Proudly Worked" section that automatically adapts to the active theme color.
  • Light Beam Aesthetic: Added a bright, subtle bottom-light beam to the LogoStrip, matching premium design system standards for depth and hierarchy.
  • Monochrome Logo Treatment: Applied brightness(0) invert(1) to all client logos for a consistent, professional white-labeled presentation on dark backgrounds.
  • Refined Logo Visibility: Added subtle drop shadows to logos to ensure they "pop" against the new glowing background and maintain perfect legibility.
  • Responsive Logo Masks: Improved the logo strip side-fades by smoothing gradients and removing localized blurs that caused clipping artifacts on mobile.
  • Gallery Aspect Ratio Logic: Optimized CaseStudyDetail to use natural image proportions (w-full h-auto) for mockups, preventing squashing or cutting on mobile.
  • Bento-Style GIF Mosaic: Standardized animated assets into a disciplined 1:1 aspect-ratio grid for a cleaner, organized project showcase.
  • Next Case Video Support: Extended video asset support to the "Next Case Study" preview section at the bottom of pages.
  • Gallery Cleanup: Removed outdated or redundant assets from the Astraly Labs gallery to focus on the highest-impact visual evidence.
v4.5.0
December 28, 2025

Case Study Card Redesign: Horizontal Layout & Media Support

Completely reimagined the case study card presentation on the landing page with a horizontal layout that better showcases project visuals. Introduced video support for dynamic media assets and standardized image ratios for visual consistency. The new design creates a more immersive, magazine-style presentation that lets each project breathe while maintaining clear visual hierarchy.

  • Horizontal Card Layout: Redesigned case study cards from vertical grid to horizontal single-column layout (image left, content right on desktop; stacked on mobile)
  • Video Asset Support: Added video file detection and rendering in CaseStudyCardHorizontal component with autoplay, loop, and muted attributes for background videos
  • Square Image Ratio: Standardized all case card images to 1:1 aspect ratio (aspect-square) for visual consistency across all projects
  • Full-Width Single Column: Changed from 2x2 grid to single-column vertical stack so each case study gets full horizontal space for better content presentation
  • Responsive Image Container: Image takes 40-50% width on desktop (md:w-2/5 lg:w-1/2) with proper gradients for text readability
  • Video Format Support: Component now detects .mp4, .webm, .ogg, and .mov files and renders appropriate <video> element with hover scale effects
  • Sweat Economy Video Integration: Replaced static hero image with animated charts video (sweat-charts.mp4) for dynamic visual storytelling
v4.4.2
December 28, 2025

Case Study Media Expansion: Comprehensive Gallery & Animated Assets

Significantly expanded the visual storytelling capabilities of case studies by adding comprehensive image galleries and animated asset sections. Each project now has a rich media library that showcases the depth and breadth of the design work, from static mockups to animated interactions.

  • Sweat Economy Gallery: Added 8 gallery images including Sweat Wallet app screens (3 images) and Sweatcoin app interface (5 images)
  • Ailos Bank Gallery: Integrated 4 professional mockups showcasing Ailos app interface, PagueVeloz payment screens, and multi-device presentations
  • Astraly Labs Gallery: Expanded gallery with 4 additional images including launchpad SBT interface, dark mode variant, and home screen designs
  • Animated Assets Section: Created dedicated "Animated Assets" section (05) for Astraly Labs displaying 4 GIFs in responsive 4-column grid (Brick-move, Briq-lottery, Influence SBT, Token distribution)
  • Conditional Asset Rendering: Implemented intelligent asset path resolution that supports both English (astraly) and Portuguese (astraly-labs) case study IDs
  • Language-Agnostic GIF Mosaic: Fixed conditional rendering bug where GIF paths were hardcoded, now dynamically determines assets based on study.id to prevent broken images
  • Responsive Grid Layout: Gallery images display in responsive grid (1 column mobile, 2 columns tablet, 4 columns desktop) with square aspect ratio and hover effects
  • Astraly Landing Image: Updated Astraly case study card main image to animated GIF (astraly-token-landing.gif) for dynamic visual impact
v4.4.3
December 28, 2025

Layout & Typography Refinements: Philosophy Section & Executive Manifest

Refined the Philosophy section and Executive Manifest layout for better responsive behavior and visual presentation. Improved subtitle placement on tablet devices and transformed the triad presentation into a more structured grid layout that better showcases the three core pillars.

  • Philosophy Section Subtitle: Fixed responsive breakpoint so subtitle appears below title on tablet (md breakpoint), only switching to side-by-side layout on larger desktop screens (lg breakpoint)
  • Executive Manifest Grid: Changed Philosophy triad from vertical stack to responsive 2x2 grid layout (grid-cols-1 lg:grid-cols-2) for better visual balance on desktop
  • SectionHeader Responsive Logic: Updated split alignment breakpoint from md:flex-row to lg:flex-row to ensure proper stacking on tablet devices
  • Visual Hierarchy: Removed max-width constraint from Philosophy section container to allow full-width grid layout on large screens
  • Grid Spacing: Maintained consistent gap spacing (gap-8 sm:gap-10 lg:gap-12 xl:gap-14) across all breakpoints for visual rhythm
v4.4.1
December 27, 2025

Impact Dashboard Refinement: Leaner Chart Heights

Slimmed down the Impact Dashboard visualization layer so each metric card reads faster and breathes better on large displays. The graphs now sit tighter inside their cards while retaining perfect vertical alignment, putting the focus back on the performance story.

  • Uniform chart height progressively reduced from 280–400px down to 180–260px across all breakpoints so the dashboard reads tighter on both tablet and desktop
  • Preserved center alignment logic inside each chart component so visuals stay perfectly aligned after the size reduction
  • Normalized internal padding within DotMatrix and Efficiency charts so every graph now occupies the full allotted height
  • Matched desktop (lg/xl) chart height to the tablet baseline so four-up layouts keep the same proportions as the two-up responsive view
  • Conditional chart heights: Charts 2 & 3 (DotMatrix, RevenueStack) reduced to 140–200px for compact display, Charts 1 & 4 maintain 180–260px
  • CustomAreaChart viewBox cropped from "0 0 200 140" to "0 10 200 120" to eliminate excessive top/bottom spacing around the line graph
  • EfficiencyChart gap reduced from gap-6/8 to gap-3/4 to tighten vertical spacing between comparison bars and labels
v4.4.0
December 27, 2025

Case Study Visual Enhancement: Gallery System & Image Integration

Introduced a comprehensive visual enhancement system for case studies, enabling multiple images per project through a dedicated gallery section and contextual strategy images. This foundational update transformed case studies from single-image presentations into rich visual narratives. Updated all case study hero images with high-quality visuals that better represent each project's identity and impact, setting the stage for the expanded media libraries that would follow in subsequent versions.

  • Gallery System: Added optional gallery array to CaseStudy type, enabling multiple showcase images per project
  • Strategy Images: Enhanced strategy cards to support contextual images that illustrate each strategic intervention
  • Visual Showcase Section: New dedicated gallery section (04) displays project visuals in responsive grid layout with hover effects
  • Image Updates: Replaced placeholder images with project-specific visuals for Sweat Economy, Tomb Finance, Ailos Bank, and Astraly Labs
  • Chart Improvements: Removed $188M label from CustomAreaChart and increased chart heights for better visual prominence
  • Type System Extension: Updated TypeScript interfaces to support gallery and strategy-level images while maintaining backward compatibility
v4.3.0
December 27, 2025

Dynamic CRT Intensity: Scroll-Responsive Effect Transitions

Introduced intelligent scroll-based CRT intensity control that adapts to content context, creating a more nuanced visual experience that respects both aesthetic intent and readability. The landing page now showcases full 100% CRT intensity in the Hero section—creating that initial "boot screen" moment—then smoothly transitions to 60% as users scroll into content areas, maintaining the retro aesthetic without overwhelming the information. Case study pages take this further by fading out the CRT effect entirely when reaching the Business Context section, ensuring optimal readability for detailed project narratives.

  • Landing Page Intensity: CRT effect at 100% in Hero, smoothly transitions to 60% when scrolling past (configurable thresholds)
  • Case Study Fade: CRT visibility fades out when Business Context section enters viewport, stays hidden through content, restores on scroll back up
  • CSS @property Animation: Defined --crt-master and all CRT variables as animatable using CSS @property for GPU-accelerated transitions
  • Smooth 1.2s Transitions: All intensity changes animate with cubic-bezier(0.4, 0, 0.2, 1) easing for buttery smooth fades
  • RAF-Optimized Scroll: Uses requestAnimationFrame with state-change detection to prevent jitter and unnecessary re-renders
  • Context API Extension: Added visible/setVisible to CRTEffectContext for CSS class-based visibility toggling
v4.2.1
December 27, 2025

CRT Media Protection: Images & Videos Exempt from Effects

Added CSS rules to protect all images, videos, and media elements from CRT distortion effects. Profile images, case study heroes, and all visual media now render crisp and unaffected by scanlines, chromatic aberration, and vignette overlays.

  • Media Exempt Layer: All img, video, picture elements now positioned above CRT overlay (z-index 1001 vs 1000)
  • Navigation Images Protected: Header, nav, and footer images render without CRT interference
  • Case Study Images Clean: Hero images and article media display at full fidelity
  • Custom Exempt Class: Added .crt-exempt and [data-crt-exempt] for manual exemption of any element
  • CSS Isolation: Applied isolation: isolate to prevent stacking context bleed-through
v4.2.0
December 27, 2025

Global CRT Effect: Site-Wide Retro Display with Brightness Preservation

Evolved the CRT effect from a Hero-only accent into a true site-wide visual layer that enhances without obscuring—a critical shift that maintains the retro aesthetic while ensuring content remains the star. The effect now applies consistently across all pages while preserving screen brightness and menu accessibility. This version also fixed the chromatic aberration implementation, properly splitting RGB channels at opposing diagonal angles (red top-left, blue bottom-right) to accurately mimic real lens dispersion rather than the previous incorrect implementation.

  • Global Scope: Moved CRT from Hero-only to Layout component—now renders on Home, Case Studies, Timeline, and all pages
  • Brightness Preservation: Drastically reduced all darkening effects (scanlines 0.55→0.12, vignette 0.5→0.12, barrel edges 0.9→0.15) so CRT adds texture without dimming content
  • Chromatic Aberration Fix: Red channel offsets top-left, blue offsets bottom-right (opposite diagonals) for accurate lens dispersion simulation
  • Aperture Reversed: Changed from darkening (black lines) to brightening (white lines with screen blend) so higher values add light instead of shadow
  • Menu Accessibility: All navigation remains fully clickable through the overlay via pointer-events: none on the CRT container
v4.1.3
December 26, 2025

CRT Overlay Layering: Always Above Navigation

Ensured the CRT overlay behaves like a true screen filter by rendering above all UI layers. This avoids stacking-context edge cases from transformed Hero animations and keeps the CRT effect visually consistent across navigation states.

  • Portal Rendering: CRT overlay is now rendered via a React portal to document.body so it cannot be trapped inside transformed containers
  • Menu-Top Layering: Increased CRT container z-index so it reliably sits above Navbar and MobileTabBar
v4.1.2
December 26, 2025

CRT Transition Polish: Smooth Fade In/Out in Hero

Smoothed the CRT overlay behavior so it eases in and out with a clean fade instead of snapping on/off. The effect now feels like a deliberate cinematic layer rather than a scroll-threshold toggle.

  • Fade Transition: CRT overlay now stays mounted and animates opacity for a smooth entrance/exit
  • Hero-Scoped Behavior Preserved: CRT remains limited to the Hero section visibility logic
v4.1.1
December 26, 2025

Hero-Only CRT Layer: Locked 100% Strength Without Site-Wide Overlay

Constrained the CRT simulation to the Hero moment so it reads as an intentional “boot screen” instead of a global filter. The effect now runs at a consistent 100% strength while Hero is visible, without affecting the rest of the site experience.

  • Hero-Scoped CRT: Moved the CRT overlay out of the global Layout and only render it while the Hero section is in view
  • Consistent 100% Strength: CRT intensity is now pinned to 100% so it never appears to fade with scroll
  • Beam Without Glow Boost: Designer beams no longer amplify grid highlight intensity on hover—only the beam animation is shown
v4.1.0
December 26, 2025

Designer Beam Behavior: One-Time Intro + Hover Activation

Refined the energy beam interaction so it feels intentional rather than persistent. Beams now introduce the grid system once on load, then stay quiet until explicitly engaged via the DESIGNER badge hover—keeping the Hero cleaner while preserving the sci-fi moment when you want it.

  • Intro Play Once: Beam overlay now appears once on page load, then fades out automatically instead of staying visible
  • Hover Reactivation: Hovering the DESIGNER badge reliably brings the beams back (independent of the intro run)
  • Primary Major-Line Targeting: Adjusted line selection to bias toward the primary major grid axes, avoiding accidental snapping to adjacent (third) lines due to tiny offsets
v4.0.9
December 26, 2025

Grid Beam Precision: Pixel-Perfect Alignment with Background Grid

Rebuilt the Designer beam positioning system to use the exact same coordinate space as the fixed BackgroundGrid. This eliminates subtle drift caused by scroll offsets and SVG scaling, making the energy beams feel truly integrated with the grid architecture.

  • Shared Coordinate System: Beam overlay now measures the fixed BackgroundGrid element and calculates beam paths in local grid space (viewport-anchored) instead of mixing document scroll coordinates
  • No SVG Scaling Drift: SVG viewBox and geometry now derive from the rendered grid/overlay dimensions, preventing fractional scaling offsets
  • Crisp Rendering: Added non-scaling strokes and crisp edge rendering so beam lines visually match 1px grid line behavior
v4.0.8
December 27, 2025

Typography & Spacing Refinements: Tighter Line Heights & Footer Spacing

Refined typography spacing in title sections for better visual density and readability. Adjusted Footer component spacing for improved visual hierarchy. Fine-tuned SectionHeader component spacing and viewport thresholds for optimal content presentation.

  • Footer Spacing Adjustment: Changed "Back to Home" button margin-top from mt-20 (80px) to mt-4 (16px) on mobile, maintaining larger responsive margins (sm:mt-24 lg:mt-28) on larger screens for better visual balance
  • SectionHeader Line Height Refinements: Reduced title line-height from leading-[1.15] to leading-[1.05] for tighter, more compact typography in both technical and human variants
  • Description Spacing Optimization: Adjusted description line-heights and margins in SectionHeader component. Reduced badge margin-bottom (mb-4 sm:mb-6 lg:mb-8 to mb-3 sm:mb-4 lg:mb-5) and description margin-top (mt-6 sm:mt-8 lg:mt-10 to mt-4 sm:mt-5 lg:mt-6) for tighter spacing
  • Viewport Threshold Fine-tuning: Reduced SectionHeader viewport amount threshold from 0.2 to 0.1 for earlier animation trigger while maintaining smooth reveal effect
  • Split Alignment Description: Optimized line-height for split alignment description text (leading-[1.9]) and removed border styling for cleaner presentation
v4.0.7
December 27, 2025 at 02:00

Animation System Overhaul: Sections Stay Visible & Better Viewport Settings

Completely redesigned animation behavior so sections appear together and stay visible once animated, instead of hiding one section to show another. Optimized viewport settings for better content visibility. Fixed Hero section visibility issue and Dashboard header overlapping. Improved ErrorBoundary button consistency.

  • Sections Stay Visible: Changed all whileInView animations from once: false to once: true. Sections now animate once when they first appear and remain visible, creating a cumulative effect where all sections appear together instead of hiding previous ones
  • State Tracking for Animated Components: Added hasAnimated state tracking to ImpactDashboard, CaseStudyCard, and AboutSections components. Once these components have animated, they remain visible even when scrolling out of view
  • Optimized Viewport Settings: Reduced amount threshold from 0.4 (40%) to 0.15 (15%) and increased margin buffer from -200px to -300px across all components. Content now appears earlier and stays visible longer during scrolling
  • Hero Section Visibility Fix: Reduced Hero section viewport threshold to amount: 0.1 and margin: -100px, and changed initial state to visible to ensure Hero section appears immediately on page load
  • Dashboard Header Improvements: Fixed overlapping header by improving responsive layout (flex-col sm:flex-row), increasing spacing (mb-10 sm:mb-12), and better gap management. Added proper padding and negative margins for tabs container
  • ErrorBoundary Button Consistency: Added fixed height (h-12) to both "Try Again" and "Refresh Page" buttons to ensure they have the same height
  • Comprehensive Component Updates: Applied once: true to all animated components including SectionHeader, AboutSections, PhilosophySection, Testimonials, LogoStrip, CoreCompetenciesSection, all case study components, and page components
  • Default Viewport Config: Updated viewportConfigRetrigger in lib/animations.ts to use amount: 0.15 and margin: -300px as the new standard for better content persistence
v4.0.6
December 27, 2025 at 01:30

Complete Hero Section & Navigation Portuguese Translation

Added comprehensive Portuguese (BR) translations for all Hero section elements including status, location, core discipline, current focus items, and specialization tags. Translated navigation items (Settings, Changelog). Fixed TitleBlock component to properly access content translations. All Hero section text now fully supports bilingual display.

  • Hero Section Translations: Added Portuguese translations for STATUS (STATUS), OPERATIONAL (OPERACIONAL), LOCATION (LOCALIZAÇÃO), REMOTE (REMOTO), CORE DISCIPLINE (DISCIPLINA PRINCIPAL), Revenue Engineering (Engenharia de Receita), CURRENT FOCUS (FOCO ATUAL), and SPECIALIZATION (ESPECIALIZAÇÃO)
  • Current Focus Items: Translated DeFi Protocols (Protocolos DeFi), AI Agents (Agentes de IA), Yield Systems (Sistemas de Rendimento)
  • Specialization Tags: Translated Product Design (Design de Produto), AI Systems (Sistemas de IA), DeFi (DeFi), Scale (Escala)
  • Navigation Translations: Added Settings (Configurações) and Changelog (Changelog) to nav translations in both English and Portuguese
  • Component Updates: Updated Hero.tsx to use content.ui.hero.* for all text elements instead of hardcoded strings. Updated Navbar.tsx and MobileTabBar.tsx to use content.ui.nav.settings and content.ui.nav.changelog
  • TitleBlock Fix: Fixed TitleBlock component to properly access content through useLanguage() hook, resolving "content is not defined" error
  • Type Definitions: Extended UIText interface in types.ts to include all new hero section fields (principalProduct, status, operational, location, remote, coreDiscipline, revenueEngineering, currentFocus, currentFocusItems, specialization, specializationItems)
  • Constants Update: Added comprehensive Portuguese translations to constants.ts for all hero section elements and navigation items
v4.0.5
December 27, 2025 at 01:00

Viewport Animation Improvements & Philosophy Layout Update

Enhanced scroll-triggered animations to keep content visible longer during scrolling. Reduced viewport amount threshold and increased margin buffer across all components. Changed Philosophy section from horizontal grid to vertical stack layout for better readability and flow.

  • Viewport Animation Improvements: Reduced amount threshold from 0.2 (20%) to 0.05 (5%) across all animated components. Content now triggers earlier and stays visible longer during scrolling
  • Increased Margin Buffer: Changed margin from -50px/-100px/-150px to -400px (and -500px for section headers) across all components. Larger buffer zone keeps content visible even when further from viewport edge
  • Updated Default Viewport Config: Modified viewportConfigRetrigger in lib/animations.ts to use amount: 0.05 and margin: -400px as the new standard
  • Comprehensive Component Updates: Applied new viewport settings to all animated components including SectionHeader, AboutSections, PhilosophySection, Hero, CaseStudyCard, Testimonials, ImpactDashboard, all chart components, all case study components, and page components
  • Philosophy Section Layout: Changed from horizontal 3-column grid (md:grid-cols-3) to vertical flex column layout (flex flex-col). Philosophy pillars now stack one below each other for better readability and flow
  • Code Cleanup: Removed unused Github and Telegram icon imports from Navbar.tsx (now handled by SocialLinks component)
v4.0.4
December 27, 2025 at 00:30

Professional Dashboard Enhancement & Complete Portuguese Translation

Completely redesigned the Edit Mode Dashboard with professional CMS features, comprehensive content management, batch image upload, analytics dashboard, and complete Portuguese (BR) translation. Enhanced mono font configuration system with improved CSS selectors and cross-component synchronization. Improved dashboard menu layout with right-aligned, compact tabs.

  • Dashboard Enhancement: Added comprehensive content sections (triad/philosophy, awards, experience, secondary metrics) to CRM. Created Settings tab with database status, export/import functionality, and system information. Added Analytics tab with metrics overview and content breakdown visualization
  • Batch Image Upload: Implemented professional batch upload system with progress tracking per file, visual feedback, and file list management. Enhanced upload UI with drag-and-drop and click-to-upload support
  • Advanced CRM Features: Added search and filter functionality for content management. Section-based filtering with field counts. Real-time change tracking with visual indicators. Improved content organization with collapsible sections
  • Complete Portuguese Translation: Added comprehensive dashboard translations to constants.ts. All dashboard UI elements, tabs, buttons, labels, placeholders, and toast messages are now fully translated. Updated nav translation from "Trabalho" to "Casos" to match "Cases"
  • Mono Font System Fix: Enhanced CSS selectors for mono fonts to catch all elements. Added comprehensive selectors including code, pre, kbd, samp, var, tt, and class-based selectors. Implemented custom event system for cross-component synchronization between Navbar and MobileTabBar
  • Dashboard Menu Layout: Redesigned tabs to be right-aligned and more compact. Reduced spacing (gap-0.5), smaller padding (px-4 py-2.5), smaller icons (w-3.5 h-3.5), and improved hover states
  • Font Icon Improvements: Replaced non-existent Type icon with TextAa icon for Mono Font section. Changed font section icons from Sliders (config concept) to TextT and TextAa (font/typography concept)
  • Section Header Animation: Improved viewport settings (amount: 0.05, margin: -300px) to prevent flickering. Titles now stay visible for more scroll distance
  • Hero Section Padding: Updated padding-top for tablet size (pt-4 md:pt-4 lg:pt-[42px]) for better responsive layout
  • Footer Email Styling: Changed email link to use primary color by default instead of hover-only effect
  • Awards Section Layout: Added responsive behavior for 3-item grid - last item spans full width on small screens (sm:col-span-2 lg:col-span-1)
  • Typography Improvements: Increased font weight in Philosophy section from font-normal to font-medium for better readability
  • Metrics Font Size: Increased metrics font size in About section (text-3xl sm:text-4xl lg:text-5xl xl:text-6xl) while maintaining responsive behavior
v4.0.3
December 26, 2025 at 24:00

Social Links Component Refactor & Mobile Enhancement

Refactored social links into a shared reusable component to ensure consistency between desktop and mobile views. Social links now display side by side (horizontal layout) in both contact dropdowns. Added all three social links (LinkedIn, GitHub, Telegram) to mobile contact dropdown. Improved code architecture with centralized social links configuration.

  • Shared Component Architecture: Created SocialLinks component in components/navigation/SocialLinks.tsx as a reusable, centralized component for all social media links
  • Horizontal Layout: Changed social links from vertical stack to horizontal side-by-side layout in both desktop and mobile contact dropdowns
  • Mobile Contact Enhancement: Added all three social links (LinkedIn, GitHub, Telegram) to mobile contact dropdown, previously only had LinkedIn
  • Code Consistency: Both Navbar and MobileTabBar now use the same SocialLinks component, ensuring automatic synchronization when links are updated
  • Component Props: Added flexible props (variant: horizontal/vertical, showLabels: boolean) for future customization needs
  • Import Cleanup: Removed unused icon imports (LinkedinLogo, GithubLogo, TelegramLogo) from Navbar and MobileTabBar since they are now handled by SocialLinks component
  • Icon Fix: Replaced non-existent Type icon with TextAa icon for Mono Font section to fix build error
v4.0.2
December 26, 2025 at 23:45

UI Refinements & Theme System Improvements

Comprehensive UI polish including typography improvements, spacing adjustments, and theme system enhancements. Removed unnecessary visual elements, improved readability with increased line spacing, and enhanced theme customization with a Default reset button. Fixed navbar alignment and improved overall visual consistency.

  • Typography Improvements: Increased line spacing across all paragraphs (leading-[2.0-2.1] to leading-[2.2-2.3], leading-[1.7-1.8] to leading-[1.9-2.0]) for better readability throughout the site
  • DESIGNER Badge Refinements: Increased letter spacing from 0.08em to 0.15em and adjusted padding from 10px to 16px for better visual balance
  • Case Study Cleanup: Removed all arrow components (CaretDown, ArrowRight) from case study cards and detail pages for cleaner, more minimal design
  • Social Links Enhancement: Added GitHub and Telegram links to contact dropdown in navbar and footer social links section
  • Theme Color System: Reordered color sequence to Green, Orange, Purple, Blue, Teal, Red. Added Red as new color option. Added Default button in Configuration header to reset theme color, fonts, and mode to defaults
  • Theme Toggle Fix: Removed orange color transition on first light mode switch. Theme toggle now preserves selected color when switching between dark and light modes
  • Navbar Alignment: Fixed navbar spacing and alignment. Increased gap between brand and navigation items, improved full-width layout with proper spacing distribution
  • Section Spacing: Reduced spacing in Impact section header (badge, title, description). Removed left borders from Philosophy and Work section descriptions for cleaner appearance
  • Footer Spacing: Increased spacing between copyright text and Back to Home button (mt-20 sm:mt-24 lg:mt-28) for better visual separation
  • Dashboard Improvements: Increased top padding (pt-16 sm:pt-20 lg:pt-24) and fixed image loading/refresh functionality with proper state management
  • Timeline Alignment: Fixed timeline circle alignment with version badge center line for perfect visual alignment
v4.0.1
December 26, 2025 at 23:30

Navigation Reordering: Improved Information Architecture

Reorganized navigation menu to follow a more logical flow: Impact → Cases → Philosophy → Contact → Settings → Changelogs. Updated "Work" label to "Cases" for clearer terminology. Applied changes to both desktop and mobile navigation for consistency.

  • Navigation Order: Reordered desktop navigation items to Impact, Cases, Philosophy, Contact, Settings, Changelogs for better information architecture and user flow
  • Label Update: Changed "Work" section label to "Cases" throughout the application for clearer, more professional terminology
  • Mobile Navigation: Updated mobile tab bar order to match desktop navigation sequence (TOC → Contact → Settings → Timeline)
  • TOC Update: Updated mobile table of contents to display "Cases" instead of "Selected Works" for consistency
v4.0.0
December 26, 2025 at 23:00

Professional Dashboard Redesign: Modern CMS Experience

Completely redesigned Edit Mode dashboard with professional UI inspired by Squarespace/Framer. Added toast notification system, drag-and-drop image upload, auto-import of existing images, advanced image gallery with search and bulk operations, and improved content editing experience. Updated default font to Space Grotesk and added fancy first-time light mode transition with orange color.

  • Dashboard Redesign: Complete UI overhaul with professional, modern design matching Squarespace/Framer aesthetics. Improved visual hierarchy, better spacing, and polished interactions throughout
  • Toast Notification System: Replaced all browser alerts with professional toast notifications. Created ToastProvider context and Toast component with smooth animations and multiple types (success, error, info, warning)
  • Image Management Overhaul: Professional image gallery with ImageCard components featuring hover effects, metadata display, and action buttons. Added full-size ImagePreviewModal for viewing images
  • Drag-and-Drop Upload: Created DragDropUpload component with visual feedback, file validation, and smooth animations. Supports both drag-and-drop and click-to-upload workflows
  • Auto-Import Existing Images: Added API endpoint that automatically scans public images directory and imports all images into database on first dashboard load
  • Image Search & Filter: Added search functionality to filter images by filename. Real-time filtering as you type
  • Bulk Operations: Added checkbox selection for images with bulk delete functionality. Select multiple images and delete them all at once
  • Content Editor Improvements: Better section organization, keyboard shortcuts (Cmd/Ctrl + S to save), improved field editing with better input types, and visual feedback for unsaved changes
  • Font Configuration: Updated lib/fonts.ts to set Space Grotesk as DEFAULT_SANS_FONT (replacing Inter). Space Grotesk is now the default sans-serif font throughout the application
  • First-Time Light Mode Transition: Added fancy design entry when switching to light mode for the first time. Changes primary color to orange and switches to light mode simultaneously with smooth animation. After first time, normal theme toggle resumes with green primary color
  • Component Architecture: Created new dashboard components (ImageCard, DragDropUpload, ImagePreviewModal) in components/dashboard/ directory for better organization
  • Loading States: Added proper loading indicators and empty states throughout the dashboard for better UX
  • Responsive Design: Ensured dashboard is fully responsive and works seamlessly on all screen sizes
v3.9.9
December 26, 2025 at 22:30

Footer Navigation Fix: Smart Back to Home Link

Fixed Footer "Back to Home" button to use React Router Link component on case study pages, ensuring proper navigation to landing page instead of attempting to anchor to non-existent hero section. On home page, maintains smooth scroll anchor behavior.

  • Footer Navigation Logic: Updated "Back to Home" button to conditionally render React Router Link on case study pages (navigates to /) and anchor tag on home page (smooth scrolls to #hero)
  • Spacing Adjustment: Increased margin-top of "Back to Home" button from 24px (mt-6) to 26px (mt-[26px]) for improved visual spacing
  • Bug Fix: Resolved issue where clicking "Back to Home" on case study pages would attempt to anchor to #hero element that doesn't exist on those pages, causing navigation failures
v3.9.8
December 26, 2025 at 22:00

Complete Dashboard Implementation: Full Content & Image Management

Implemented comprehensive Edit Mode dashboard with full content editing capabilities and image management. All website content is now editable through a user-friendly interface, with automatic database initialization from constants.ts. Removed image selection UI from navigation dropdowns, keeping only Edit Mode button.

  • Complete Content Editor: Built full-featured content management interface allowing editing of all website content including UI text, metrics, case studies, testimonials, about section, and contact information. Content is organized by sections with expandable/collapsible groups
  • Automatic Database Initialization: Server automatically populates database with content from constants.ts on first run. Created init-content.ts script that flattens nested content structure and stores it in database with proper key paths
  • Content API Enhancement: Updated content route to properly handle array indices in key paths (e.g., "metrics[0].value", "caseStudies[1].title") for correct content reconstruction from database
  • Image Management: Complete image upload, display, and deletion functionality. Images are stored in database with metadata (filename, dimensions, alt text) and can be copied to clipboard for use in content
  • Navigation Cleanup: Removed all Case Study Images selection UI from both MobileTabBar and Navbar Settings dropdowns. Replaced with single Edit Mode button that navigates to dashboard
  • Dashboard Features: Language switching (EN/PT), section-based content organization, real-time change tracking, bulk save functionality, and proper error handling
  • Database Integration: Content changes are saved to Vercel Postgres and automatically override default content from constants.ts when present
  • User Experience: Clean, organized interface with collapsible sections, field labels, key path display, and visual feedback for unsaved changes
v3.9.7
December 26, 2025 at 21:30

Database Migration to Vercel Postgres, Config Simplification & Hero Layout Improvements

Migrated from SQLite to Vercel Postgres-only architecture for seamless production deployment. Simplified Config dropdown to Edit Mode only. Enhanced Hero section to fill full horizontal space with improved column distribution.

  • Database Migration: Removed SQLite completely and migrated to Vercel Postgres-only architecture. Database abstraction layer now exclusively uses @vercel/postgres for both local development and production. Requires POSTGRES_URL environment variable for all environments
  • Storage Abstraction: Enhanced storage layer to automatically use Vercel Blob Storage in production when BLOB_READ_WRITE_TOKEN is set, falling back to local filesystem for development
  • Config Dropdown Simplification: Removed all configuration options (Grid Highlight, Theme Color, Fonts, Reset, Changelog) from Config dropdown. Now only displays Edit Mode button that navigates to dashboard for content and image management
  • Hero Section Layout: Removed max-w-7xl constraint and improved column distribution. Main content now uses lg:col-span-8 xl:col-span-9 (increased from lg:col-span-8) and sidebar uses lg:col-span-4 xl:col-span-3. Increased gaps to lg:gap-12 xl:gap-16 for better spacing
  • Documentation Updates: Database setup documented in docs/README_DATABASE.md (gitignored, exists locally) and README.md Database Setup section. Updated docs/README_DASHBOARD.md to reflect Postgres architecture. Updated docs/AGENTS.md with latest database requirements
  • Package Cleanup: Removed sqlite3 dependency from package.json. Added @vercel/postgres and @vercel/blob packages for production database and storage
v3.9.6
December 26, 2025 at 21:00

Centralized Font System & Typography Improvements

Established centralized font configuration system ensuring consistent typography across the entire application. Improved Hero section readability with refined typography hierarchy, spacing, and contrast. Migrated default font from Inter to Space Grotesk with automatic preference migration.

  • Centralized Font System: Created lib/fonts.ts as single source of truth for all font constants (DEFAULT_SANS_FONT, DEFAULT_MONO_FONT). All font configuration components now import and use these constants, eliminating hardcoded font names and ensuring changes propagate everywhere automatically
  • Font Migration Logic: Implemented automatic migration system that converts old font preferences (Inter) to new defaults (Space Grotesk) on initialization, ensuring seamless transition for existing users
  • Default Font Change: Migrated primary sans-serif font from Inter to Space Grotesk across all configuration files (index.html, tailwind.config.js) and component initializations
  • Hero Typography Refinement: Improved readability with better line heights (leading-[1.1] for titles, leading-[1.7-1.8] for description), refined letter spacing (tracking-[-0.02em]), and increased spacing between title lines (mt-3)
  • Description Font Change: Switched Hero description from monospace (font-mono) to default sans-serif (Space Grotesk) for significantly improved readability, with increased font sizes (text-base to text-2xl)
  • Contrast Improvements: Enhanced text contrast throughout Hero section - status/location labels from text-foreground/50 to text-foreground/60, values from text-foreground/80 to full text-foreground, and specialization badges from text-foreground/70 to text-foreground/80
  • Spacing Refinements: Increased margins between sections (mb-10 to mb-12, mb-12 to mb-14) and improved label-to-value spacing (mb-0.5 to mb-1) for better visual hierarchy
  • Code Quality: Added documentation comments in index.html and tailwind.config.js pointing to centralized font constants, ensuring future maintainability
v3.9.5
December 26, 2025 at 20:30

Image Management System, Responsive UI Refinements & Navigation Enhancements

Introduced comprehensive image management system with OS file picker integration. Unified tablet and mobile UI experience. Enhanced visual effects with slower animations and improved navigation flow.

  • Image Management System: Added complete image control panel in settings menu (both desktop and mobile) with file picker buttons for each case study. Users can now select images directly from OS file system, with images converted to data URLs and stored in localStorage for persistence
  • Tablet UI Unification: Changed breakpoint strategy so tablets (768px-1279px) now use mobile-style bottom tab bar instead of desktop navbar. Updated Navbar to only show on xl screens (1280px+), ensuring consistent mobile experience across all smaller devices
  • Tab Bar Visual Enhancement: Updated mobile tab bar background from bg-background/90 backdrop-blur-lg to bg-background/95 backdrop-blur-md for consistent blur and transparency matching other dropdowns
  • Beam Animation Refinement: Slowed down "Evidence of scale" button beam sweep animation from 2s to 20s (10x slower) for more subtle, elegant visual effect
  • Case Study Navigation: Updated back-to-home button in case study pages to navigate to hero section (#hero) instead of just home page. Enhanced ScrollToTop component to handle hash navigation, automatically scrolling to target sections when hash is present in URL
v3.9.4
December 26, 2025 at 20:00

Hero Section Spacing Refinement

Increased top margin spacing in hero section main content area for improved visual balance and breathing room on large screens.

  • Hero Spacing: Increased margin-top from 64px (lg:mt-16) to 80px (lg:mt-20) for the main content area in hero section, providing better vertical spacing and visual hierarchy on large screens
v3.9.3
December 26, 2025 at 19:30

Chart Balance, Navigation UX & Content Refinements

Improved chart visual balance by increasing DotMatrixChart size to match other dashboard charts. Enhanced navigation UX with close icon toggle for changelog page. Refined metric label formatting for better clarity.

  • Chart Balance: Increased gap spacing in DotMatrixChart (Users Served) from gap-1.5 sm:gap-2 to gap-2 sm:gap-2.5 md:gap-3 lg:gap-3.5, and added responsive padding (p-2 sm:p-3 md:p-4) to make the chart larger and better balanced with other dashboard charts
  • Navigation UX: Added close icon (X) to changelog/timeline button when on timeline page. Button now toggles between Clock icon (to open) and X icon (to close), with click behavior navigating back to home when on timeline page
  • Content Refinement: Updated "Social Engagement" metric label format - moved "QoQ" from value to label, changing from "+55% QoQ" to "QoQ Social Engagement" with value "+55%" for better semantic clarity
  • Awards Glare Effect: Made glare effect faster (duration-100) and increased opacity (from-primary/15) for more responsive and visible hover/tap feedback
  • Selected Text Style: Increased font weight from font-normal to font-semibold for the About section extended bio to improve readability and visual prominence
v3.9.2
December 26, 2025 at 19:00

Typography, Navigation & Visual Enhancements: Selected Text Style, 3D Effects & Link Fixes

Applied selected text highlight style to About section extended bio for distinctive visual treatment. Enhanced awards section with sophisticated 3D shine effects matching chart quality. Improved navigation with LinkedIn integration, fixed all hyperlinks, and refined typography across experience section. Enhanced carousel and case study interactions with better visual feedback.

  • About Section Styling: Applied selected text highlight style to extended bio with green background (primary/25% opacity) and black monospace text, creating distinctive terminal-like appearance
  • Awards 3D Shine Effect: Replaced simple shine with sophisticated 3D effects matching chart quality - top highlight line with glow, animated diagonal sweep, enhanced 3D glow overlay with pulsing animation, multi-layer border shadows, and bottom accent glow
  • Experience Typography: Applied monospace font throughout experience section (company names, details, labels) while keeping role titles in regular sans font for better hierarchy
  • Case Study Icons: Changed all case study navigation icons from diagonal arrows (ArrowUpRight) to bottom chevrons (CaretDown) with downward animation instead of diagonal movement for consistent directional feedback
  • Carousel Indicators: Converted circular/pill indicators to square/rectangle shapes (rounded-none) for inactive states, maintaining rectangle for active state with proper spacing
  • Carousel Navigation: Enhanced Next/Previous buttons with larger size (px-5 sm:px-6 py-2.5 sm:py-3), thicker borders (border-2), larger icons (w-5 h-5 sm:w-6 sm:h-6), improved text size and hover states with primary color feedback
  • Brand Logos: Increased logo sizes across all brands (Sweat, Sweatcoin: h-8 sm:h-10 lg:h-12, Ailos: h-10 sm:h-12 lg:h-14, PremierSoft/PagueVeloz: h-7 sm:h-9 lg:h-11) and expanded container min-widths for better visibility
  • Chart Gradient Fix: Added fade-out mask and soft edge filter to CustomAreaChart gradient to eliminate flat cutoff, creating smooth radial fade at bottom edge
  • LinkedIn Integration: Added LinkedIn links to Contact dropdowns in both web navbar and mobile TabBar, positioned below contact forms with proper styling
  • Hyperlink Fixes: Updated all social links in Footer with working URLs (LinkedIn and GitHub profiles) and proper target/rel attributes for security
  • Footer Spacing: Increased padding between copyright text and Back to Home button (mb-6 sm:mb-8) for better visual separation
  • Timeline Dot Alignment: Adjusted green circle position from top-[19px] sm:top-[22px] to top-[13px] sm:top-[14px] to perfectly align with version badge center line
  • Floating INDEX Buttons: Repositioned both TableOfContents and ChangelogIndex to bottom-right (bottom-24 right-6) with proper vertical stacking (8-unit gap)
  • Settings Menu Order: Reorganized settings menu hierarchy - moved Language and Grid Highlight to end, prioritizing Theme, Theme Color, Sans Font, and Mono Font
v3.9.1
December 26, 2025 at 18:30

UI Refinements: Hero Typography, Navigation Alignment & Settings Reorganization

Refined hero section typography with precise DESIGNER badge alignment and optimized line spacing for better visual balance. Fixed footer back button visibility and improved floating INDEX buttons positioning for center-right alignment on desktop. Reorganized settings menu hierarchy by moving Language and Grid Highlight to the end, prioritizing core visual customization options.

  • Hero Typography: Adjusted DESIGNER badge vertical position by 1px for perfect alignment with surrounding text. Reduced title line-height from 1.05 to 1.0 for tighter, more professional spacing
  • Footer Back Button: Fixed back button visibility issue by removing conditional rendering. Button now always appears in footer below copyright information with proper anchor link to hero section
  • Floating INDEX Buttons: Repositioned both TableOfContents and ChangelogIndex floating buttons to center-right alignment on desktop. Buttons are now vertically centered and stacked with proper spacing (80px gap)
  • Settings Menu Reorganization: Moved Language toggle and Grid Highlight slider to the end of settings menu in both web and mobile views. New order prioritizes Theme, Theme Color, Sans Font, and Mono Font before advanced options
  • Visual Consistency: Improved overall UI consistency with better alignment, spacing, and logical information hierarchy across navigation and configuration panels
v3.9.0
December 26, 2025 at 18:00

Tailwind CDN Configuration & Global Font System Fixes

Fixed Tailwind CSS CDN setup by restoring full configuration inline script. Enhanced font change handlers to apply globally across all elements, not just specific classes. Fixed missing state declarations in navigation components. Improved font switching to work reliably with comprehensive CSS injection targeting body, html, and all elements.

  • Tailwind CDN Restoration: Restored complete Tailwind configuration inline script with all theme extensions, animations, keyframes, background images, box shadows, and custom utilities. CDN now properly reads full config for development
  • Global Font Application: Enhanced mono and sans font change handlers to apply fonts globally using wildcard selectors. Mono fonts now apply to code, pre, kbd, samp, and all font-mono classes. Sans fonts apply to body, html, root, and all non-mono elements
  • State Management Fixes: Added missing state declarations (isMonoFontOpen, isSansFontOpen, currentSansFont) in MobileTabBar and Navbar components. Added themeColors, monoFonts, and sansFonts constants to Navbar
  • Font Persistence: Improved font loading from localStorage to ensure saved fonts are applied on page load. Font changes now persist correctly across sessions
  • CSS Variable Integration: Updated font handlers to properly set CSS variables (--font-mono, --font-sans) and inject dynamic styles with !important flags for reliable application
  • System Font Support: Added proper handling for system fonts (monospace, sans-serif, system-ui) without quotes in font-family declarations
v3.8.9
December 26, 2025 at 18:00

Typography System: Font Selectors & JetBrains Mono Default

Implemented comprehensive font selection system with dropdown menus for both sans-serif and monospace fonts. Changed default mono font to JetBrains Mono. Added 33 monospace font options and 23 sans-serif font options from Google Fonts. Reorganized web navbar to match mobile TabBar pattern with Settings and Contact dropdowns. Updated navigation sequence to Impact → Work → Philosophy.

  • Font Selectors: Converted mono font selector from vertical list to dropdown menu with 33 options including JetBrains Mono, Azeret Mono, Geist Mono, Fira Code, Source Code Pro, and system fonts
  • Sans Font Selector: Added new sans-serif font selector with 23 options including Inter, Geist Sans, Google Sans, Roboto, Open Sans, Poppins, and system fonts
  • Default Font Change: Changed default monospace font from Azeret Mono to JetBrains Mono across all components and configuration files
  • Web Navbar Reorganization: Moved language toggle and theme toggle into Settings dropdown. Converted Contact button to dropdown with inline form. Added Config button to navbar
  • Navigation Sequence: Reordered nav items to Impact → Work → Philosophy for better content flow
  • Font Persistence: Both sans and mono font selections are saved to localStorage and persist across sessions
  • Dynamic Font Loading: Fonts are dynamically applied via CSS injection, updating both CSS variables and Tailwind classes
v3.8.8
December 26, 2025 at 18:00

Design System Refinement & Mobile UX Improvements

Refined design system consistency by removing border radius from all interactive elements (buttons, inputs, toggles, color swatches) to match the website's no-rounded aesthetic. Added elegant cursive signature to About section for personal touch. Enhanced mobile contact form with proper zoom-out behavior after interaction. Improved active section detection in Contents dropdown for both desktop and mobile.

  • Design System Consistency: Removed all border radius from buttons, inputs, toggles, and theme color swatches. All elements now use square corners (rounded-none) matching website aesthetic
  • Cursive Signature: Added elegant "William Finger — Product Designer" signature in Dancing Script font to About section with subtle rotation and animation
  • Mobile Zoom Fix: Contact form inputs now properly zoom out when tapping outside or after sending message, preventing stuck zoom state on mobile devices
  • Active Section Detection: Enhanced Contents dropdown (both desktop and mobile) to properly highlight active sections including Impact Metrics when scrolling
  • Theme Controls: Made toggle switches and color swatches square to match design system. Toggle track and thumb are now square instead of rounded
  • Contact Dropdown: Converted Contact modal to dropdown matching Settings and Contents style. Includes email and message form with proper validation
  • Portfolio Navigation: TabBar Contents button changes to Portfolio link on Timeline page, providing easy navigation back to home
  • Chart Animations: Fixed case study bar charts to properly animate with sequential delays and proper height calculations matching landing page charts
v3.8.7
December 26, 2025 at 18:00

Mobile TabBar, Chart Alignment & Configuration Enhancements

Implemented a unified mobile TabBar that combines all navigation and settings in a single bottom bar, eliminating overlap issues. Fixed chart vertical alignment to ensure all metrics cards have equal heights on desktop. Enhanced configuration panel with theme colors, grid controls, and improved UX. Hidden top navbar on mobile for cleaner interface.

  • Mobile TabBar: Created unified bottom navigation bar for mobile/tablet with Contents, Timeline, Contact, and Settings. Includes scroll-based hide/show behavior matching navbar aesthetic
  • Chart Alignment Fix: Standardized all metric card heights using flex-1, min-heights, and auto-rows-fr grid. First chart now same height as others despite spanning 2 columns
  • Configuration Panel: Added theme color picker (5 colors), grid highlight toggle with brightness slider, language and theme toggles. All controls in single dropdown
  • Click-Outside Handling: Added proper touch/click outside detection to close config and TOC dropdowns on mobile
  • Theme Color Selection: Fixed checkmark display on color selection using state management instead of computed styles
  • Navbar Visibility: Hidden top navbar on mobile (< 1024px) since TabBar handles all navigation. Navbar only shows on tablet/desktop
  • Responsive Improvements: TabBar appears at bottom on mobile with blur background, border, and scroll behavior matching navbar design
  • Grid Layout: Changed from xl:grid-cols-4 to xl:grid-cols-5 to accommodate first chart spanning 2 columns while maintaining equal heights
v3.8.6
December 26, 2025 at 18:00

Code Architecture: Component Splitting & Type Safety

Refactored large monolithic components into smaller, focused modules for better maintainability and code organization. Split ImpactDashboard (739 lines) into four separate chart components, and Layout (746 lines) into BackgroundGrid, Navbar, and Footer. Improved type safety by creating proper Framer Motion type definitions. This architectural improvement makes the codebase more scalable and easier to maintain.

  • ImpactDashboard Split: Extracted CustomAreaChart, DotMatrixChart, RevenueStackChart, and EfficiencyChart into components/charts/ directory. Reduced ImpactDashboard from 739 lines to ~160 lines
  • Layout Component Split: Extracted BackgroundGrid into components/BackgroundGrid.tsx, Navbar into components/navigation/Navbar.tsx (with HamburgerIcon and animation variants), and Footer into components/navigation/Footer.tsx. Reduced Layout from 746 lines to ~20 lines
  • Type Safety Improvements: Created lib/motion-types.ts with proper HTMLMotionProps and SVGMotionProps types for better type safety when explicitly typing Motion component props
  • Code Organization: Improved project structure with dedicated directories (components/charts/, components/navigation/) for better maintainability
  • Documentation: Added comments explaining when `as any` is necessary due to Framer Motion type system limitations
  • Build Verification: All changes tested and verified with successful production builds
v3.8.5
December 26, 2025 at 18:00

Changelog Index, Responsive Improvements & Mobile Visibility

Added a comprehensive changelog index dropdown for easy navigation through version history. Fixed all responsive breakpoints and vertical alignment inconsistencies across the Timeline page. Enhanced mobile visibility with proper font sizes, touch targets, and link colors. Applied monospace font throughout changelog content for consistent technical aesthetic.

  • ChangelogIndex Component: Created a new dropdown index component similar to TableOfContents, showing all versions with dates and types. Includes scroll-based active version highlighting and smooth scrolling navigation to entries
  • Date Updates: Updated all January 2026 dates to December 2025 with specific days (Dec 20-24) to reflect actual development timeline
  • Monospace Font Application: Applied font-mono to all changelog text (descriptions, change lists) except titles, creating consistent technical aesthetic throughout
  • Vertical Alignment Fixes: Fixed timeline dot alignment with content start, improved change list icon alignment with text baseline, standardized spacing throughout
  • Responsive Breakpoints: Added md: breakpoints throughout, standardized gap/padding scales, improved typography responsive scaling across all screen sizes
  • Mobile Visibility: Increased font sizes on mobile (minimum 12px for body text), improved button touch targets (44px minimum), larger icons on mobile for better visibility
  • Link Colors: Changed all grey links (text-foreground/60, text-foreground/70) to white/foreground color (text-foreground/90) for better visibility and contrast
  • ChangelogIndex Responsive: Improved button positioning, dropdown width scaling (w-56 mobile, w-64 tablet, w-72 desktop), responsive text sizing and padding
v3.8.4
December 26, 2025 at 18:00

Graph Theme Compatibility, Responsive Improvements & Hero Enhancement

Fixed all graph components to work perfectly in both light and dark themes by replacing hardcoded white colors with semantic color tokens. Enhanced responsiveness across Performance Metrics section and improved Hero section for clarity and professionalism.

  • Graph Theme Compatibility: Replaced all hardcoded white colors in ImpactDashboard graphs with semantic color tokens (--foreground, --card-foreground). CustomAreaChart inner highlight now uses hsl(var(--card-foreground)). RevenueStackChart and EfficiencyChart highlights now use foreground/opacity instead of white/opacity for proper theme adaptation
  • Grid Background Theme Fix: Updated BackgroundGrid to use hsl(var(--foreground) / opacity) instead of hardcoded rgba(255, 255, 255, ...), ensuring grid lines are visible in both light and dark themes
  • Performance Metrics Responsiveness: Improved grid layout with better breakpoints (sm:grid-cols-2 lg:grid-cols-2 xl:grid-cols-4). Enhanced card padding, spacing, and typography scaling across all screen sizes. Added responsive min-heights for chart containers and improved icon sizing
  • Experience Section Layout: Redesigned experience entries with larger fonts (text-xl to text-3xl for company names), reduced vertical spacing, and inline detail layout. Increased horizontal padding and centered content with max-width constraint for better readability
  • Awards Section Enhancement: Added icons (Trophy, Medal, Star) to award cards with rotation based on index. Implemented subtle grid pattern background and glare hover effects for visual interest
  • Metrics Typography: Increased font sizes for both main ImpactDashboard metrics (text-4xl to text-7xl) and secondary AboutSection metrics (text-2xl to text-5xl) for better prominence
  • Theme Toggle Icon Size: Increased Sun/Moon icon size from h-5 w-5 to h-6 w-6 in both desktop navbar and mobile menu for better visibility
v3.8.3
December 26, 2025 at 16:00

Contact Modal, Modal Management & Table of Contents Improvements

Added a professional contact modal with email and message fields, implemented centralized modal state management to prevent overlap, and enhanced the Table of Contents with Hero section detection and cleaner UI. Completed PT-BR translations for all content including the Astraly Labs case study.

  • Contact Modal: Created a new ContactModal component with email and message input fields. Modal opens mailto link with pre-filled subject and body. Includes success/error states, keyboard support (Escape to close), and responsive design matching the site's aesthetic
  • Modal Context: Implemented ModalContext to manage which modal is active across the application. Ensures only one modal (Contact, Config dropdown, or TOC dropdown) can be open at a time, preventing visual overlap
  • Z-Index Hierarchy: Established clear z-index hierarchy - ContactModal (z-60) > TableOfContents (z-45) > FloatingConfigButton (z-40). Other modals automatically lower their z-index when contact modal is open
  • Table of Contents Enhancements: Added "Hero" as the first item in the TOC. Improved active state detection to show Hero as active when user is at the top of the page (scrollY < 100). Removed "Contents" title header from both full TOC view and dropdown menu for cleaner UI
  • PT-BR Translations: Completed Portuguese translations for the Astraly Labs case study, including full description, strategies, and impact table. All content from the CRM document is now fully translated
  • Layout Integration: Updated Layout.tsx to use ContactModal instead of direct mailto links. Contact button in navbar (both desktop and mobile) now opens the modal
  • Type Safety: Added contactModal interface to types.ts with all required UI strings for both English and Portuguese
v3.8.2
December 26, 2025 at 14:00

Content-First Redesign & Scroll-Based Focus Effects

Comprehensive redesign removing repetitive OS metaphors in favor of clean, content-first visual language. Enhanced typography and spacing throughout for better readability. Implemented scroll-based fade effects across all sections to create focus and engagement. Improved case study pages with newspaper-style typography and consistent graph styling.

  • Section Redesign: Removed all repetitive OS/file metaphors (SYSTEM_MONITOR.md, ACHIEVEMENT_SYSTEM.md, etc.) and unnecessary status indicators. Each section now uses a visual language that matches its content meaning
  • Typography Overhaul: Significantly increased font sizes across Awards and Core Competencies sections. Awards titles now scale from text-xl to text-4xl, descriptions from text-sm to text-lg. Core Competencies category headers scale from text-xl to text-3xl with larger icons
  • Spacing Improvements: Increased section padding (py-12 to py-20), card padding (p-8 to p-16), and grid gaps throughout for better breathing room and professional appearance
  • Scroll-Based Focus Effects: Changed all sections from once: true to once: false, enabling fade in/out effects when scrolling. Sections now disappear when scrolled away and reappear when scrolled back, creating a focused reading experience
  • Case Study Enhancements: Improved section 01 typography with newspaper/Kindle-style readability (text-2xl to text-4xl). Fixed bar chart styling to match landing page graphs (consistent green color, proper badge styling). Added grid background to case study pages
  • Awards Section Prominence: Restored larger fonts and generous white spacing. Year badges, titles, organizations, and descriptions all significantly increased in size for better visibility
  • Core Competencies Enhancement: Made category headers more prominent with larger icons (w-16 h-16), icon backgrounds, and bigger fonts. Skills list uses larger text (text-sm to text-lg) with better contrast
  • Navigation Improvements: Fixed TOC and Config button positioning - both now stack vertically in same spot (bottom right), with TOC above Config. TOC button now opens/closes on hover like Config button
  • Hero Title Alignment: Fixed vertical alignment of title lines with consistent leading-none and proper spacing
  • Professional Experience: Added full-width dividers between experience entries for better visual separation
  • Core Competencies Dot Alignment: Fixed dot alignment to first line when skill names span multiple lines using flex items-start
  • Blur Background Consistency: Applied same blur effect (bg-background/40 backdrop-blur-sm) to Navbar mobile menu and LogoStrip section for visual consistency
v3.8.1
December 26, 2025 at 12:00

Graph Alignment, Styling Consistency & UI Refinements

Fixed graph alignment and sizing inconsistencies, standardized styling semantics across all graphs, refined Table of Contents with better scroll detection, and enhanced floating config button with proper hover behavior and component semantics.

  • Graph Alignment: Removed padding and max-width constraints from all graphs to ensure consistent sizing. Changed chart containers to use flex-1 for proportional space allocation
  • Graph Styling Consistency: Updated first graph (CustomAreaChart) to use CSS variables (hsl(var(--primary))) instead of hardcoded HSL values, ensuring theme color changes apply correctly
  • Label Badge Styling: Changed first graph label badge to match other graphs - using bg-foreground/10 border border-primary/20 text-primary for consistency
  • SVG Gradient Fix: Fixed SVG gradient opacity syntax to use stopOpacity attributes instead of CSS opacity syntax (which doesn't work in SVG)
  • Table of Contents: Made TOC more subtle with reduced opacity, smaller text, cleaner styling. Replaced scroll event listener with IntersectionObserver API for reliable section detection
  • TOC Order Fix: Corrected TOC item order to match actual page structure - Impact Metrics first, then Selected Works, Philosophy, etc.
  • Config Button Enhancement: Updated floating config button to use Button component from ui.tsx for consistency. Increased size to w-14 h-14. Added hover-to-open behavior on desktop with proper delay for moving between button and dropdown
  • Mobile Config Behavior: Implemented tap-to-toggle on mobile devices, with tap-outside-to-close functionality using both mousedown and touchstart events
  • Component Semantics: All changes now use existing UI components and follow established design patterns
v3.8.0
December 26, 2025 at 10:00

Floating Configuration Panel & Notion-Style Table of Contents

Added a professional floating configuration button with dropdown menu for grid highlight controls and theme color selection. Implemented a Notion-style table of contents for better navigation. Moved changelog link from main menu to the configuration dropdown for cleaner navigation.

  • Floating Config Button: Added a right-side floating button with dropdown menu containing grid highlight controls (toggle and intensity slider) and theme color selector
  • Theme Color Selector: Implemented 5 preset theme colors (Green, Blue, Purple, Orange, Cyan) with visual color picker and localStorage persistence
  • Grid Highlight Context: Created GridHighlightContext for managing grid highlight settings with localStorage persistence
  • Table of Contents: Added Notion-style TOC component on the right sidebar that shows active section and allows smooth scrolling navigation
  • Navigation Cleanup: Removed timeline/changelog link from main navigation menu and moved it to the configuration dropdown
  • Section Tracking: TOC automatically highlights the current section based on scroll position
  • Responsive Design: TOC only shows on desktop (lg breakpoint) and config button is always accessible
  • User Experience: All configuration settings persist across sessions using localStorage
v3.7.5
December 26, 2025 at 08:00

Sequential Circle Animation & Graph Style Refinements

Enhanced graph animations with sequential circle appearance in the area chart, creating a more deliberate and engaging reveal. Refined graph styles to match the 3D aesthetic with proper gradient fills and improved visual consistency across all charts.

  • Sequential Circle Animation: Updated CustomAreaChart data points to appear one by one sequentially (0.8s delay between each) instead of rapid-fire appearance. Each circle now fully animates in before the next begins, creating a more intentional and polished reveal.
  • Graph Style Consistency: Applied bright gradient style from purple vertical bar to orange horizontal bar in EfficiencyChart. Both bars now use matching gradient aesthetics (purple: vertical, orange: horizontal) with consistent glow effects.
  • Gradient Direction: Maintained vertical gradient (top-to-bottom) for purple bar in RevenueStackChart, applied horizontal gradient (left-to-right) for orange bar in EfficiencyChart, preserving visual distinction while maintaining style consistency.
  • Animation Timing: Sequential delays calculated as baseDelay + (index * 0.8s), ensuring each circle completes its 0.5s entrance animation before the next begins, with proper buffer time for visual clarity.
  • Visual Polish: All pulse rings and glow effects maintain their continuous animations, now properly sequenced to create a cascading reveal effect that guides the eye along the data trend line.
v3.7.4
December 26, 2025 at 08:00

Chart Animation Overhaul & Performance Fixes

Complete overhaul of all chart animations to ensure proper loading and beautiful execution. Fixed lazy loading issues that prevented the site from loading properly. Enhanced all chart components with better gradients, glow effects, and animation triggers.

  • Animation Trigger Fixes: Implemented proper state management (hasAnimated) to persist animations once triggered, preventing remounting issues. Optimized viewport margins for better trigger timing.
  • CustomAreaChart Enhancement: Added enhanced multi-stop gradients (4 stops), SVG glow filter for line, dual pulse rings on data points, inner white highlights, improved label styling with shadow glow, smoother path animation (1.8s duration).
  • DotMatrixChart Enhancement: Improved wave animation timing (25ms intervals), enhanced glow effects with dual shadows, proper state persistence, all 35 active dots now animate correctly.
  • RevenueStackChart Enhancement: Enhanced gradients for active bar, stronger glow effects (dual shadow layers), better top highlight and inner shine, improved label animations with staggered delays.
  • EfficiencyChart Enhancement: Enhanced comparison bars with better gradients, improved energy trail animation, better badge styling with shadow glow, smoother progress bar animation.
  • Lazy Loading Fix: Fixed React.lazy() import for ImpactDashboard named export. Component now properly loads on-demand with correct Suspense fallback.
  • Performance: Proper TypeScript refs, state management prevents animation resets, optimized viewport detection, better easing curves for smoother animations.
  • Build Optimization: ImpactDashboard now properly code-split into separate chunk (11.99 kB / 3.23 kB gzipped) for better initial load performance.
v3.7.3
December 26, 2025 at 08:00

Background Grid Glow Animation & Header Glow Removal

Removed glow effects from header logo and hero section. Implemented a scroll-based blueprint-style grid glow animation that follows the viewport center as users scroll. The glow effect is subtle and only appears on grid lines in the center area, creating a dynamic blueprint aesthetic.

  • Header Glow Removal: Removed glow-enhanced class from header logo, keeping only shadow-depth effects for subtle depth.
  • Blueprint Grid Glow: Created scroll-based glow animation system that tracks viewport center position. Glow follows scroll position smoothly using CSS mask-image with radial gradients.
  • Grid Glow Implementation: Added two glow layers - major grid (128px) and minor grid (32px) - both with subtle primary green glow that intensifies at grid line intersections.
  • Scroll Tracking: Implemented React state and scroll event listeners to track scroll position and viewport height. Glow center position calculated as scrollY + viewportHeight / 2.
  • Fixed Position Grid: Changed grid from absolute to fixed positioning to ensure it stays in place during scroll while glow moves.
  • Glow Masking: Used CSS mask-image with radial gradient ellipses to create smooth glow falloff. Major grid uses 800px radius, minor grid uses 600px radius.
  • Performance Optimization: Added will-change: mask-position for better animation performance. Used passive scroll listeners for optimal scroll performance.
  • Color System: Glow colors use CSS variables (hsl(var(--primary))) for proper theme support. Glow intensity set to 0.2 for subtle effect.
  • Visual Polish: Glow only appears on grid lines (horizontal and vertical), creating a clean blueprint aesthetic without overwhelming the content.
v3.7.2
December 26, 2025 at 08:00

Changelog Color Enhancement: Visual Type Differentiation

Added comprehensive color coding to the changelog timeline to make it more visually engaging and easier to scan. Major releases use primary green, feature updates use accent blue, and patches use neutral gray. Enhanced legend with colored dots, timeline entries with type-based colors, and interactive hover states.

  • Legend Colors: Updated legend with colored dots - Major Release (primary green with glow), Feature Update (accent blue with glow), Patch (neutral gray). Added hover scale effects to legend items.
  • Timeline Dots: Colored timeline dots based on entry type - major (primary green with glow), minor (accent blue with glow), patch (neutral gray). Added shadow-glow effects for major and minor entries.
  • Timeline Lines: Gradient timeline lines based on type - major (primary gradient), minor (accent blue gradient), patch (neutral border).
  • Badge Colors: Type-based badge colors - major (primary green), minor (accent blue), patch (neutral). Added hover scale effects.
  • Title Colors: Entry titles colored by type - major (primary green), minor (accent blue), patch (foreground).
  • Change List Icons: GitCommit icons colored by type with hover effects. Major entries use primary green, minor use accent blue, patches use neutral gray.
  • Entry Hover States: Added subtle background color on hover based on type - major (primary/5), minor (accent-blue/5), patch (foreground/5).
  • Interactive Elements: All colored elements have smooth transitions and hover states for better interactivity.
  • Visual Hierarchy: Clear visual distinction between entry types makes the changelog easier to scan and understand at a glance.
v3.7.0
December 26, 2025 at 08:00

Semantic Color System: Complete CSS Variable Migration

Replaced 100% of hard-coded colors with semantic CSS variables to ensure proper light and dark mode support. All bg-white, text-white, bg-black, and rgba/hex values have been replaced with semantic tokens that automatically adapt to theme changes.

  • Color System Migration: Replaced all hard-coded colors (bg-white, text-white, bg-black, border-white, rgba values, hex codes) with semantic CSS variables (bg-foreground, text-foreground, bg-card, bg-background, border-border)
  • Component Updates: Updated all components (Home, CaseStudyDetail, Layout, ImpactDashboard, Testimonials, AboutSections, CoreCompetencies, EnhancedMetricCard, EnhancedStrategyCard, EcosystemDiagram, UserPersonaCard, ProcessFlowDiagram, RoadmapTimeline, ui) to use semantic color tokens
  • Tailwind Config: Replaced hard-coded rgba/hex values in tailwind.config.js with CSS variables (grid-pattern, gradient-card, gradient-overlay, box shadows)
  • CSS Variables: Fixed all hard-coded rgba values in index.html CSS variables section (gradient-glass, gradient-shine, gradient-card-overlay, glass-bg, glass-border, glass-highlight)
  • Light/Dark Mode: Ensured all CSS variables are properly defined for both light and dark modes in :root and .light selectors
  • Selection Colors: Updated selection:text-black to selection:text-primary-foreground for proper theme support
  • Build Verification: Build successful, all colors now use semantic variables
v3.7.1
December 26, 2025 at 08:00

Iconography Enhancement & Font Update: Inter Font & Comprehensive Icon Integration

Added comprehensive iconography throughout the site to make it more visually engaging and alive. Replaced Geist font with Inter as the main sans-serif font. Added icons to navigation, section headers, metric cards, buttons, testimonials, and various interactive elements.

  • Font Update: Replaced Geist font with Inter as the main sans-serif font. Updated font imports in index.html, tailwind.config.js, and CSS body styles.
  • Section Header Icons: Added automatic icon mapping for section badges (portfolio→Code, philosophy→Sparkle, impact→TrendUp, experience→Briefcase, awards→Medal, skills→Target, testimonials→Star). Icons appear alongside badges in both technical and human variants.
  • Navigation Icons: Added icons to all navigation items (Work→Briefcase, Philosophy→Sparkle, Impact→TrendUp, Timeline→Clock) in both desktop and mobile menus.
  • Metric Card Icons: Added contextual icons to metric cards in About section based on metric type (product→Rocket, experience→Clock, retention→TrendUp, revenue→Star, compliance→CheckCircle, engagement→Users).
  • Enhanced Metric Cards: Added contextual icons to case study metric cards based on metric content (growth/retention→TrendUp, engagement/users→Target, revenue/liquidity→Star, partners/testers→Rocket).
  • Button Icons: Enhanced button components to support icons with proper spacing. Added gap-2 to beam button content for icon integration.
  • Case Study Icons: Added icons to section numbers (01→Target, 02→ChartLine, 03→TrendUp) and impact summary header (TrendUp icon).
  • Footer Icons: Added Globe icon to "Connect" label and Briefcase icon to footer role label.
  • Experience Section: Enhanced icon sizes (w-3.5→w-4) for better visibility in experience table entries.
  • Testimonials: Added Star and Quote icons to imports for future enhancements.
  • Interactive Elements: Added hover animations to icons in links and buttons (translate-x, translate-y effects).
  • Build Verification: Build successful, all icons properly integrated with Phosphor Icons library.
v3.6.9
December 26, 2025 at 08:00

Icon System Migration: Replaced Lucide Icons with Phosphor Icons

Migrated entire project from Lucide React to Phosphor Icons for a more consistent and modern icon system. All icons have been replaced with Phosphor equivalents, maintaining visual consistency while improving icon quality and customization options.

  • Icon Library Migration: Replaced lucide-react with @phosphor-icons/react throughout the entire project. Removed lucide-react dependency and updated all imports.
  • Icon Name Mappings: Updated all icon names to Phosphor equivalents - CheckCircle2 → CheckCircle, Building2 → Building, TrendingUp → TrendUp, TrendingDown → TrendDown, Zap → Lightning, Sparkles → Sparkle, Quote → Quotes, Activity → Pulse, Award → Medal, Mail → Envelope, Github → GithubLogo, Linkedin → LinkedinLogo, Smartphone → DeviceMobile.
  • Icon Props: Updated icon props from strokeWidth to weight prop (Phosphor uses weight="regular" instead of strokeWidth). Removed strokeWidth attributes from all icon components.
  • Build Configuration: Updated vite.config.ts to use @phosphor-icons/react in ui-vendor chunk instead of lucide-react. Removed lucide-react from index.html imports.
  • Files Updated: Layout.tsx, Home.tsx, ImpactDashboard.tsx, Testimonials.tsx, AboutSections.tsx, CoreCompetenciesSection.tsx, CaseStudyDetail.tsx, Philosophy.tsx, Timeline.tsx, EnhancedStrategyCard.tsx, EnhancedMetricCard.tsx
  • Visual Consistency: All icons maintain the same visual appearance and sizing, ensuring no visual regressions during migration
v3.6.8
December 26, 2025 at 08:00

UI Optimization: Bento Grid Executive Summary, Compact Next Case Study & Chart Fixes

Redesigned Executive Summary as a modern bento grid with improved typography hierarchy. Made Next Case Study section more compact and responsive. Fixed all chart animations and visual issues including DAO VOTERS colored squares, USERS SERVED Q4 bar glow, and Growth Trajectory animations.

  • Executive Summary Bento Grid: Redesigned sidebar metrics as a 2-column bento grid with varied card sizes. First and last cards span full width for visual interest. Improved typography with larger result values (text-2xl to text-5xl) and better hierarchy.
  • Next Case Study Compact: Reduced section height from py-20 sm:py-28 lg:py-40 to py-12 sm:py-16 lg:py-20. Changed padding from p-8 sm:p-12 md:p-16 lg:p-24 to p-4 sm:p-6 md:p-8. Made image compact (w-24 md:w-32 lg:w-40) with fixed aspect ratio. Reduced font sizes and spacing throughout.
  • Chart Fixes: Fixed DotMatrixChart (DAO VOTERS) - increased active dots to 35, added glow effects, increased max width. Fixed RevenueStackChart (USERS SERVED) - removed pulsing animation from Q4 bar, added static gradient and glow effects. Enhanced Growth Trajectory charts in case studies with proper animations and static glows.
  • Typography Improvements: Applied Geist font as main sans-serif font throughout. Standardized monospace fonts across all interactive elements. Enhanced font sizes and hierarchy in Executive Summary bento grid.
  • Experience Section Table: Redesigned Professional Experience as compact table layout with header row and efficient space usage. Removed timeline dots and vertical lines for cleaner appearance.
  • Awards Section List: Redesigned as polished list with single icon header, removed duplicate icons from each card, improved spacing and typography hierarchy.
  • Core Competencies Clean: Removed all card backgrounds and borders, removed skill tag borders/backgrounds, cleaner icon display without containers, improved spacing
v3.6.7
December 26, 2025 at 08:00

UI Refinement: Simplified Hover Effects, Typography Enhancement & Animation Fixes

Simplified all hover interactions to a clean glare effect, enhanced typography hierarchy across testimonials and interactive elements, fixed graph animations to properly re-trigger, and standardized monospace fonts across all UI elements for consistent technical aesthetic.

  • Hover Effects Simplification: Removed all complex hover effects (border glows, color changes, shadows, transforms) from case study cards, testimonials, contact form, and enhanced components. Replaced with simple glare overlay effect (bg-gradient-to-br from-white/5 via-transparent to-transparent)
  • Monospace Font Standardization: Applied font-mono to all footnotes, tags, pills, badges, buttons, links, and footer elements. Updated Badge component, Footer labels, case study tags, user persona tags, core competencies tags, and all navigation elements
  • Graph Animation Fixes: Changed useInView once: true to once: false for all chart components (CustomAreaChart, DotMatrixChart, RevenueStackChart, EfficiencyChart) to allow re-triggering. Added proper viewport margins (-100px) and key props for reliable animation state management
  • Testimonials Typography Overhaul: Removed quotation mark SVG icons, increased quote text size to text-lg sm:text-xl lg:text-2xl xl:text-3xl, enhanced company name to text-base sm:text-lg lg:text-xl with font-bold, increased author name to text-base sm:text-lg lg:text-xl, and improved spacing throughout
  • Icon & Avatar Sizing: Increased Building2, CheckCircle2, and User icons for better visibility. Enlarged avatar containers from w-12 h-12 to w-14 h-14 sm:w-16 sm:h-16 lg:w-20 lg:h-20
  • Animation Keys: Added key props to all animated elements based on isInView state to force proper re-renders when scrolling back into view
  • Easing Curves: Standardized all animation easing to [0.16, 1, 0.3, 1] for consistent professional motion
  • Component Updates: Updated EnhancedMetricCard, EnhancedStrategyCard, ContactForm, and all case study cards to use simplified glare hover effect
v3.6.6
December 26, 2025 at 08:00

Manifesto Style Integration: Technical Aesthetic & Design System

Integrated the Manifesto blog design essence into the portfolio, including JetBrains Mono typography, technical aesthetic elements, semantic color tokens, and professional motion curves. All hard-coded colors replaced with CSS variables for maintainability.

  • Typography: Added JetBrains Mono font import and updated mono font family across Tailwind config and inline config
  • Tabular Numbers: Added font-variant-numeric: tabular-nums to body styles for consistent number spacing
  • Semantic Color Tokens: Added --success, --warning, --info, --accent-blue, --accent-purple, --accent-orange CSS variables with dark/light mode variants
  • Color System: Replaced ALL hard-coded colors (hex, rgb, hsl, rgba) with CSS variables - theme-color, grid patterns, shadows, gradients, glass effects
  • Tailwind Config: Added semantic color tokens (success, warning, info, accent-blue, accent-purple, accent-orange) to Tailwind config
  • Motion Curves: Added professional motion curve (cubic-bezier(0.16, 1, 0.3, 1)) as ease-spring and 400ms transition duration
  • Theme Switching: Added no-transitions utility class to prevent "grey sludge" during theme changes
  • Technical Labels: Added Manifesto-style technical labels (SYSTEM_STATUS, PARTNER_LOG, TIMELINE_ENTRY) with monospace font and tabular numbers
  • Border Accents: Implemented left border accent lines for major sections (SectionHeader, Hero) matching Manifesto aesthetic
  • Component Updates: Updated SectionHeader with technical badge styling, Impact Dashboard with tabular numbers, Experience Timeline with technical labels
  • Color Replacements: Replaced text-blue-500, text-purple-500, text-orange-500 with semantic token classes, hard-coded rgba in GlowText with CSS variables
v3.6.5
December 26, 2025 at 08:00

UI Consistency: Professional Style Standardization

Standardized UI essence and professional styling across all related sections (Testimonials, LogoStrip, AboutSection, ExperienceSection, AwardsSection, CoreCompetenciesSection) to ensure cohesive design language and consistent visual hierarchy.

  • SectionHeader Standardization: All sections now use technical variant with consistent badge/title/description styling and left alignment
  • Spacing Consistency: Standardized section spacing to py-20 sm:py-28 lg:py-40 and consistent border-t border-border for visual separation
  • Card Styling Unification: Applied consistent card styling across all sections - unified borders, hover effects (gradient borders, inner shadows), shadows (shadow-depth-1 to shadow-depth-3), and card-lift animations
  • Color Consistency: Removed green accents from secondary metrics (changed from text-primary to text-foreground), standardized icon colors to neutral foreground, removed green gradient line from LogoStrip
  • Typography Standardization: Consistent font sizes, weights, tracking, and line heights across all sections for professional hierarchy
  • Animation Consistency: Standardized animation variants (premiumReveal, staggerContainer), durations (500-700ms), and easing curves across all sections
  • Hover Effects: Unified hover states with gradient borders, subtle background overlays, inner shadows, and consistent transition durations
  • Visual Polish: Enhanced Testimonials cards with verified badge styling, improved avatar borders, and consistent footer separators
v3.6.4
December 26, 2025 at 08:00

Landing Page Reorganization: CRM Sequence Alignment & Content Completion

Reorganized the homepage sections to match the exact sequence specified in the CRM document. All existing content was preserved and placed in the correct order. Completed missing CRM content including full experience timeline and tools list.

  • Section Reordering: Reorganized homepage to match CRM core sequence - Hero → ImpactDashboard (Metrics Banner) → Selected Works → Philosophy Pillars → Testimonials Carousel
  • Content Preservation: Kept all existing sections (LogoStrip, AboutSection, ExperienceSection, AwardsSection, CoreCompetenciesSection) and placed them after the core CRM sequence
  • Experience Timeline Completion: Added missing experience entries from CRM Part V - Cetelbras Educational (2017-2018) and PremierSoft (2012-2013) to match complete CRM timeline
  • Tools List Completion: Added "Principle" to tools list in Core Competencies to match CRM Part V complete tools list
  • CRM Alignment: Verified all CRM content is present - Part I (Identity), Part II (Metrics), Part III (Philosophy), Part IV (Case Studies), Part V (Experience/Competencies), Part VI (Testimonials/Awards)
  • Content Verification: Confirmed bio matches CRM Part I "Who I Am", experience timeline matches CRM Part V (all 8 entries), awards match CRM Part VI, and competencies match CRM Part V
  • No Duplicates: Verified no duplicate content exists across sections
  • Contact CTA: Removed Contact CTA section per user request (contact information not displayed on homepage)
v3.6.3
December 26, 2025 at 08:00

Testing Infrastructure: Vitest & Playwright Setup

Added comprehensive testing infrastructure with Vitest for unit/integration tests and Playwright for E2E tests. Created test setup files, example tests for components and utilities, and E2E tests for critical user flows. Updated documentation with testing guidelines.

  • Vitest Setup: Installed Vitest with React Testing Library, configured vite.config.ts with jsdom environment, created tests/setup.ts with mocks for IntersectionObserver, ResizeObserver, and matchMedia
  • Unit Tests: Created Button component tests (variants, sizes, interactions), utils.test.ts for cn utility, LanguageContext tests for language switching
  • Playwright Setup: Installed Playwright, configured playwright.config.ts with multiple browsers (Chrome, Firefox, Safari) and mobile devices, set up webServer for dev server integration
  • E2E Tests: Created home.spec.ts (hero section, navigation, impact dashboard), navigation.spec.ts (timeline, language toggle, case studies), case-studies.spec.ts (all case study pages, navigation)
  • Test Scripts: Added npm scripts for test, test:ui, test:coverage, test:e2e, test:e2e:ui, test:e2e:debug
  • Documentation: Created tests/README.md with testing guidelines, updated README.md and AGENTS.md with testing commands
  • Test IDs: Added data-testid="case-study-card" to CaseStudyCard component for E2E test targeting
  • Gitignore: Added coverage/, test-results/, playwright-report/ to .gitignore
v3.6.2
December 26, 2025 at 08:00

Hero CTAs & Testimonials Complete Overhaul

Completely redesigned Hero CTAs and Client Intelligence (testimonials) section with professional, clean styling. Replaced old beam button with new primary CTA design, redesigned testimonials cards with better formatting and spacing, and replaced poor quotation mark icon with custom SVG design.

  • Hero CTAs Redesign: Completely overhauled both Hero CTAs - replaced beam button variant with new primary button design featuring animated border effect, added arrow icons, improved hover states with shadow and translate effects
  • Primary CTA: New design with foreground background, inverted hover state, animated border gradient effect, and ArrowRight icon with hover animation
  • Secondary CTA: Redesigned outline button with improved hover states, ArrowUpRight icon with diagonal animation, and better visual hierarchy
  • Testimonials Section Overhaul: Completely redesigned testimonial cards - removed excessive hover effects, improved spacing and padding, better card layout with cleaner borders
  • Quote Icon Fix: Replaced poor Lucide Quote icon with custom SVG quotation marks - larger, cleaner design with better opacity and hover states
  • Card Formatting: Fixed card spacing (gap-6 sm:gap-8), improved padding (p-8 sm:p-10 lg:p-12), better typography hierarchy, cleaner author section layout
  • Visual Polish: Removed excessive glass effects and gradients, simplified hover states, improved readability and professional appearance
v3.6.1
December 26, 2025 at 08:00

Beam Button Overhaul & UI Consistency Audit

Completely redesigned the beam button effect for "Unfair advantages" button with a new, neat animated border effect. Replaced the previous CSS mask approach with a cleaner gradient flow animation and shine effect. Conducted comprehensive UI consistency audit across the entire site.

  • Beam Button Redesign: Completely removed old CSS mask-based beam effect and replaced with new animated gradient border using linear gradients with flow animation
  • New Beam Effect: Implemented smooth gradient flow animation (3s ease-in-out) with hover acceleration (1.5s), plus subtle shine sweep effect for premium feel
  • Clean Implementation: Removed all beam-border-mask CSS, replaced with beam-border-gradient and beam-shine classes for cleaner, more maintainable code
  • UI Consistency: Verified button variants, spacing, typography, and hover states across all components
  • Animation Refinement: New beam effect uses background-position animation for smoother, more performant rendering compared to previous conic-gradient spin approach
v3.6
December 26, 2025 at 08:00

Performance Optimization & SEO Enhancement

Comprehensive performance and SEO improvements including bundle optimization with code splitting, comprehensive meta tags (Open Graph, Twitter Cards), structured data (JSON-LD), analytics integration setup, and Web Vitals performance monitoring. Significantly improved bundle size distribution and search engine visibility.

  • Bundle Optimization: Implemented code splitting in vite.config.ts, separating React vendor (33KB), animation vendor (101KB), chart vendor, and UI vendor chunks, reducing main bundle from 500KB to 354KB
  • SEO Enhancement: Added comprehensive meta tags including Open Graph, Twitter Cards, canonical URLs, theme colors, and structured data (JSON-LD) for better search engine visibility
  • Analytics Integration: Created lib/analytics.ts with support for Google Analytics 4 and Plausible Analytics, including page view tracking and event tracking utilities
  • Performance Monitoring: Created lib/performance.ts with Web Vitals tracking (LCP, FID, CLS) and page load time monitoring, integrated with analytics
  • Font Optimization: Added preconnect hints for Google Fonts to improve font loading performance
  • Route Tracking: Integrated analytics page view tracking with React Router for automatic route change monitoring
v3.5.2
December 26, 2025 at 08:00

Technical Debt Cleanup: Remove Legacy API Key References

Cleaned up unused legacy template code by removing GEMINI_API_KEY references from vite.config.ts and README.md. Simplified Vite configuration by removing unused loadEnv and environment variable definitions, improving code clarity and reducing maintenance overhead.

  • Vite Config Cleanup: Removed unused loadEnv import and GEMINI_API_KEY environment variable definitions from vite.config.ts
  • README Update: Removed legacy GEMINI_API_KEY documentation, replaced with generic environment variable guidance for future use
  • Code Simplification: Simplified vite.config.ts by removing unused dependencies and environment variable processing
  • Maintenance Improvement: Reduced technical debt by removing unused legacy template code
v3.5.1
December 26, 2025 at 08:00

Layout Optimization: Footer & Case Study CTA Restructure

Restructured footer and case study pages for better user flow and visual hierarchy. Moved "Next Case Study" link to footer (compact, contextual), and relocated "Ready to build" CTA to case study detail pages with enhanced prominence, case study image, and improved layout.

  • Footer Restructure: Removed large "Ready to build" contact form from footer, replaced with compact email and essential info only
  • Next Case Study in Footer: Moved "Next Case Study" link from CaseStudyDetail to Footer, shown only on case study pages for contextual navigation
  • Case Study CTA Enhancement: Added prominent "Ready to build" section to CaseStudyDetail pages with case study image, larger layout, and improved visual hierarchy
  • Visual Improvements: Enhanced "Ready to build" section with premium card styling, image integration, responsive layout (image + content side-by-side), and professional hover effects
  • Footer Compact Design: Footer now focuses on essential contact info (email) and contextual navigation, reducing visual clutter while maintaining functionality
v3.5
December 26, 2025 at 08:00

Shadcn Base UI Portfolio Upgrade

Complete migration to shadcn/base UI components using native HTML elements (zero Radix dependencies). All core components (Button, Badge, Card, Separator) rebuilt with class-variance-authority for better variant management. Premium components (GlassCard, GradientBorder, ShimmerText, CountUp, Magnetic, GlowText) enhanced with new styling and effects while maintaining backward compatibility.

  • Button Component: Migrated to shadcn-style with class-variance-authority, preserved beam variant with fixed CSS masking, all variants working
  • Badge Component: Rebuilt with shadcn patterns using class-variance-authority, all variants (default, outline, neon, gradient, glass) preserved
  • Card Components: Upgraded to shadcn-style Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter with forwardRef
  • Separator Component: Migrated to shadcn-style with orientation support (horizontal/vertical)
  • GlassCard Enhancement: Built on shadcn Card base, added enhanced gradient overlays, inner glow effects, improved shadow depth
  • GradientBorder Enhancement: Added new direction options (horizontal, vertical, diagonal), neutral gradient preset, improved animation performance
  • ShimmerText Enhancement: Added new variants (subtle, normal, intense, rainbow), multiple direction support (left, right, up, down), enhanced animations
  • CountUp Enhancement: Added glow effect on completion, improved typography with shadcn styling, enhanced visual feedback
  • Magnetic Enhancement: Added scale effect on hover, glow trail following cursor, improved spring physics with better damping
  • GlowText Enhancement: Added multi-layer text shadows, new variants (static, pulse, gradient), improved color blending
  • Zero Radix Dependencies: All components use native HTML elements, no Radix UI dependencies installed
  • PostCSS Configuration: Updated for Tailwind CSS v4 compatibility with @tailwindcss/postcss plugin
  • Clean Graph Styling: Removed card backgrounds and borders from Impact Dashboard charts for minimal, professional appearance
v3.4.1
December 26, 2025 at 08:00

Beam Button Fix & Shadcn Integration

Completely reworked the beam button's spinning border implementation to eliminate square mask artifacts. The new approach uses proper CSS mask-image techniques for a clean, professional border effect. Additionally, integrated shadcn UI utilities (cn, class-variance-authority) while maintaining zero Radix UI dependencies as per project requirements.

  • Beam Button Rework: Replaced square mask approach with proper CSS mask-image using linear gradients for clean border rendering
  • Eliminated Square Artifacts: Fixed visual glitches in beam button hover states by implementing proper border masking
  • Shadcn Integration: Added shadcn UI utilities (cn, class-variance-authority, clsx, tailwind-merge) for better class management
  • Zero Radix Dependencies: Maintained project requirement of no Radix UI dependencies, using native HTML elements
  • Tailwind Config: Created proper tailwind.config.js and postcss.config.js for shadcn compatibility
  • Components Configuration: Set up components.json with lyra style, neutral base color, and emerald theme
  • Utility Functions: Migrated to shadcn's cn utility for better Tailwind class merging
  • Preserved All Variants: Maintained all existing button variants (primary, secondary, outline, ghost, beam) with improved implementation
v3.4
December 26, 2025 at 08:00

Premium UI Enhancement: Visual Polish & Depth

Comprehensive UI enhancement to elevate the visual design with enhanced depth, refined colors, sophisticated shadows, polished cards, premium animations, and improved spacing throughout the entire site. This update transforms the interface into a truly premium, multimillion-dollar experience.

  • Enhanced shadow system: Added multi-layer shadow utilities (depth-1 through depth-4) for cards and components
  • Refined gradient system: New gradient mesh backgrounds, card overlays, and animated gradient borders
  • Hero section: Enhanced floating orbs with better animations, refined status indicators with glow effects, improved CTA buttons with enhanced shadows
  • Case Study cards: Multi-layer card design with enhanced image treatments, gradient tag hovers, refined outcome displays with glow effects
  • Impact Dashboard: Better metric cards with enhanced depth, refined chart containers with glass effects, improved hover states
  • Core Competencies: Enhanced glass cards with better depth, refined icon treatments with glow, improved skill tag designs with gradient hovers
  • About Sections: Better experience cards with enhanced timeline dots, refined award cards with improved glass effects
  • Testimonials: Enhanced cards with better quote treatments, refined hover states with border gradients
  • Layout components: Better navbar with enhanced shadows, refined footer contact form with improved depth
  • Spacing improvements: Increased section padding throughout (py-20 sm:py-28 lg:py-40), better component gaps, enhanced breathing room
  • New CSS utilities: Added card-lift, glass-enhanced, border-gradient, vignette-enhanced, scale-smooth, and glow-enhanced classes
  • Animation refinements: Smoother easing curves, better stagger timings, more sophisticated hover transitions
v3.3.1
December 26, 2025 at 08:00

Contact Section Removal & Core Competencies Redesign

Removed the "Get in Touch" contact cards section that was deemed unnecessary, and completely redesigned the Core Competencies section with premium UI elements. The new design features glass morphism cards, category icons, animated skill tags, and enhanced visual hierarchy for a more engaging and professional presentation.

  • Removed ContactSection component: Deleted "Get in Touch" header and contact cards grid (Location, Email, Portfolio, LinkedIn)
  • Created new CoreCompetenciesSection component: Premium glass card design with category-specific icons
  • Enhanced visual design: Glass morphism cards, gradient borders on hover, shimmer effects on skill tags
  • Better hierarchy: Larger category titles (text-lg sm:text-xl), improved spacing, card-based layout
  • Interactive elements: Hover lift effects on cards, scale animations on skill tags, stagger reveal animations
  • Category icons: Strategic (Target), Leadership (Users), Technical (Code), Tools (Wrench) with color-coded accents
  • Premium effects: Gradient borders, hover glows, smooth transitions, and micro-interactions throughout
  • Responsive layout: Grid adapts from 1 column (mobile) to 4 columns (desktop) with proper spacing
  • Improved UX: More engaging presentation that better showcases skills and competencies
v3.3
December 26, 2025 at 08:00

Typography Overhaul: Professional Type System

Typography is the foundation of professional design. Version 3.3 implements a comprehensive type system overhaul that addresses legibility, hierarchy, and spacing throughout the entire portfolio. Tight line heights, excessive font-black usage, inconsistent sizing, and poor spacing have been systematically replaced with a refined, readable, and professional typography system.

  • Type Scale: Implemented Major Third (1.25) ratio scale from Display (text-5xl to xl:text-9xl) down to Micro (text-[11px])
  • Line Heights: Replaced tight leading-[0.95] with readable leading-[1.1] for Display/H1, leading-[1.15] for H2, leading-[1.7] for body text
  • Font Weights: Reduced font-black (900) usage, replaced with font-bold (700) for headings, font-semibold (600) for labels, font-normal (400) for body
  • Letter Spacing: Changed tracking-tighter to tracking-[-0.02em] for Display, tracking-[-0.01em] for H2, tracking-[0.15em] for labels (reduced from 0.2em)
  • Font Family: Replaced Handjet monospace with Inter (sans-serif) for most labels and badges, reserving monospace strategically for DESIGNER badge, PRJ codes, metric values, and status indicators with legible sizing (tracking-[0.1em])
  • Color Contrast: Improved text opacity from /50-70 to /70-80 for better readability
  • Spacing System: Standardized vertical rhythm with consistent gaps (gap-6 sm:gap-8 lg:gap-10), improved title-to-description spacing (mt-6 sm:mt-8 lg:mt-10)
  • Component Updates: Applied new typography system across all components—SectionHeader, Hero, Case Studies, Impact Dashboard, About Sections, Testimonials, UI components, Layout, Timeline, and Case Study Detail
  • Responsive Typography: All text sizes now scale properly across breakpoints with appropriate line heights and spacing
  • Professional Polish: Improved visual hierarchy, better breathing room, and consistent typography rules throughout the entire site
  • Strategic Mono Fonts: Restored mono fonts for DESIGNER badge and PRJ project codes with legible size and letter spacing to maintain site's technical/designer aesthetic
v3.2.3
December 26, 2025 at 08:00

Chart Layout Fix: Proper Aspect Ratios

Good data visualization respects proportions. Version 3.2.3 rewrites all Impact Dashboard charts with fixed aspect ratios, proper container constraints, and centered layouts that prevent horizontal stretching at any viewport size.

  • Area Chart: Fixed SVG with preserveAspectRatio="xMidYMax meet" and 200x100 viewBox for proper proportions
  • Dot Matrix Chart: Centered grid with max-width constraint and 2:1 aspect ratio
  • Revenue Stack Chart: Centered bar layout with max-height and max-width constraints
  • Efficiency Chart: Centered horizontal bars with max-width to prevent over-stretching
  • All charts now use flex centering with proper padding for visual balance
v3.2.2
December 26, 2025 at 08:00

Responsive Layout Polish

Mobile-first isn't just a buzzword—it's a commitment. Version 3.2.2 addresses responsive layout issues discovered during cross-device testing, ensuring Case Study cards, Impact Dashboard metrics, and Awards sections gracefully adapt across all viewport sizes from 375px to 1440px+.

  • Case Study cards now stack vertically on mobile/tablet (<1024px), side-by-side on desktop
  • Impact Dashboard metrics single column on mobile (<768px), 2 columns on tablet, 4 on desktop
  • Awards section single column on mobile (<768px), 2 on tablet, 3 on desktop
  • Reduced card min-heights and typography for better mobile density
  • Improved responsive padding and margins throughout card components
  • Updated image height scaling for mobile case study cards
v3.2.1
December 26, 2025 at 08:00

Color Balance & CTA Refinement

Too much green kills the green. Version 3.2.1 implements a sophisticated color hierarchy—reserving green for what truly matters (key metrics, primary CTAs) while the rest of the interface speaks in refined neutrals. The beam button hover state was completely redesigned to feel premium rather than jarring.

  • Redesigned beam button hover: white gradient spin, subtle lift, no green background
  • Primary button variants simplified with neutral hover states
  • Hero section cleanup: single status dot, neutral gradient line, clean DESIGNER badge
  • Sidebar and focus tags now use foreground highlights instead of green
  • SectionHeader badge dots changed from pulsing green to static neutral
  • ImpactDashboard keeps diverse chart colors (green, blue, purple, orange) but removes green borders
  • Testimonials hover states now use foreground instead of primary color
  • Navigation underlines changed from green gradient to clean white line
  • Mobile menu active states and controls use neutral styling
  • Footer contact form and social links use neutral hovers
  • Timeline dots and badges use grayscale hierarchy
v3.2
December 26, 2025 at 08:00

Premium UI Overhaul: The Multimillion Dollar Experience

Good design systems establish consistency. Great ones create desire. Version 3.2 transforms every pixel into a premium experience—glass morphism, gradient glows, magnetic micro-interactions, and animations that feel like they cost a million dollars. This is the difference between a portfolio that shows work and one that demonstrates mastery.

  • Premium Design Tokens: New CSS variables for glows, gradients, glass utilities, and 7 custom keyframes
  • Chart Excellence: All 4 dashboard charts rebuilt with SVG glow filters, gradient fills, counter animations, and premium physics
  • Glass Components: GlassCard, GradientBorder, ShimmerText, and CountUp components with sophisticated visual effects
  • Hero Transformation: Animated gradient badges, blur-to-sharp text reveals, multi-ring pulses, magnetic CTA buttons
  • Case Study Premium: 3D tilt on hover, Ken Burns zoom, glass overlays, gradient borders, glowing outcome metrics
  • Section Polish: Glass morphism cards, glowing timeline dots, floating icons, shimmer hover effects
  • Navigation Excellence: Logo glow aura, gradient underlines on hover, enhanced scroll backdrop behavior
  • Micro-Interactions: Magnetic hover effects, 3D perspective transforms, shimmer trails across all interactive elements
  • Performance Optimization: will-change hints, CSS-first animations, prefers-reduced-motion support, 60fps target
  • Background System: Static CSS grid for performance, animated gradient overlays, depth-creating vignettes
v3.1.1
December 26, 2025 at 08:00

UI System Standardization & Bug Fixes [STABLE BASELINE]

Design systems only work when they're consistent. This patch implements a unified design token system across all components—standardized button sizes, typography scales, and spacing rhythms. Also fixed a critical Tailwind JIT bug where dynamic class interpolation was breaking hover states. This version is tagged as v3.1.1-stable, serving as the baseline before the Bold UI Overhaul (v3.2).

  • Unified Button component size system (sm/md/lg/xl) working across all variants including beam
  • Standardized typography scale with responsive breakpoints across all section headers
  • Consistent spacing scale (8px multiples) for padding, margins, and gaps
  • Fixed Tailwind JIT bug: group-hover classes now use complete class names instead of interpolation
  • Responsive improvements across ImpactDashboard, AboutSections, Testimonials, and LogoStrip
  • Hero section CTA buttons now use standardized size props
  • Git tag v3.1.1-stable created as backup reference point
v3.1
December 26, 2025 at 08:00

Professional Credibility: Completing the Narrative

V3 established the revenue story. V3.1 completes the professional narrative. Added comprehensive sections that answer the question every hiring manager asks: "Who is this person, and what have they actually accomplished?" The Experience Timeline, Awards, and Competencies sections transform the portfolio from a case study showcase into a complete professional profile.

  • Professional Experience Timeline with 6 positions spanning 2014-2025
  • Awards & Recognition section documenting career achievements
  • Core Competencies grid organized by Strategic, Technical, Leadership, and Tools
  • Enhanced Contact section with structured information architecture
  • Secondary Metrics bar showcasing 40+ products shipped and 10+ years experience
  • Timeline/Changelog page added to navigation menu
v3.0
December 26, 2025 at 08:00

Revenue Architect: The Strategic Positioning Pivot

A fundamental shift in how I present my work. Moving from "I designed interfaces" to "I architected revenue systems." This version introduces the complete CRM V3 content strategy—where every metric tells a story of business impact, not just design craft.

  • Complete content rewrite focusing on revenue outcomes over pixel details
  • Full case study narratives with context, challenge, and strategic pivot structure
  • About section with positioning statement and bio
  • Bilingual support (EN/PT) for global reach
  • Professional case study layouts with numbered sections and impact sidebars
v2.5
December 26, 2025 at 06:00

Visual System Overhaul

Introduced the grid-based background system and refined the typography scale. The goal: make the portfolio feel like a professional design tool, not just another portfolio website.

  • Custom CSS grid background with major/minor line hierarchy
  • Dark/Light theme toggle with smooth transitions
  • Refined typography with Inter and JetBrains Mono pairing
  • Improved responsive breakpoints for all device sizes
v2.0
December 26, 2025 at 04:00

React + TypeScript Foundation

Rebuilt the entire portfolio from static HTML to a React 19 application. This wasn't just a technical upgrade—it was about building a system that could scale with my growing body of work.

  • Migrated to React 19 with TypeScript 5.8
  • Implemented component-based architecture
  • Added Framer Motion for smooth animations
  • Created reusable UI component library
v1.5
December 26, 2025 at 02:00

Case Study Deep Dives

Added dedicated case study pages with full project narratives. Each case study now follows a consistent format: Context → Challenge → Strategic Pivot → Impact.

  • Dynamic routing for individual case studies
  • Impact metrics tables with business implications
  • Strategy cards with outcome badges
  • Growth trajectory visualizations
v1.0
December 26, 2025 at 00:00

Initial Launch: The Foundation

The first public version of the portfolio website. A single-page portfolio showcasing work in Web3 and FinTech design. Simple, focused, and intentionally minimal.

  • Single-page portfolio structure
  • Four initial case studies
  • Contact section with availability status
  • Mobile-responsive layout