feat(landing): show adoption the site could already prove - #27
Merged
Conversation
Two of the three things the teardown said were missing. The third, motion, still is — there are no recordings in this repository and I cannot make any. The download count was arriving all along. Every asset in the GitHub releases payload carries `download_count`, the controller mapped past it, and the page had no adoption number while one sat in a response it was already caching for sixty seconds. Reading it costs no request, no key and no database. DMG assets only. Each app release also ships a .zip, which is the feed the installed app updates from, and its count runs close to the DMG's — folding those in would report automatic updates as people choosing to install. The DMG is what the download button serves, so it is the honest one. At the time of writing that is 50,506 across 24 app releases. It replaces the download-size cell rather than adding a seventh. The size was already in the hero fine print and again in the closing call to action, and a third copy bought nothing. When the API is unreachable the cell falls back to the size, so the table never renders a hole — worth having, since GitHub's unauthenticated limit is sixty an hour against a sixty-second cache. The count travels with the number of releases it covers, and the cell says so. One page of releases reaches back only so far and most of them are plugin releases, so this is a floor rather than a lifetime total, and the page should not imply otherwise. For social proof: no testimonial has been invented, and none was found to quote. Hacker News has no TablePro thread — the 456 search hits are Tablerone, Tableplop and table_print. What does exist is third-party and checkable: #1 on GitHub Trending on 23 March 2026, and Trendshift's #1 Swift repository of that week. It renders as one fine-print line, linked so a reader can verify it in a click. A trophy row would be louder than the numbers above it, and the numbers are the argument.
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.
Two of the three things the teardown flagged as missing. The third, motion, still is — there are no recordings in this repo and I can't make any.
The download count was arriving all along
Every asset in the GitHub releases payload carries
download_count. The controller mapped straight past it, so the page had no adoption number while one sat in a response it was already caching for sixty seconds. No new request, no key, no database.50,506 across 24 app releases, live from the API.
DMG assets only. Each release also ships a
.zip— that's the feed the installed app updates from, and its count runs close to the DMG's (43,226 vs 50,506). Folding those in would report automatic updates as people choosing to install. The DMG is what the download button serves, so it's the honest one. The test fake gives every zip 9,000 downloads so a regression that counts them can't pass quietly.It replaces the download-size cell rather than adding a seventh — the size was already in the hero fine print and again in the closing CTA, and a third copy bought nothing.
The count travels with the number of releases it covers, and the cell says so. One page of releases reaches back only so far and most are plugin releases, so this is a floor, not a lifetime total, and the page shouldn't imply otherwise.
When the API is unreachable the cell falls back to the size, so the table never renders a hole. That path is not theoretical — I hit it while verifying, because GitHub's unauthenticated limit is 60/hour against a 60-second cache. Both branches are tested.
Social proof: nothing invented, and nothing to quote
No testimonial has been fabricated, and none was found to fabricate from. Hacker News has no TablePro thread — the 456 Algolia hits are
Tablerone,Tableplop,table_printand a cap-table spreadsheet. No Product Hunt launch surfaced either.What does exist is third-party and checkable:
The project's own README already carries the Trendshift badge, so this is published recognition, not a claim about ourselves. It renders as one fine-print line, linked, so a reader verifies it in a click. A trophy row would be louder than the numbers above it, and the numbers are the argument.
What is still missing
Motion. The page asserts sub-second cold start, streaming results and deferred-commit editing in prose over static PNGs. Three six-to-ten-second silent loops would prove two of those. I can't record them, and inventing a screenshot is the same defect as the 4.9-star rating.
Verification
Verified live from the controller before the rate limit hit:
total => 50506, releases => 24.