Commit Graph
486 Commits
Author SHA1 Message Date
Vinta ChenandClaude cf804b5f78 fix: shorten the search placeholder on phones
The full placeholder was cut off on narrow screens, e.g. "Search 529 projects across 74".

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 16:36:33 +08:00
Vinta ChenandClaude ebdda1367c fix: keep the UTM label on one line in its code chip
The inline code in the sponsorship UTM note broke across lines at 1280px.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 16:36:33 +08:00
Vinta ChenandClaude 6769bc86bb feat(website): tell sponsors about UTM tags on the sponsorship page
SPONSORSHIP.md tells sponsors their links carry UTM tags, but the /sponsorship/ page, which mirrors it, left that out.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 16:28:44 +08:00
Vinta ChenandClaude 85912280e2 style: enlarge back-to-top tap target to 37x36px
The table header's back-to-top button had a 37x20px tap target, below the WCAG 2.2 minimum of 24x24px.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 16:26:27 +08:00
Vinta ChenandClaude 766bff0c08 style: set sponsor band apart from the search section and mark names as outbound links
The sponsor band's background faded from --bg-paper-strong to --bg-paper, ending lighter than the page below it, with only a faint bottom border, so the band blended into the search section and read as its intro rather than a sponsor placement; the sponsor name also gave no cue that it links out.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 16:22:57 +08:00
Vinta ChenandClaude 2c0145fbbc style: wrap tier billing line under price and keep amounts with units
The longer billing lines added with the annual prices broke across two or three lines beside the price and split amounts from their units.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:51:43 +08:00
Vinta ChenandClaude 9b43e6e337 fix: collapse home hero category list into a disclosure on phones
On phones the hero's 74-link category grid was 1,236px tall and pushed the project table down to 2,583px, over three screens.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:36 +08:00
Vinta ChenandClaude 5f2bff2845 fix: show Downloads instead of Stars on narrow screens
Below 960px the table hid the PyPI Downloads column but kept the default downloads sort, so the visible Stars column looked unsorted and the active sort header was not shown or tappable.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:36 +08:00
Vinta ChenandClaude f45997e386 fix: draw one focus outline on a focused table row
Keyboard focus on a table row drew one box per cell, because the focused row fell back to the browser's default outline and each cell also got an inset accent stripe on its left edge.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:35 +08:00
Vinta ChenandClaude 94126bc6bc style: tighten sponsorship hero kicker spacing
The sponsorship hero kicker sat farther above the heading than the heading sat above its subtitle, so the label read as detached from the heading it labels.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:35 +08:00
Vinta ChenandClaude af4f4f8d2f fix: scale category subtitle margin with the hero heading
The subtitle's fixed top margin did not grow with the fluid h1, so heading descenders crowded the subtitle on category and sponsorship heroes.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:35 +08:00
Vinta ChenandClaude 537aff4a46 style: set sponsorship ledes in Manrope and stack past sponsor names above descriptions
The sponsorship ledes were set in Cormorant Garamond, whose short x-height and thin strokes read poorly across a paragraph, and past sponsor names shared a baseline with Manrope descriptions, where the mismatched x-heights clash.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:35 +08:00
Vinta ChenandClaude b3b3bc202f style: raise tier eyebrow and fact labels to text-sm
On the sponsorship page the tier names and fact labels rendered smaller than the "/ month" cadence beneath them, inverting the hierarchy.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:19 +08:00
Vinta ChenandClaude ede39d7ad1 style: round ad-hoc font sizes into scale tokens
Roughly 20 ad-hoc font-size values rendered near-duplicate sizes 1-2px apart, reading as noise rather than hierarchy, and .hero-category-link rendered below the documented 12px floor.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:19 +08:00
Vinta ChenandClaude a1f29c58f7 fix: use lining figures for tier prices
Sponsorship tier prices rendered in Cormorant Garamond's default old-style figures, so zeros sat at x-height and the 5 dropped below the baseline, making "$500" hard to read.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 15:49:19 +08:00
Vinta ChenandClaude 786ebb4c78 feat(website): show the sponsor band on category pages
The sponsor band rendered only on the homepage, so visitors who entered on a category page and never opened the homepage saw no sponsors. Category, subcategory, group, and Stdlib pages now show the same band between the hero and the table.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 45ad644f1b refactor(website): move the sponsor band into a template partial
The sponsor band markup lived inline in index.html, so another page could show it only by copying the markup. The rendered homepage is byte-identical.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 636584efd2 feat: include a small logo in the Featured sponsor tier
Featured cost $200/month, about twice Indie Dev's $99, yet offered the same text-only README entry and website link, leaving little visible reason to pick it over Indie Dev. Featured now includes a small logo next to its README entry and a logo on the website, and the Get Started content list asks Featured sponsors for a logo.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 69d35b2462 feat: tag sponsor links with UTM parameters
Sponsor links carried no UTM tags, so sponsors saw awesome-python clicks at best as generic referral traffic and could not tell README clicks from website clicks. README sponsor entries now carry utm_source=awesome-python&utm_medium=sponsorship&utm_campaign=sponsor&utm_content=readme, and the website build rewrites utm_content to website for the sponsor band. New sponsor entries in README.md need the same UTM suffix.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 94f70f8425 feat: show lowest sponsor price and link README CTA to the website
The README sponsor CTA linked to SPONSORSHIP.md, so sponsor-page visits from the README never reached GA4.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 07c3e3eb4c feat: add annual sponsorship pricing with 3 months free
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 7e6baa968b feat(website): send a GA4 event on sponsorship email clicks
Mailto clicks on the sponsorship page leave no page view, so the sponsor funnel ended at the sponsorship page and never showed who went on to email. Each click now sends a sponsor_contact event with a short tier value (headline, featured, indie, or general) rather than the link URL, since GA4 caps event parameter values at 100 characters and the Indie Dev mailto href is 101.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:21 +08:00
Vinta ChenandClaude d78d1f1a2f fix: isolate sitemap lastmod test from inherited GIT_* variables
The test ran git init/add/commit with the inherited environment, so under a git hook or `git rebase --exec` (which set GIT_DIR) it committed fixture commits into the real repository and flipped its core.bare to true.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:08:27 +08:00
Vinta ChenandGitHub 3e8c86bac6 Merge pull request #3376 from Aurantium-47/codex/preserve-keyboard-link-navigation
fix(website): preserve keyboard link activation in project rows
2026-10-17 16:58:56 +08:00
Vinta ChenandClaude 1ebff58bf9 feat: link category intro picks to their table rows
Picks in a "How to choose" list were plain text, so a reader had to hunt for the tool's row in the table.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 19:45:38 +08:00
Vinta ChenandCodex abfab010e9 docs: restore dogpile.cache in general caching
Replacing framework-independent dogpile.cache with Django-only django-redis removed the shared Redis and Memcached cache use case, and a single Caching group conflated distinct jobs.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:19:49 +08:00
Vinta ChenandCodex 32ac8c9b3c fix: reopen parked projects in incremental star scans
Parking a project during a full review left its previous screen-out or rejection active, so incremental scans hid it instead of revisiting it.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:18:59 +08:00
Vinta ChenandCodex 3827f0e622 fix: preserve review row kind when parking a verdict
Seeding an uncertain addition or listed entry as park erased its row kind, so review offered structure actions and exported the wrong verdict.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:17:28 +08:00
Vinta ChenandCodex 17fd2e592f docs: move Faiss into vector search
Faiss indexes vectors and integer IDs rather than storing documents and metadata, so its Database placement contradicted the category definition.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:17:28 +08:00
Vinta ChenandCodex af6034cd63 docs: replace unsupported DiskCache comparison
The guide claimed DiskCache required less effort than every other Python caching library without comparative evidence.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:16:15 +08:00
Vinta ChenandCodex adb931c357 docs: qualify Magika memory claim
The guide claimed Magika never loads a complete file into memory, but the documented guarantee applies to large files.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:16:15 +08:00
Vinta ChenandCodex 65e23805a1 docs: explain how to prune Optuna trials
Calling report() and should_prune() alone did not stop an unpromising trial because should_prune() only returns a boolean.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:16:15 +08:00
Vinta ChenandClaude 7f5fee1997 docs: add mise to Environment Management intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:53 +08:00
Vinta ChenandClaude cd7b3e4f62 docs: add Magika to File Manipulation intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:51 +08:00
Vinta ChenandClaude c63397f8d6 docs: add pypandoc to File Format Processing intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:49 +08:00
Vinta ChenandClaude ca9dcd2fee docs: add Silk to Debugging Tools intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:47 +08:00
Vinta ChenandClaude b21e83d3c2 docs: add ast-grep to Code Analysis intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:45 +08:00
Vinta ChenandClaude bd60f86c54 docs: add Faiss to Database intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:43 +08:00
Vinta ChenandClaude bb0847ff02 docs: add pgvector and APSW to Database Drivers intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:40 +08:00
Vinta ChenandClaude f2a18283fd docs: add OpenCC to Natural Language Processing intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:37:40 +08:00
Vinta ChenandClaude 4143a9847c docs: add Betterleaks to Supply Chain Security intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:24:59 +08:00
Vinta ChenandClaude 550a5e81f6 docs: add cloudpickle and dill to Serialization intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:24:58 +08:00
Vinta ChenandClaude 83bc124112 docs: add Optuna to Machine Learning intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:24:58 +08:00
Vinta ChenandClaude d1bc56abfb docs: replace jev-ultrafast with Scrapling in Web Scraping intro
The intro recommended jev-ultrafast, which was removed from the list, and missed Scrapling, which took its slot.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:24:56 +08:00
Vinta ChenandClaude f664e3b55a docs: cover local LLM inference in AI and Agents intro
The README split LLM Inference and Serving into Local LLM Inference and LLM Serving, but the intro still grouped MLX LM with vLLM and SGLang and said nothing about Ollama or llama-cpp-python.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:24:55 +08:00
Vinta ChenandClaude f1e3eff74f docs: rewrite Caching category intro
The intro's lead and guide recommended dogpile.cache, which the list no longer carries, and never covered django-redis, which replaced it.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:24:44 +08:00
Vinta ChenandClaude 3322bb3ce7 feat: add betterleaks to Supply Chain Security > Secret Scanning
Leaked secrets are a supply chain risk that dependency audits don't cover, so Supply Chain Security splits into Dependency Audits and Secret Scanning.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:54 +08:00
Vinta ChenandClaude 9a0040257b feat: add mise to Environment Management
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:23 +08:00
Vinta ChenandClaude 187b25bb1d audit: remove jev-ultrafast from Web Scraping > Frameworks
Removed: jev-ultrafast (no PyPI download signal; not published on PyPI): its README calls it an MVP and it needs a hosted API key, so the challenger slot goes to scrapling in the next commit. This overrides the Challenger Exception recorded 2026-10-02.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:03 +08:00
Vinta ChenandClaude 71bd580429 refactor: split LLM Inference and Serving into Local LLM Inference and LLM Serving
Local runners (ollama, llama-cpp-python, mlx-lm) and production serving engines (vllm, sglang) answer different needs, and one use case could not hold both at the cap. The old page redirects to LLM Serving.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:23:29 +08:00