Every release, with notes — so you know what changed.
v0.8.0
Compose tool + editorial posts
FeatureNew /compose tool: pick 1–5 trending items (auto-filled with cross-source clusters on entry), choose a style (Feature long-form / Deep dive / Quick read / Listicle / Personal / Custom prompt), generate a draft via your own AI key, edit with split-pane Markdown + live preview. Drafts saved to localStorage; multi-select sources; per-row copy-title button; output language toggle independent of UI locale.
FeatureNew /posts editorial section: file-system backed posts in src/data/posts/*.md with frontmatter. Sitemap-listed, Schema.org Article JSON-LD per post, OG meta, bilingual. Every post that ships is a deliberate git commit — there is no auth, no DB, no UGC queue.
FeatureCompose → /posts publish flow: '📤 Export for publish' button generates a complete frontmatter + body .md ready to drop into src/data/posts/ and commit. Slug / title / description / cover auto-filled with smart-truncation so descriptions never get cut mid-word.
FeatureUnsaved-changes leave guards on /compose: beforeunload prompt + a capture-phase click interceptor for in-app navigation that Next.js's pushState would otherwise slip through. Amber '● Unsaved' badge next to the Save buttons makes the state visible at a glance.
FixHydration-stable source-chip sort in /compose — localeCompare without explicit locale produced different orders between Node (Linux en-US) and the browser (zh-CN macOS), causing 'Anthropic' vs '爱奇艺' to flip on hydration. Replaced with code-point comparison.
PolishTideNow now has its own favicon (sky-blue rounded square + serif 'T') replacing the Vercel default triangle. Apple-icon.png shipped for iOS Add-to-Home-Screen.
v0.7.2
X (Twitter) trends
FeatureNew source: X (Twitter) Trends — US trending topics with link-out to X search. Sourced via trends24.in (X killed their free trends endpoint and the v2 API costs $5000/mo).
InfraInvestigated TikTok integration: deep enough to confirm Vercel-deployed Node fetch cannot reach TikTok or its scraper mirrors — TLS-fingerprint rejection at TCP level, regardless of geo. Logged as a known gap; viable paths are Apify ($0–5/mo) or a self-hosted curl-impersonate proxy on Fly.io.
v0.7.1
AI discoverability & public API
InfraAdded /llms.txt at the root (the emerging llmstxt.org convention) — a curated, machine-friendly summary of what TideNow is, every URL that matters, the public API contract, and the full source list grouped by category.
Infrarobots.txt now explicitly allows the major AI / search crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Bytespider, Applebot-Extended, Bingbot, etc.) — default-allow already covered them, but listing them removes ambiguity.
InfraHomepage JSON-LD upgraded from a single WebSite to a @graph containing both WebSite and a CollectionPage whose mainEntity is an ItemList of every source URL. Per-source pages now emit their own CollectionPage + ItemList of the current top 25 items, so AI assistants get structured data instead of having to scrape the rendered HTML.
FeaturePublic JSON API at /api/sources/{id} is now CORS-enabled (Access-Control-Allow-Origin: *) and handles OPTIONS preflights. Build your own reader / Raycast plugin / AI agent without a backend proxy.
PolishCard header laid out as two rows so long source names ("The Guardian", "Google Trends", "BBC Sport") no longer squeeze the action buttons.
InfraREADME rewritten with the real project description, public API docs, stack list, and "how to add a source".
v0.7.0
Sharper trending, keyword mute, per-card share
FeatureNew keyword mute filter (⚙ in the header). Comma- or newline-separated keywords are matched case-insensitively against every title across all cards, search, and the cross-source trending panel. Stored only in your browser — no account, no server.
FeaturePer-card share button in every card header. Shares the source's TideNow landing page so clicks come back into the site (with proper OG metadata) instead of bouncing to the publisher.
FeatureAI summaries on the cross-source Trending panel — same hover-with-300ms-dwell behavior as regular card rows, locale-enforced output (UK user reading a Chinese headline gets an English summary back, and vice versa).
FixTrending Across Sources clustering rewritten. Old algorithm grouped by any single shared keyword, surfacing the same article as 3 separate "topics" with unrelated source badges. New algorithm uses keyword-set overlap (≥4 Chinese bigrams or ≥2 stemmed English words) via union-find. Each source badge now links to that source's own version of the story.
Feature80/20 locale mix on trending — English UI gets 6 English + 2 Chinese topics, Chinese UI gets the reverse. The cross-source panel no longer looks like a wall of one language to the wrong audience.
FeatureHover any card thumbnail to preview a higher-resolution version (TMDB 342px posters, Apple Music 512px artwork, AniList large covers, Douban large posters, Reddit preview-size images). Desktop only, 300ms dwell, never blocks clicks.
FixThumbnail fallback chain — if the small image URL is hotlink-blocked (Reddit's b.thumbs CDN is the loudest), automatically retry with the high-res variant before unmounting. Killed broken-image placeholders on most Reddit rows.
Fixwallstreetcn URLs were double-prefixed (https://wallstreetcn.comhttps://wallstreetcn.com/articles/123) because the upstream API already returned absolute URLs. Now detected and used as-is.
FixBehance feed was actually RSS (not Atom) with CDATA-wrapped <link>; the old parser surfaced "<![CDATA[https://...]]>" as the URL. Parser rewritten, also extracts the project thumbnail from <description>.
PolishAI summary now respects user locale strictly — prompts explicitly tell the model "respond in {locale} only" so summaries always match the UI language regardless of headline language. Cache key includes locale so en/zh summaries don't overwrite each other.
PolishFooter gets a GitHub link to the project repo. Description copy on the homepage drops the hardcoded "50+" and says "many more" / "多平台" — keeps things accurate as the source list flexes.
v0.6.0
Thumbnails almost everywhere
FeatureEvery card row now shows a small thumbnail when the source provides one — movie posters, album art, news photos, video stills, GitHub avatars, even per-link favicons for Hacker News.
FixCard image referrer policy switched to strict-origin-when-cross-origin so hotlink-protected CDNs (Douban being the loudest) actually serve their images.
PolishThumbnails are lazy-loaded and gracefully hide on 404 — no broken-image placeholders.
v0.5.0
Entertainment column & 6 new sources
FeatureNew "Entertainment / 娱乐" tab in the top filter bar.
FeatureTMDB Movies + TV trending (needs TMDB_API_KEY env var).
FeatureAniList trending anime — no auth, public GraphQL.
FeatureAwwwards (blog feed) and Behance for design inspiration.
FeatureBBC Sport for sports headlines (replaces ESPN which blocked non-browser clients).
FeatureBilibili Food (美食区) trending videos, via the official region API.
PolishBilibili Hot now shows trending videos (with thumbnails) instead of just hot search keywords.
FixAI summary button (✦) restored in the header — was hidden during the launch period out of trust concerns.
InfraKaopu News disabled — upstream stays stale even with the 48h filter. Source file kept for future reuse.
v0.4.0
Personalized layout
FeatureStar sources you actually read — a new 'Pinned' tab shows only those.
FeatureHide sources you don't care about with ✕. A dedicated 'Hidden' tab lets you restore them any time.
FeatureDrag cards to reorder. Sidebar and main view share a single order — drag in either, the other updates.
FeatureMobile long-press + keyboard sorting via @dnd-kit/sortable. Edge auto-scroll built in.
FeatureHide the 'Trending Across Sources' panel if you don't need it. One-click 'Reset layout' button restores all defaults.
InfraNew per-source landing pages at /source/[id] — sitemap grew from 2 to ~112 URLs.
v0.3.0
RSS subscriptions & polish
FeatureAdd your own RSS / Atom feeds via the '+ RSS' button.
FeatureHeader gets a Feedback link (mailto). AI summary settings entry temporarily hidden — coming back later as a proxied service.
FixLocale-aware time formatting — no more 'Updated 刚刚 / just now ago' duplication.
FixSSR-cached sources older than their TTL refresh in the background automatically.
v0.2.0
Custom domain & Apple Music
InfraMoved from tidenow-web.vercel.app to www.tide-now.com. Cloudflare DNS + auto SSL.
FeatureReplaced Spotify chart (scraped, going stale) with Apple Music official RSS. Switch between Songs/Albums × US/UK/JP/中文区 in a single card.
PolishDefault theme switched from dark to light. Background simplified to white.
FixServer fetch now honors HTTPS_PROXY / HTTP_PROXY env vars (Node fetch ignores them by default).
FixKaopu News now sorted by publish date desc and filtered to the last 48h.
v0.1.0
Initial launch
Feature50+ trending sources aggregated in one page: HN, Reddit, GitHub, Product Hunt, Apple Music, Hugging Face papers, BBC, Reuters, AP, plus a chunk of Chinese sources (Weibo, Zhihu, Bilibili, 36kr, etc).
FeatureCross-source trending: stories that appear on multiple sites get surfaced at the top with source badges.
FeatureHover any headline to get a 1-2 sentence AI summary. Bring your own OpenAI / Anthropic / Gemini / DeepSeek key — keys never leave the browser.
FeatureBilingual (English / Chinese), light + dark themes, mobile-responsive.
FeatureChrome extension that turns the new-tab page into TideNow.