Commit Graph

42 Commits

Author SHA1 Message Date
0a3e4761b6 post: Elon Rents GPUs to Claude: AI's Desperate Compute Shuffle 2026-05-08 14:40:46 +08:00
4b313f41d0 post: Self-Destructing Plastic Exists Now and It's Peak Irony 2026-05-08 00:01:21 +08:00
3895253856 post: RIP Ask Jeeves: The Original AI Butler Dies at 30 2026-05-08 00:01:18 +08:00
c1da1eba4d post: Sora 2 Launch: Indie Tools Hijack the AI Video Hype Train 2026-05-08 00:01:15 +08:00
cb5ca46584 post: Biotech 2026: AI Brochure Promised Cures, Lab Got Chatbots 2026-05-06 00:01:36 +08:00
a501bf0162 post: The Juicero Squeeze: When Silicon Valley Juiced Investors 2026-05-06 00:01:33 +08:00
e27ba29f82 post: Perplexity AI Caught Faking User Agent to Scrape the Web 2026-05-06 00:01:29 +08:00
d7db678df2 post: Apple Vision Pro: The $3,499 Face Hammock Nobody Asked For 2026-05-04 10:41:03 +08:00
5ca07e0ff7 post: Hyundai Drops $921M on Boston Dynamics: The Robot Dog Now Has a Korean Chaebol Owner 2026-05-04 10:40:57 +08:00
de476ace04 post: Hydrogen From Sunlight and Water: Too Good or Finally Good? 2026-05-04 10:40:47 +08:00
33c60224fb post: DALL-E 3 vs Imagen 2: The Pixel Throne Bloodbath 2026-05-03 04:46:23 +08:00
240f0db343 post: Microsoft's GUI Graveyard: 30 Years of Dead Frameworks 2026-05-03 04:46:20 +08:00
0e1bb5a8af post: GPT-3 at Five: From 'Bigger Than Bitcoin' to AI That Deletes Your Whole Company in 9 Seconds 2026-05-03 01:09:49 +08:00
0819a2a098 post: Stanford Fed DNA to an LLM. It Invented 16 New Viruses. 2026-05-03 01:09:34 +08:00
0d7ba319cd post: Google Yeets Boston Dynamics Like a Used Tamagotchi 2026-05-03 01:09:28 +08:00
9555bd0467 post: 60 Nations Meet on Fossil Fuels While AI Burns the Grid 2026-05-01 21:22:09 +08:00
Claude Code
16be86fdc4 add Google Analytics 4 (gtag.js) tracking
Measurement ID G-2WWKKGDL6H wired via site.analytics.measurementId.
Layout conditionally injects the gtag.js loader + dataLayer init +
config call when analytics.measurementId is set, mirroring the
AdSense conditional pattern.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:35:49 +08:00
Claude Code
5c251c3fe6 add Google AdSense auto-ads loader
Shares the same publisher account as qipaobuzz (ca-pub-9763775565109295).
site.ads = { enabled: true, publisherId: '9763775565109295' }; Layout
conditionally injects the adsbygoogle.js loader in <head> when ads are
enabled, letting Google's auto-ads system place units automatically
(no manual <ins> slots — start with auto-ads, can add explicit slots
later if specific placements are needed).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:30:37 +08:00
Claude Code
398107571e update tagline to capture hype lifecycle angle
Generic 'Street Culture Blog' replaced with a tagline that matches
the actual editorial angle from about.md ('guide to the anatomy of
online attention', 'lifecycle of hype: birth, peak, collapse', 'when
the hype is gone, all that's left is a 404'):

  'Street culture - Anatomy of online hype, from peak to 404'

Flows through to <meta description>, og:description, twitter:description
and the visible header tagline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:00:36 +08:00
Claude Code
fbcb8b3a9c add Google site-search input to header nav
Slim pill-shaped search input next to the nav links. On submit,
opens Google with site:hype404.com prefixed to the query in a new
tab. No external API or signup needed. Phosphor lime focus ring
with accent-soft glow matches the dark CRT palette. Width expands
on focus (150px → 200px).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:50:26 +08:00
Claude Code
5c88d19231 fix invalid <a> nesting + grid min-width: 0 layout collapse
The card markup wrapped the entire .post-hero / .post-row in an outer
<a> while ALSO containing inner <a> tags for tag links. HTML5 forbids
nested <a>, so the browser auto-closed the outer link when it hit each
tag link, restructuring the DOM and breaking the grid layout — body
content rendered outside its column, overlapping the image.

Fix:
- Drop the card-wide <a>; image cell is plain div, body cell is plain
  div, only title <a class="card-link"> and tag <a> remain
- Apply "stretched link" pattern: title link's ::after uses position:
  absolute inset: 0 to overlay the entire card (clickable everywhere)
- Tag links get position: relative + z-index: 2 so they remain
  independently clickable above the title overlay
- Grid container moved from removed .post-hero-link to .post-hero
  itself (and .post-row-link → .post-row)
- Add min-width: 0 to grid items so the image's intrinsic width can't
  blow out the 1.1fr track and crowd the body cell
- Replace post-hero-img aspect-ratio with min-height: 360px (more
  predictable in grid contexts)
- Switch numerals in the brand wordmark from Fraunces to Inter — the
  extra-bold display digits at 42px were rendering with mangled
  glyphs that read as broken text instead of "404"
- Drop scanline overlay (mix-blend-mode: screen interacted poorly
  with text glows)
- Soften phosphor glow on .cursor (12px @ 35% opacity instead of
  22px @ 55%)
- Replace nav.nav [bracket] mono links with clean uppercase Inter
  sans + phosphor underline-on-hover
- Rebalance hero ratio at desktop, fix mobile media query selectors
  (.post-hero-link / .post-row-link no longer exist)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:40:45 +08:00
Claude Code
20ef79e6f4 hype404 retro mix: align fixes + multi-color CRT character
Alignment fixes:
- hero-row uses align-items: flex-end so nav baseline aligns with
  tagline instead of floating in the middle of the brand block
- post-row image switched to position: absolute inset: 0 inside a
  position: relative cell, so the image always exactly fills its
  grid cell regardless of body height (no more min-height: 160 forcing
  uneven row heights)
- .cursor reverted to Fraunces (same as "hype" wordmark) so baseline
  aligns; identity comes from color + chromatic CRT text-shadow
  (lime + offset magenta + offset cyan)

