Skip to content

chore: remove Enterprise announcement badge & clean up imports - #1

Merged
stackified merged 7 commits into
mainfrom
dev
Jun 22, 2026
Merged

stackified merged 7 commits into
mainfrom
dev

Conversation

@stackified

Copy link
Copy Markdown
Owner

Change Analysis

This PR removes the "LockItTrade Enterprise is Now Live" pill announcement badge from the hero section of the landing page, and cleans up the unused ChevronRight import from lucide-react.

Summary of Recent Workspace Changes & Implemented Features

Over the recent development cycle, the codebase has undergone significant performance and stability improvements, particularly targeting rendering issues on iOS Safari and optimizing bundle size:

  1. Performance & Bundle Size Optimizations:

    • Framer Motion Removal: Completely removed ramer-motion dependency from all pages (homepage, pricing, prop-firm, legal, contact), replacing animations with lightweight CSS-only entrance classes, reducing homepage First Load JS size from 211KB to 163KB.
    • Mobile Compositing Cost Reduction: Disabled expensive canvas-based grids/particles, backdrop-blur filters, and giant blur glow effects on screens smaller than 767px to boost scrolling performance and reduce GPU load.
    • Eruda Cleanup: Cleaned up the Eruda debug console from dev mode to align it with production testing.
    • Diagnostics Tracing Page: Added /diag page for real-device tracing and diagnosing layout stylesheet loads, animation checks, and network latency.
  2. Critical Bug Fixes (iOS Safari):

    • Blank Screen Bug: Addressed multiple rendering issues where Safari would not paint sections of the landing page. Dropped content-visibility: auto wrapper classes which were causing below-the-fold content to render blank/black until viewport interactions.
    • 3D CSS Transforms: Replaced 3D transforms (preserve-3d,
      otateX/Y) with flat 2D opacity/translation transforms for mockup animations to prevent Safari painting stalls.
    • Base Dark Background Flash: Added a strict pure-black background rule to html/�ody and set color-scheme: dark to prevent transient white flashes during page loading on mobile devices.
    • Radar Chart Polygon Fix: Resolved console errors due to undefined polygon points during initialization by setting stable static initial points.

… mobile

Root cause of the blank/slow mobile render was content shipping hidden and
depending on JS/animation to reveal it:
- CSS entrance classes set base opacity:0 and only reached opacity:1 via the
  keyframe, so if the animation never ran (iOS Reduce Motion, throttling) the
  element was stranded invisible. Drop the base opacity:0, use `both` fill so
  the hidden state only applies while animating, and add a prefers-reduced-
  motion fallback that shows everything instantly.
- ~100 framer-motion entrance states baked opacity:0 into the static HTML and
  many were gated by IntersectionObserver that may not fire on iOS until a
  scroll, leaving whole sections invisible. Remove opacity from entrance
  initial/animate states (keep transforms) so content is visible from the
  static HTML; animation is now enhancement only. Exit/modal/AnimatePresence
  states are unchanged.
- Radar chart rendered <polygon points="undefined"> (points only set via
  animate); make points/circles static to remove the console error.

Net: exported homepage HTML went from 102 inline opacity:0 to 0.
Content already renders visible-by-default (verified live: 0 inline opacity:0),
so the remaining "sections appear very slowly" on physical iPhones is GPU
compositing overload that BrowserStack's virtualized GPU doesn't reproduce.

On screens <=767px:
- Hide the animated <canvas> grid and particle backgrounds (continuous rAF +
  many animated nodes) — they were the heaviest always-on work.
- Drop backdrop-filter on all backdrop-blur utilities and .glass-panel (cards
  keep a near-solid bg so they stay legible) — backdrop-filter is the most
  expensive thing to repaint on mobile scroll.
- Cap the giant blur-[120..150px] glow orbs to a cheap 45px blur.
Desktop rendering is unchanged.

Also adds /diag: a self-contained, inline-styled diagnostics page (CSS-applied
check, fade-animation check, reduced-motion, network, build timestamp, failed/
slow resources) to trace real-device behavior without a Mac inspector; a build
timestamp env; and Vercel cache-control headers (no-cache HTML, immutable
hashed assets).
…63KB First Load)

Diagnostics confirmed the device/network are fine (/diag loads in ~1s); the
homepage was slow purely from its own weight. Replaced all framer-motion
entrance/scroll animations across the 18 homepage components — and the two
modals (statically imported by navbar/community, which kept framer in the
initial bundle) — with the existing GPU-cheap CSS animation classes.

Result: homepage First Load JS 211KB -> 163KB, and the ~50-component
framer-motion hydration pass is eliminated entirely (the main mobile-CPU cost).
A few micro-interactions were intentionally simplified (sliding tab pill,
animated row reorder, exit fades, infinite float/pulse loops). Other routes
(pricing/prop-firm/legal) still use framer-motion and are unaffected.
…buildinfo

Eruda was loaded beforeInteractive (blocking startup) for on-device debugging;
it has served its purpose via the /diag page. Removing it makes dev match the
clean production build for a fair speed test.
… legal, contact)

Converted entrance/scroll animations on the non-homepage components to the same
CSS animation classes. The app is now 100% framer-free, so the framer-motion
chunk no longer loads on any route. Interactive bits simplified the same way as
the homepage (sliding tab indicators, accordion height auto, SVG draw-ins, exit
fades). All state/handlers/data preserved.
@vercel

vercel Bot commented Jun 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
lockittrade-landingpage Ready Ready Preview, Comment, Open in v0 Jun 22, 2026 10:07pm

Request Review

@stackified
stackified merged commit f47551e into main Jun 22, 2026
3 checks passed

This branch was successfully deployed

1 active and 1 inactive deployments
github-pages — 44478bb5 Deployed Jun 22, 2026 by stackified via deploy #26
Preview — 44478bb5 Deployed Jun 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants