Usman Baig
eca21bf627
feat(billing): update frontend for polar migration
...
Update billing types, remove invoice preview, replace Stripe invoice
display with Polar orders, update tax ID from array to single object,
remove upcoming invoice amount display.
2026-03-23 16:36:54 +01:00
Usman Baig
cd347ea072
feat: add illustrations to 404, error page, and welcome flow
...
- 404 page: replace large "404" text with page-not-found illustration
- ErrorDisplay: replace warning icon with server-down illustration
- Welcome step 1 (no orgs): welcome illustration
- Welcome step 4 (add site): website-setup illustration
- Welcome step 5 (done): confirmed illustration
All SVGs dark-themed with brand orange accent.
2026-03-23 15:40:01 +01:00
Usman Baig
9510e2da8c
feat(sidebar): fix backdrop fade transition, add shimmer to SSR placeholder
...
Use opacity instead of bg-color swap for proper transition-opacity
animation on mobile backdrop. Add shimmer gradient to the sidebar
loading placeholder in DashboardShell.
2026-03-23 15:28:03 +01:00
Usman Baig
414e112d3d
feat(sidebar): mobile exit animation, site picker entrance, hover nudge, CSS tooltips
2026-03-23 15:23:31 +01:00
Usman Baig
645e3e78ef
feat(empty-states): add undraw illustrations to empty state screens
...
Add brand-orange recolored SVG illustrations from undraw to five empty
states: sites list, dashboard chart, funnels, journeys, and behavior.
2026-03-23 15:23:26 +01:00
Usman Baig
d6cef95c4b
fix(sidebar): dynamic collapse label, favicon fallback, escape key, remove setTimeout hack
2026-03-23 15:19:52 +01:00
Usman Baig
198bd3b00f
feat(sidebar): extract SidebarContent to proper React component
...
Convert the sidebarContent(isMobile) closure function to a proper
SidebarContent component with explicit props, enabling correct React
reconciliation for both desktop and mobile sidebar instances.
2026-03-23 15:15:28 +01:00
Usman Baig
55a08301f4
fix(build): extract FAVICON_SERVICE_URL to prevent server-side createContext error
...
The share/[id] layout is a server component that imported FAVICON_SERVICE_URL
from icons.tsx, pulling in the entire React icon registry and triggering
createContext on the server. Moved the constant to its own favicon.ts module.
2026-03-23 13:29:53 +01:00
Usman Baig
508bb006a8
fix(referrers): replace low-res Google favicon globe with proper icons
...
Detect Google's 16x16 default globe fallback via naturalWidth on load
and fall back to Phosphor icons. Add Chrome icon for googlechrome.github.io,
CursorClick for Direct, and abbreviation support (ig, fb, yt).
2026-03-23 12:23:10 +01:00
Usman Baig
8b95620ec1
polish(pagespeed): mini gauges, animated tab switcher, filmstrip title
...
- Replace compact dot+number scores with 64px ScoreGauge circles
- ScoreGauge scales font/stroke/spacing for small sizes
- Add "Page Load Timeline" header to filmstrip section
- Replace pill toggle with animated underline tabs (matches dashboard)
2026-03-22 20:43:11 +01:00
Usman Baig
6b00b8b04a
redesign(pagespeed): full page redesign inspired by pagespeed.web.dev
...
- Hero card: large performance gauge + compact inline scores + screenshot
- Single metrics card with 2x3 grid and colored status dots
- Flat diagnostics list sorted by impact with severity indicators
- ScoreGauge accepts size prop for flexible gauge sizing
- Unicode severity markers (triangle/square/circle) per audit
2026-03-22 19:10:47 +01:00
Usman Baig
52906344cf
feat(pagespeed): add PageSpeed page with gauges, CWV cards, chart, and diagnostics
...
- ScoreGauge SVG component with color-coded circular arcs
- Full page: disabled state, score overview, CWV metrics, trend chart
- Diagnostics accordion with opportunities/diagnostics/passed groups
- Mobile/desktop strategy toggle, manual check trigger
- Loading skeleton, frequency selector
2026-03-22 18:13:08 +01:00
Usman Baig
780dd464a1
feat(pagespeed): add API client, SWR hooks, and sidebar navigation
...
- PageSpeed API client with types for config, checks, and audits
- SWR hooks: usePageSpeedConfig, usePageSpeedLatest, usePageSpeedHistory
- GaugeIcon added to sidebar under Infrastructure group
2026-03-22 18:05:17 +01:00
Usman Baig
b7e92abb40
feat: persist script feature toggles to backend
...
Features (scroll, 404, outbound, downloads, frustration, storage, ttl)
are saved to site.script_features JSONB column on every toggle change.
Values are read from the site object on load.
2026-03-22 15:31:45 +01:00
Usman Baig
e626350f14
fix: use UTC hours for intra-day chart labels to match server timezone buckets
...
Backend returns timestamps already bucketed in site timezone but as
UTC values. Using getUTCHours/getUTCMinutes prevents the browser
from adding its local timezone offset.
2026-03-22 15:16:20 +01:00
Usman Baig
bd023e76f5
fix: use European date/time formats (en-GB) and guard against undefined dateObj
2026-03-22 15:04:11 +01:00
Usman Baig
c85f305f1e
fix: show time labels on X-axis and tooltip for intra-day chart views
...
Added formatLabel prop to XAxis component. When viewing Today (hour
or minute interval), X-axis shows "2:00 PM" instead of "Mar 22".
Tooltip shows time for intra-day, date for multi-day.
2026-03-22 14:59:24 +01:00
Usman Baig
4043a678db
fix: add proper empty state to Peak Hours with icon and description
2026-03-22 00:16:17 +01:00
Usman Baig
9d253523e2
fix: remove bar chart toggle, keep area chart only
2026-03-21 23:05:41 +01:00
Usman Baig
d4e4ca819c
fix: add numeric Y-axis to bar chart view
2026-03-21 22:59:41 +01:00
Usman Baig
830da49c5f
feat: add bar chart toggle to dashboard
...
Added visx bar chart component with rounded corners and grow animation.
Dashboard now has area/bar toggle buttons next to the export icon.
2026-03-21 22:55:19 +01:00
Usman Baig
9e128c4945
fix: remove pattern fill from dashboard chart, use gradient only
2026-03-21 22:49:43 +01:00
Usman Baig
1270aa99a9
feat: add diagonal pattern fill to dashboard area chart
2026-03-21 22:44:14 +01:00
Usman Baig
1c7667562c
feat: replace Recharts dashboard chart with visx area chart
...
Integrated 21st.dev AreaChart component with animated crosshair,
spring-based tooltip, and date ticker. Uses brand orange for the
line/fill with dark-only CSS variables.
2026-03-21 22:39:51 +01:00
Usman Baig
24fa01dd25
fix: reduce funnel segment thickness (0.44 -> 0.3)
2026-03-21 22:30:50 +01:00
Usman Baig
4ef92b9e3a
fix: use monotone interpolation for smooth dashboard chart curves
2026-03-21 22:12:30 +01:00
Usman Baig
93347f6454
fix: revert outer container size, increase inner padding to show more bg
2026-03-21 21:05:46 +01:00
Usman Baig
b3bb0685f9
fix: smooth chart curve data, translucent dashboard, smaller demo container
2026-03-21 21:02:35 +01:00
Usman Baig
9ce272d3e5
fix: smooth chart data and increase outer frame padding for more visible gradient
2026-03-21 20:57:10 +01:00
Usman Baig
0bd2f94dd7
fix: fix div nesting in DashboardDemo
2026-03-21 20:53:04 +01:00
Usman Baig
af62532615
fix: showcase bg as outer frame, solid dark background for dashboard content
2026-03-21 20:50:21 +01:00
Usman Baig
39cd1c596c
fix: move showcase bg to outer container, increase overlay opacity for card contrast
2026-03-21 20:46:16 +01:00
Usman Baig
941782efe1
fix: remove browser chrome, make dashboard scrollable, add showcase gradient bg
2026-03-21 20:41:02 +01:00
Usman Baig
ca199b59fd
feat: replace fake LiveDemo with real dashboard components and fake data
2026-03-21 20:36:55 +01:00
Usman Baig
536bb8c872
feat: add live demo dashboard to landing page hero
2026-03-21 20:26:23 +01:00
Usman Baig
911704cff2
feat: port website header with mega-menu, add showcase bg to hero, fix carousel container size
2026-03-21 20:12:01 +01:00
Usman Baig
4afaf32e58
feat: add showcase background image to feature section mockup containers
2026-03-21 20:02:22 +01:00
Usman Baig
74a48299ab
fix: replace lucide-react with phosphor-icons in FAQ component
2026-03-21 19:56:30 +01:00
Usman Baig
a361649e60
feat: add tabbed FAQ, polish installation code blocks, refine integration styling
2026-03-21 19:52:32 +01:00
Usman Baig
e789fb525b
feat: port interactive mockups from website and wire into feature sections
2026-03-21 19:49:19 +01:00
Usman Baig
0b7c4d528a
feat: add feature sections, comparison cards, and CTA components for landing page
2026-03-21 19:46:20 +01:00
Usman Baig
3710f081a6
feat: dark-only cleanup for marketing pages and authenticated landing view
2026-03-21 19:39:01 +01:00
Usman Baig
7bf7e5cc3d
feat: glass treatment + dark-only cleanup for dashboard components and navigation
2026-03-21 19:26:25 +01:00
Usman Baig
64b245caca
feat: update card component to glass treatment
2026-03-21 19:13:00 +01:00
Usman Baig
8fdb8c4a2f
fix: remove orange glow orb backgrounds from marketing pages
2026-03-21 18:17:27 +01:00
Usman Baig
4b46bba883
feat: redesign Search dashboard card to match Pulse design language
...
Add proportional impression bars, color-coded position badges,
animated Queries/Pages tabs, hover percentage reveals, and
searchable expand modal — bringing Search to parity with other
dashboard cards.
2026-03-19 17:23:57 +01:00
Usman Baig
09b4266a49
feat: add 5-level intensity heatmap to Peak Hours
...
Replace binary on/off coloring with 6 opacity levels (transparent,
0.15, 0.35, 0.60, 0.82, solid) based on percentage of max visitors.
Zero-traffic cells are now visually empty. Adds a GitHub-style
"Less → More" legend strip below the grid.
2026-03-19 15:12:07 +01:00
Usman Baig
7cbfbc54ca
fix: tighten dashboard vertical spacing
...
Reduce spacing now that top header is removed:
- Main content top padding: pt-6 → pt-4
- Header section: mb-8 → mb-6
- Chart section: mb-8 → mb-6
- Grid sections: mb-8 → mb-6
- Site name margin: mb-2 → mb-1
- Header inner gap: mb-4 → mb-3
2026-03-19 12:10:30 +01:00
Usman Baig
dc7bffdf56
fix: remove globe tab from locations, default to countries
...
Remove the 3D globe visualization tab and set Countries as the
default tab when visiting the dashboard.
2026-03-19 12:01:23 +01:00
Usman Baig
6b1e6876c6
fix: preserve intentional OS name casing (macOS, iOS, webOS)
...
Skip capitalize() for names with mixed casing to prevent
macOS→MacOS, iOS→IOS, webOS→WebOS, ChromeOS→Chromeos etc.
2026-03-19 11:32:36 +01:00