Skip to content

Site refresh: positioning, missing projects, sponsorship funnel, accessibility - #9

Open
edgarriba wants to merge 3 commits into
masterfrom
feat/site-refresh-2026
Open

Site refresh: positioning, missing projects, sponsorship funnel, accessibility#9
edgarriba wants to merge 3 commits into
masterfrom
feat/site-refresh-2026

Conversation

@edgarriba

Copy link
Copy Markdown
Member

Audit and refresh of kornia.org, which had drifted roughly a year out of date. Draft — several items below need a maintainer decision before this ships.

Why

The live site still described Bubbaloop as a "VLM Serving Platform", showed kornia-rs at 355 stars (actual 682), advertised GSoC 2025, and never mentioned kornia-slam, vision-rt or sensor-rt. The news feed's newest item was July 2025.

Highest-priority findings

1. Open Collective has been selling something the site does not have. The Silver ($200/mo) tier promises placement on "the sponsor page on kornia.org"; Gold ($500) and Platinum ($2,000) promise the frontpage. No sponsor page or logo wall has ever existed. This PR adds a #sponsors section with a backer wall so the tier is deliverable.

2. Two incompatible price lists. "Logo on kornia.org" costs $200/mo on Open Collective and $500/mo on GitHub Sponsors. The site linked only Open Collective, so the better-structured GitHub Sponsors ladder was unreachable. Both routes are now linked. Tier pricing is deliberately not published in this PR — that is a decision for the org, not for a site refresh.

3. cargo add kornia gets a year-old pre-release. The umbrella kornia crate last published 0.1.10-rc.3 on 2025-07-01 (max stable 0.1.9), while the component crates are at 0.1.15-rc.4 and GitHub is on v0.1.15-rc.5. This directly undercuts the new "Deploy in Rust" hero. The site's docs link now points at the repo instead of docs.rs/kornia, but the real fix is upstream and should land before any r/rust post.

4. kornia-slam has no LICENSE (license: null) — legally all-rights-reserved. It is promoted as a stack layer in this PR. Worth fixing before merge. kornia-examples (91★) has neither licence nor description.

5. Kornia is an accepted GSoC 2026 org and the site did not say so. Also, the GSoC org profile's website_url is docs.rs/kornia, so Google is sending prospective contributors to a stale API doc rather than kornia.org. One-field fix, outside this repo.

What changed

  • Positioning — new hero ("Prototype in PyTorch. Deploy in Rust.") and a "One stack, camera to agent" section that makes six repos read as one stack. Adds the first above-the-fold CTA and a copyable install command.
  • Accuracy — corrected figures, sourced social proof (17k+ dependent repos, 461 citations, 347 contributors), rewritten Bubbaloop copy, four missing projects added, unsourceable metrics removed.
  • Contribute section — four entry paths. Beginners go to help wanted, not good first issue, whose kornia/kornia queue holds two issues from 2023.
  • Accessibility — mobile nav added (below 768px the nav was display:none with no replacement), contrast fixed on --text-muted and the donate button (~1.75:1), :focus-visible throughout, keyboard/touch support for the GitHub dropdown, reduced-motion support.
  • News — moved from a hardcoded array inside index.html to news.json, backfilled with 20 sourced items. Publishing previously meant editing the homepage, which is why it sat dead for a year.
  • Statsstats.json generated daily by a workflow with an authenticated token. The old script updated only the three hidden dropdown counts; every visible number was hardcoded and unreachable by it.
  • SEO/infra — robots.txt, sitemap.xml, 404.html, CNAME, canonical, OG/Twitter cards, favicon, JSON-LD, SRI on CDN assets. Absolute URLs use www.kornia.org since the apex 301s there.
  • Removed the "Kornia Box" hardware bundle modal (EOL Jetson Nano, "Europe only", no entity/price/terms) and 1.6 MB of unreferenced images/, js/, css/.

Needs a maintainer decision

  • Sponsorship tier pricing — proposed ladder available, not published here.
  • DeepMind / OpenCV collaborator cards — captions are currently generic ("AI Research & Development"). If the relationship is "someone there contributed", these should become a "contributors from" line rather than a logo. I could not resolve this by inference.
  • CNAME — this is the one infra-touching file. Value www.kornia.org matches the live serving host; drop the file if you would rather keep the domain solely in Pages settings.
  • Legal entity — the site claims non-profit registration in 2023 with no entity name, country or registry number. Corporate sponsors check this.
  • PR #3675 on kornia/kornia has been approved and unmerged for 125 days. The new Contribute section invites people in; that one should be cleared first.

Verification

Rendered headless against a local server: 20 news cards render, all 8 filters build, stats.json correctly rewrites the DOM (2.9M+, 11.3k, 682, 34, 25), no console errors. All 67 URLs checked for reachability. JSON and JSON-LD validated. CSS class contract confirmed against the markup.

Not verified: interactive click-through of the mobile nav and dropdown (static contract check only), and rendering on a real phone.

🤖 Generated with Claude Code

