Skip to content

refactor(components): update footer navigation and enhance asset hand…#2990

Merged
eldadfux merged 3 commits intomainfrom
feat/static-images-and-cta
May 10, 2026
Merged

refactor(components): update footer navigation and enhance asset hand…#2990
eldadfux merged 3 commits intomainfrom
feat/static-images-and-cta

Conversation

@eldadfux
Copy link
Copy Markdown
Member

…ling

  • Removed outdated links and added new comparison articles to the footer navigation for improved user access to resources.
  • Updated image sources and dimensions for better loading performance and consistency across components.
  • Replaced the dashboard component with a mockup in the hero section for a more visually appealing presentation.

These changes enhance the user experience by providing relevant content and optimizing asset management.

What does this PR do?

(Provide a description of what this PR does.)

Test Plan

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

…ling

- Removed outdated links and added new comparison articles to the footer navigation for improved user access to resources.
- Updated image sources and dimensions for better loading performance and consistency across components.
- Replaced the dashboard component with a mockup in the hero section for a more visually appealing presentation.

These changes enhance the user experience by providing relevant content and optimizing asset management.
@appwrite
Copy link
Copy Markdown

appwrite Bot commented May 10, 2026

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Queued Queued View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Preview deployments create instant URLs for every branch and commit

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 10, 2026

Greptile Summary

This PR refactors the homepage hero section, footer, and marketing components. The interactive dashboard.svelte is replaced by a lightweight static AVIF mockup (hero-dashboard-mockup.svelte), the status iframe in both footers is replaced with a new polling FooterCloudStatusBadge component, and the footer navigation gains a dedicated "Compare" column with comparison articles.

  • Footer status badge: The old <iframe> embedding the status badge is removed; the new FooterCloudStatusBadge polls status.appwrite.online/index.json every 60 s, displays a colour-coded chip, and cleans up correctly via the onMount teardown.
  • Case studies expansion: The dataset grows from 3 to 8 entries, logos switch from inline SVG imports to file-path references, and a company field is added and rendered in the card component.
  • Content updates: GitHub star count updated (50 K \u2192 56 K), developer count updated (300 K \u2192 500 K), and "Enterprise" is added to the top-level nav and mobile menu.

Confidence Score: 5/5

Safe to merge — changes are primarily content updates, component swaps, and styling refactors with no regressions on critical paths.

All logic changes are straightforward: the old status iframe is correctly replaced by a fetch-based badge with proper teardown, the hero component swap is mechanical, and the case-study data expansion adds well-typed entries. The only finding is a now-stale frame-src CSP entry left over from the removed iframes, which is dead config rather than a defect.

No files require special attention.

Important Files Changed

Filename Overview
src/lib/components/FooterCloudStatusBadge.svelte New component that fetches status from status.appwrite.online and refreshes every 60s; cleanup is handled correctly via onMount return and a cancelled flag
src/lib/components/FooterNav.svelte Adds a new Compare category with comparison article links; moves BaaS article from Learn to Compare; adds logo to desktop About column; adds mobile accordion support for Compare column
src/lib/components/MainFooter.svelte Replaces the status iframe with FooterCloudStatusBadge; restructures layout classes for better responsive alignment
src/routes/(marketing)/(components)/hero-dashboard-mockup.svelte New component replacing the old interactive dashboard.svelte with a static AVIF mockup image; supports aside and below placement props
src/routes/(marketing)/(components)/case-studies.svelte Expands case study dataset from 3 to 8 entries; adds company field used by case-study-card; switches logos from inline SVG imports to file paths; exports allCaseStudies and helpers for reuse
src/hooks.server.ts Adds status.appwrite.online to connect-src for the new status API fetch; frame-src retains the old entry that was used by the now-removed iframe
src/routes/(marketing)/(components)/scale.svelte Updates stats (GitHub stars 50K to 56K, developers 300K to 500K); rewrites heading copy to match updated numbers; reorders stats display
src/lib/components/layout/sub-footer.svelte Replaces the status iframe with FooterCloudStatusBadge; restructures to match the new responsive layout used in MainFooter

Reviews (2): Last reviewed commit: "Update footer" | Re-trigger Greptile

Comment on lines +61 to +64
clearTimeout(fallbackId);
}
};
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Redundant browser guard inside onMount

onMount is a client-only lifecycle hook in SvelteKit — it never executes during SSR. The if (!browser) { return; } check on line 62 is therefore always false and can never early-return. The import of browser from $app/environment can be dropped entirely from this file.

Comment on lines +170 to +174
onMount(() => {
orderedStudies = pickRandomStudies();
value = '0';
mounted = true;
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Redundant value reset in onMount

value is already initialised to '0' by $state, so the assignment inside onMount is a no-op on every mount. Removing it keeps the onMount focused on its actual work.

Suggested change
onMount(() => {
orderedStudies = pickRandomStudies();
value = '0';
mounted = true;
});
onMount(() => {
orderedStudies = pickRandomStudies();
mounted = true;
});

eldadfux added 2 commits May 9, 2026 22:47
- Updated comments and documentation to reflect the retirement of the `best_cta` experiment, indicating that the hero CTA is now fixed in code.
- Removed references to `normalizeHeroCta` and adjusted related functions to use a fallback value directly.
- Cleaned up imports and code in the marketing hero components to streamline functionality and improve clarity.

These changes enhance code maintainability and clarify the current implementation of hero CTAs.
@eldadfux eldadfux merged commit fce98b6 into main May 10, 2026
6 of 7 checks passed
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.

1 participant