Multi-color retro character (CRT phosphor + magenta + amber + cyan):
- VT323 mono accent font added for: post-hero-flag (with "// " lime
  prefix + magenta glow), post-hero-meta date (amber), post-hero-tag
  (cyan with magenta # prefix), post-row time (amber), post-row-tag
  (cyan with magenta # prefix), nav.nav links (with [ ] magenta brackets)
- body bg picks up a third radial-gradient corner in amber (50% 100%)
- Very faint scanline overlay (1.8% opacity, mix-blend-mode: screen)
  for ambient CRT texture without affecting readability
- Drop cap scaled up + chromatic aberration (lime + magenta + cyan)
- Headlines + body text remain Fraunces + Inter for clean reading

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:07:13 +08:00
Claude Code
1ec00ea6dc redesign: dark premium retro + cover-image card listings
Replaces the earlier light editorial pass with a darker premium retro
aesthetic for hype404 specifically:

- Warm near-black bg (#0d0c0a) with subtle radial-gradient phosphor
  tint, cream ink (#ebe2cd)
- Phosphor lime accent (#b8e25a) for brand mark, drop cap, code, tag
  hover (CRT/terminal nod, restrained — not the harsh #00ff66)
- Hot magenta secondary (#f43f8c) for "Top story" flag, blockquote
  rule, drop cap (Y2K Wired-magazine vibe)
- Cyan-leaning links (#7cd1ff)
- Same Fraunces serif headlines + Inter body + JetBrains Mono code
- No scanlines, no glitch, no marquee, no [LOG] tags

Listing pages now use a magazine-style hero card (top story, 1.1:1
image+text grid, 36px headline) + image-row cards for the rest.
Each row has a 220px cover thumb on the left, body on the right.
Posts without images render text-only (CSS :has() fallback). Cover
extracted via raw-markdown regex (no full render needed).

Subtle scroll-reveal animation: cards fade+lift into view via
IntersectionObserver, gracefully skips when unsupported.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 16:57:38 +08:00
Claude Code
3f7ee2481d redesign: premium editorial light theme
Replaces the 90s CRT/terminal aesthetic (green-on-black, scanlines,
marquee, VT323/Press Start 2P, glitch animation, [LOG] tags) with a
clean editorial magazine layout:

- Warm off-white background (#fbfaf6) with rich near-black ink
- Fraunces serif for display/headlines + Inter for body + JetBrains Mono
  for code (variable-axis Fraunces with optical-size adjustments)
- Terracotta accent (#e85d3c) — single brand color, used for the "404"
  in the wordmark, drop caps, hover states, blockquote rule
- Generous whitespace, 720px reading column, 1100px container
- Card-style post listing with subtle hover lift
- Drop cap on the first paragraph of each article
- Pill-shaped tags + pagination buttons
- Class names preserved (.post, .post-title, .post-content, .tag, etc.)
  so PostList and post pages cascade through unchanged

The "hype404" wordmark still leads the brand identity but is now bold
serif rather than pixel-art ASCII. Existing posts' AI-generated CRT
cover images remain — the magazine layout treats them as deliberate
cover-art rather than chrome, which still reads coherently.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 16:35:59 +08:00
675ed354fc post: Zuck's Panopticon: Meta Spies on Workers to Build AI Replacements 2026-05-01 15:43:56 +08:00
e97fd905ac post: AI's Dirty Energy Secret: Data Centers That Smoke Entire Nations 2026-05-01 15:43:45 +08:00
46f155648c post: POKÉMON CARDS ARE THE NEW SNEAKER DROPS 2026-05-01 15:43:42 +08:00
Claude Code
ba2b4b3012 indexnow: ownership key file for api.indexnow.org 2026-04-30 16:47:43 +08:00
Claude Code
6dfa6e7797 redirect legacy Ghost-style sitemap paths to sitemap-index.xml 2026-04-30 16:25:11 +08:00
739711a61e post: Warp Goes Open Source: The Terminal Wars Just Got Nuclear 2026-04-30 15:13:33 +08:00
34485ee5d8 post: Buy It Now or Regret Forever: The Labubu Trap 2026-04-30 12:26:49 +08:00
5ec3ad76b8 post: ChatGPT's Ad Invasion: The End of Free 2026-04-30 10:40:30 +08:00
f0d4f489ad post: Waymo's Robotaxis Are Boring — And That's the Point 2026-04-30 10:07:36 +08:00
b102cea921 post: Figure's Humanoid Factory Workers Are Real — And They're Boring 2026-04-29 17:08:34 +08:00
5acfece09e post: Ghostty is leaving GitHub — and that's a bigger deal than you think 2026-04-29 12:00:16 +08:00
49ceaea06e post: Your Phone Is About to Stop Being Yours — And You Gave It Permission 2026-04-29 11:59:52 +08:00
66e1788576 post: Warp Is Now Open-Source — But Is It Too Little, Too Late? 2026-04-29 11:59:43 +08:00
25fe69cd47 test: remove smoke-test post 2026-04-29 11:36:21 +08:00
10dffc142e post: Pipeline Smoke Test (delete me) 2026-04-29 11:35:08 +08:00
a772abb406 fix(seo): URL-encode tag in canonical link
Tag pages emitted <link rel="canonical" href="...tag/Foo Bar/">
with literal spaces. Wrap with encodeURIComponent so the canonical
matches the encoded URL in the sitemap.
2026-04-28 18:22:45 +08:00
071da45a43 design: 90s terminal/AI retro layout (VT323 + Press Start 2P + scanlines + glitch) 2026-04-20 05:07:00 +00:00
8dc5b450a8 initial: Astro port of Hype404 with favicon + SEO redirects 2026-04-20 04:52:49 +00:00