Put GitHub and sponsorship on the site, behind one shared footer - #342
Merged
Conversation
The repo and the sponsors page were never linked from the product, and seven pages each carried their own copy of a footer, so there was nowhere consistent for those links to live. - SiteFooter replaces all seven inline footers and adds four pages that had none (templates, privacy, terms, cookies), so every public page now carries both a GitHub and a sponsor link. - SponsorCard states the actual bargain — it is free because it is open source — and sits on the homepage and the pricing page. No live star count: that means an external fetch the page does not need and a number that is wrong when the request fails. - The navbar gains a GitHub link on desktop and both links in the mobile drawer. - The README's sponsor section no longer talks about model calls or paid plans, neither of which exists, and states plainly that sponsoring unlocks nothing. Also fixes a bug this work introduced: the premium template preview passed a fresh styleSpec object literal on every render, and SiteRenderer regenerates its frames whenever that changes identity — so once the ownership check gave the component a reason to re-render, the preview restarted generation forever and sat on "Rendering frames…". Found by rendering the page headlessly rather than by reading it.
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third of three PRs for the new model.
What
The repo and the sponsors page were never linked from the product, and seven pages each carried their own copy of a footer — so there was nowhere consistent for those links to live.
SiteFooterreplaces all seven inline footers and adds four pages that had none (templates, privacy, terms, cookies). Verified in the built HTML: all 10 public pages now carry both a GitHub and a sponsor link.SponsorCardstates the actual bargain — it's free because it's open source — on the homepage and the pricing page.No live star count. It would mean an external fetch the page doesn't need and a number that's wrong whenever the request fails.
A bug this work introduced, and how it was caught
The premium template preview passed a fresh
styleSpecobject literal on every render, andSiteRendererregenerates its frames whenever that changes identity (SiteRenderer.tsx:134). Once the ownership check gave the component a reason to re-render, generation restarted forever and the page sat on "Rendering frames…" — permanently, for every visitor.The source reads fine; only rendering it showed the failure. I screenshotted the page headlessly, saw it stuck, isolated it against a free template (which rendered correctly), and memoized the object.
The same screenshots caught a copy bug — JSX collapsing a line break into "sections arewritten" — now fixed with an explicit
{" "}and re-verified in the rendered output.Verified
tsc,eslint,next buildclean; suite 497 passed.