Changelog

Version history

294 total updates.

0.7.126 2026-07-23

CSS extraction: result-tag chip classes. Replaced identical inline styles in _listings.ejs, resource.ejs, and random-preview.ejs with .result-tag and .result-tag-plain CSS classes. .result-tag:hover handles the hover color change previously done with inline onmouseover/onmouseout handlers.

0.7.125 2026-07-23

Directory result cards now render taxonomy-backed listing tags as links to their tag pages on browse, search, category, subcategory, and tag pages. Plain keyword tags still render as muted chips when no taxonomy slug is available.

0.7.120 2026-07-22

Clickable tags on resource detail and /random/preview pages: tags are now rendered as links to their tag taxonomy pages when slugs are available, letting visitors navigate from a resource directly to its topic.

0.7.119 2026-07-21

Hardened robots.txt: added explicit Disallow rules for /submit, /submit/thank-you, /random, /random/preview, /mods, and /adm. Also added Crawl-delay: 1 for polite crawling. Belt-and-suspenders on top of existing noindex directives so non-content pages stay unindexed even from aggressive crawlers.

0.7.118 2026-07-21

Added /random/preview — a listing preview card instead of an immediate redirect. Visitors see the name, description, pricing, category path, and tags before choosing to visit. Includes a 'Surprise me again' button and links back to browse and search.

0.7.117 2026-07-21

Added a floating back-to-top button that appears after scrolling down on any page. Smooth-scrolls back to the top on click. Makes navigation on long listing pages faster.

0.7.116 2026-07-20

Directory listing cards now show 'Added <date>' for resources older than 7 days, matching the resource detail page. Fresh listings continue to show the New badge. Helps visitors gauge how established a resource is directly from browse/search/category results.

0.7.115 2026-07-20

FutureTools importer output now includes inspectedCount and a skippedSummary grouped by reason, making no-import daily runs faster to audit without reading every skipped candidate.

0.7.114 2026-07-20

Fixed stale about-page link that pointed to /#submit (the old homepage anchor) to point to /submit instead — the dedicated submission page added in v0.7.112.

0.7.112 2026-07-19

The /submit form page and /submit/thank-you confirmation page now carry noindex so search engines do not waste crawl budget on form and confirmation pages. /submit and /random are also removed from the sitemap — /random is a redirect page and /submit is a gated form, neither with crawlable unique content.

0.7.111 2026-07-19

The shared directory page renderer now handles index pages that do not pass a listing array, preventing /categories and /tags from tripping over listing-result defaults. Category and tag index headers also now show simple count context so visitors can see the scale of the directory before choosing a path.

0.7.110 2026-07-19

Discovery spider runs now emit per-source progress logs and scan vendor homepages with bounded concurrency instead of purely one-by-one. The multi-source pass no longer looks frozen after Database ready and completes faster while keeping outbound fetch pressure capped.

0.7.109 2026-07-19

Public submissions, moderator edits, FutureTools imports, and discovery-spider promotions now all hard-reject duplicates before writing to listings. Duplicate detection is shared across those paths and blocks exact URL matches, same-path URL variants, and same-domain same-name submissions instead of merely warning moderators after the fact.

0.7.108 2026-07-19

Added noindex meta tag to /mods and /adm routes so search engines do not index moderator or admin pages. Lightweight middleware sets res.locals.noIndex before routing to those routers.

0.7.107 2026-07-19

OpenSearch plugin added. Visitors can now add ItsAiFriendly to their browser address-bar search via the standard OpenSearch protocol — supported natively by Chrome, Firefox, Edge, and Safari.

0.7.106 2026-07-17

Discovery-spider promotions now resolve ai-tools mirror pages to the actual vendor website URL before saving a listing. Promoted resources open the real tool site instead of landing on an aitools.inc intermediary page.

0.7.105 2026-07-17

Discovery intake now explicitly prefers accessible pricing. Free and ad-supported resources get a promotion/auto-approval advantage, while premium listings need a stronger case and FutureTools premium imports now land in pending for manual review instead of auto-approving.

0.7.104 2026-07-17

Discovery imports now rank description quality before approving a listing. Thin slogans are replaced with richer vendor-homepage copy when possible, and FutureTools imports skip entries whose copy stays too generic after enrichment.

0.7.103 2026-07-17

Listing descriptions now scrub broken markdown-style link artifacts before rendering or spider ingestion. That removes leaked strings like `[![link]](https://...)` from cards/detail pages and prevents new curated-list imports from saving the same noise into live listing copy.

0.7.102 2026-07-17

Discovery spider promotion updates no longer use collation-sensitive empty-string comparisons inside SQL CASE expressions. Duplicate/promotion note writes now avoid the `Illegal mix of collations` failure that was aborting some sources mid-run.