The site had drifted about a year out of date. This updates content,
adds the sections needed for the contributor and sponsorship funnels,
and fixes accessibility and discoverability defects.

Content and accuracy
- Correct stale figures: 2M+ -> 2.9M+ PyPI installs/month, 10k -> 11.3k
  stars, kornia-rs 355 -> 682 (was ~2x low). Add sourced social proof:
  17k+ dependent repositories, 461 citations, 347 contributors.
- Rewrite the Bubbaloop card. It described a "VLM Serving Platform ...
  at enterprise scale"; the project is now a hardware AI agent that runs
  as a single Rust binary on Jetson, Raspberry Pi or any Linux box.
- Add the four projects the site never mentioned: kornia-slam, vision-rt,
  sensor-rt and, in a footnote, tutorials/examples/limbus/dora-nodes-hub.
- Drop unsourceable metrics ("99.9% Service Uptime", "< 5ms Response
  Time", "0 Memory Leaks", "10x Performance") and replace them with
  facts that survive scrutiny.
- Remove the "Kornia Box" hardware bundle modal. It offered EOL Jetson
  Nano hardware, "Europe only", with no entity, price or terms.
- Fix dead links: bubbaloop.kornia.org (NXDOMAIN), news.html (404),
  docs.rs/kornia (serves v0.1.9), the LinkedIn numeric ID (login wall),
  twitter.com -> x.com, and GSoC 2025 -> 2026.

Positioning
- New hero: "Prototype in PyTorch. Deploy in Rust." plus a "One stack,
  camera to agent" section, so the six repositories read as one stack
  rather than a list. Add a hero CTA and copyable install command; there
  was previously no call to action above the fold.

Contributor and sponsorship funnels
- Add a Contribute section with four real entry paths. Beginners are
  pointed at "help wanted", not "good first issue", whose queue on
  kornia/kornia holds two issues, both from 2023.
- Add a Sponsors section with a backer wall, both funding routes and a
  link to the public ledger. Open Collective tiers have been selling
  logo placement on kornia.org; there was no such page. Tier pricing is
  deliberately not published here pending maintainer sign-off.
- Add open_collective to FUNDING.yml so the Sponsor button offers the
  route that is actually in use.

Accessibility and correctness
- Add a mobile nav. Below 768px the entire nav was display:none with no
  replacement, so phone visitors lost all navigation.
- Fix contrast on --text-muted and the donate button (was ~1.75:1).
- Add focus-visible styles, keyboard and touch support for the GitHub
  dropdown, and a prefers-reduced-motion block.

Infrastructure
- Move news out of index.html into news.json and backfill 20 sourced
  items. Publishing previously meant editing the homepage, which is why
  the feed sat dead for twelve months.
- Replace the runtime star fetch with stats.json, generated daily by a
  workflow using an authenticated token. The old script updated only the
  three hidden dropdown counts; every visible number was hardcoded.
- Add robots.txt, sitemap.xml, 404.html, CNAME, canonical, Open Graph,
  Twitter card, favicon and JSON-LD, all of which were missing.
- Add Subresource Integrity to the CDN assets.
- Delete 1.6 MB of unreferenced images/, js/ and css/ left from an
  earlier revamp.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@edgarriba
edgarriba marked this pull request as ready for review August 2, 2026 08:16
edgarriba and others added 2 commits August 3, 2026 02:18
This repo deploys the whole tree to kornia.org on every push to master
and had no checks at all, so nothing stood between a bad edit and
production.

Two workflows:

validate.yml runs on pull requests and on push to master.
  - check_site.py: offline and dependency-free. Internal anchors resolve
    to real ids, local hrefs and srcs exist on disk, no duplicate ids,
    images have alt text, the head carries description/canonical/OG/
    twitter/favicon, JSON-LD parses, and news.json and stats.json match
    the shapes news.js and script.js expect. It also enforces the
    data-stat contract: every element claiming a live statistic must name
    a repo or package that stats.json actually contains.
  - html5validator: Nu Html Checker, the same engine as validator.w3.org.

link-check.yml runs weekly, not on pull requests. External hosts rate
limit and blip, and a flaky required check teaches people to ignore CI.
It distinguishes genuinely dead links (404/410, DNS failure) from hosts
that simply refuse robots (403/429/999), and only fails on the former.

The checks are derived from bugs this repo actually shipped: a footer
link to news.html which did not exist and 404ed in production, a link to
bubbaloop.kornia.org whose domain does not resolve, and statistics that
no code path could update because they carried no data attributes.
Verified by reintroducing each of those bugs and confirming the checker
fails, then reverting.

Also fixes a heading-level jump the new checker found: the sponsor cards
used h4 directly under the section h2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Nu Html Checker's bundled CSS parser does not recognise the
`color-scheme` property, which is standard (CSS Color Adjustment Module
Level 1) and used in 404.html so form controls and scrollbars follow the
user's colour preference. The property is correct and stays; the single
false-positive rule is suppressed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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