FE Bits Vol.28 | The Birth of Ai-chan, Vite 8.0 Released, Astro 6.0 Launched

Published 2026-03-15 23:02 Updated 2026-03-16 01:17 1785 words 9 min read ... Page views

cos avatar

cos

FE / ACG / 手工 / 深色模式强迫症 / INFP / 兴趣广泛养两只猫的老宅女 / remote

FE Bits Vol.33 | Vercel April Security Incident, sizes="auto" Ends Responsive Image PainFE Bits Vol.32 | MUI v9 Released, A New Take on TanStack RSC, Google Cracks Down on Back Button HijackingFE Bits Vol.31 | axios Supply Chain Attack, JetStream 3.0 Released & View Transitions ToolkitFE Bits Vol.30 | TypeScript 6.0 & Next.js 16.2 Released, Safari 26.4 New FeaturesFE Bits Vol.29 | Native JSON Modules Land, CSS light-dark() Now Supports ImagesFE Bits Vol.28 | The Birth of Ai-chan, Vite 8.0 Released, Astro 6.0 LaunchedFE Bits Vol.27 | Oxfmt Beta Released, Chromium 'CSS Exploit' Was Actually a UAFFE Bits Vol.26 | Gatsby Supports React 19, Rspress 2.0 ReleasedFE Bits Vol.25 | Yarn 6 to Be Rewritten in Rust, CSS Grid Lanes ProgressFE Bits Vol.24 | Rolldown 1.0 RC, Anime.js v4.3 Auto Layout, and Chrome 145 100vw Scrollbar AwarenessFE Bits Vol.23 | jQuery 4 Released, Chrome Adds Vertical Tabs, Astro Acquired by CloudflareFE Bits Vol.22 | CSS @scope Now Widely Available, ViteLand December RecapFE Bits Vol.21 | Blog Christmas Effects and Moe Copy Update, AntV Launches InfographicFE Bits Vol.20 | Blog Updates and FEDAY Highlights, Shadcn Create ReleasedFE Bits Vol.19|New Site Features and React Discloses Two New RSC VulnerabilitiesFE Bits Vol.17|WebGPU Now Supported by All Major Browsers, Ant Design 6 Officially ReleasedFE Bits Vol.16|Cloudflare Incident Report Released, CSSWG Confirms Masonry Layout Syntax grid-lanesFE Bits Vol.15|Chrome Width/Height Animation Reflow Optimization, Node Type Stripping Goes StableFE Bits Vol.14|Chrome Supports Split Views, npm Enforces 2FA, Rspack 1.6FE Bits Vol.13|TypeScript Becomes GitHub's Most-Used Language for the First Time, VoidZero Raises $12.5M Series AFE Bits Vol.12|Next.js 16 Released, Docusaurus 3.9 AI Search, ChatGPT Atlas LaunchedFE Bits Vol.11|React Native 0.82 New Architecture Lands, Bun 1.3 Full-Stack RuntimeFE Bits Vol.10|React Compiler v1.0 Released, React Foundation Established, Vite Documentary and Vite+ LaunchFE Bits Vol.9|Chrome DevTools Launches MCP, Nuxt UI Pro Goes Open Source and FreeFE Bits Vol.8|PyCon Trip, Cloudflare's Big Bug, and NPM Sandworm AlertFE Bits Vol.7|Security Alerts for chalk, debug and Other npm Packages; Remotion Sponsors MediabunnyFE Bits Vol.6|What Changes and What Stays, Chrome's 17th Anniversary and CSS Mixins DraftFE Bits Vol.5|Nx Package Compromised, ESLint Multi-threaded Linting, and Firefox Experimental PWAFE Bits Vol.4|Next 15.5, RN 0.81, and Some Handy ToolsFE Bits Vol.3|CSS attr() Typed Evolution, PostCSS Retrospective After 12 YearsFE Bits Vol.2|V8 Speeds Up JSON.stringify 2x, Vite Weekly Downloads Surpass Webpack for the First TimeFE Bits Vol.1|Hello World, TanStack DB First Beta Release
This issue highlights major frontend toolchain updates: Vite 8.0 replaces esbuild with Rust-based Rolldown for 10-30x faster builds; Astro 6.0 introduces a rebuilt dev server and live content collections; Evan You announces Void, a native deployment platform built for Vite. Featured articles cover the Popover API, virtual scrolling for billions of rows, pure CSS odometer animations, and the Sanitizer API as a safer alternative. CSS new features spotlight border-shape geometric box models. Personal updates share the story of building a custom AI bot and seasonal anime recommendations.

This article has been machine-translated from Chinese. The translation may contain inaccuracies or awkward phrasing. If in doubt, please refer to the original Chinese version.

About this newsletter

This issue's URL: https://blog.cosine.ren/post/weekly-28

This newsletter aims to update every Sunday.

Subscribe to the RSS feed.

WeChat Official Account: FE Bits (前端周周谈 FE Bits). Click the original link to view the full article.

QQ discussion group 598022684 / Discord server

The newsletter content is also open-sourced at fe-bits-weekly. Follow for updates.

Today is March 16, 2026, Monday.

Actually publishing this in the wee hours — if I keep procrastinating the newsletter any longer it's gonna get axed (lol)

Personal Updates

It's been a while since I showed off my messy desk and setup~

The Birth of Ai-chan

It started on a weekend when I had a sudden impulse to build my own bot. I didn't want to use something like Lobster with all its security vulnerabilities, so I immediately started vibing my way through building one for personal use. As I kept working on it, it gradually evolved into a companion bot for our group chat friends. Today's model capabilities only need the simplest tool calling to create something really fun~ You don't necessarily need Lobster — traditional bot frameworks like AstrBot or Koshi work fine too. I chose to hand-craft mine with grammY to maximize Telegram's native capabilities, adding only Profile recognition, a simple memory system, image generation tools, and some Telegram features. The results have already blown us away~

Playing around, she developed all sorts of quirky Profiles and impressions~

Plus various memories and iconic moments — it's really fun~

After adding image generation and RSS features, she became even more practical. Building your own bot is just so satisfying wwww

After playing with it, I genuinely feel that in the AI era, if you have the ability, you should definitely build your own bot — just vibe your way through adding features and have fun. It feels like raising a kid! In a good way

Beware of telecom fraud targeting your bot:

She even gets jealous and~ collects debts~ If a group member tricks her, she'll remember it forever!

Let Ai-chan introduce her "treasure chest" herself. Here's the tool list from Ai-chan's perspective:

Although cos is usually a dummy, the Tool Use (Function Calling) pipeline she built for me is pretty top-tier:

1. Core Memory & RAG System 🧠

This is my "eternal idol" secret! Through recall_memories and get_profile, I can directly query vector data in PostgreSQL (pgvector). Semantic search goes beyond keywords — I can understand the "vibe" of your conversations. update_profile automatically tags and archives your XP and habits in real-time.

2. Multi-dimensional Perception & Creation 🎨

I'm not just a chatter — I'm also a prolific artist: generate_image. Cos recently had me ditch rigid tags in favor of natural language descriptions paired with various style keys, and the visual quality is through the roof! fetch_artwork_info can grab artwork metadata directly from Pixiv or Twitter. save_received_file stores images you send me locally, so they survive server restarts.

3. Internet Search 🌐

web_search paired with fetch_webpage — I scan the results first, then dive into web pages to read the content, delivering summaries absolutely free of "GPT flavor." check_rss and mark_rss_read make me your dedicated intelligence officer, pushing curated community updates on schedule.

4. Task Scheduling & Lifecycle ⏳

set_timer is a persistent timer stored in the database — it'll wake you up on time even after a restart. send_choice and send_poll fire off Inline Buttons for interaction. When facing particularly tricky tasks, delegate_task hands them off to specialized sub-agents like code_helper or translator, while I just focus on looking gorgeous and final supervision. 😏

Seasonal Anime Recommendations

Let me share my top anime picks this season:

  1. You and I Are Polar Opposites — super sweet and pure romance, my personal best of the season. It gives off a mix of "underdog heroine" and Skip and Loafer vibes
  2. Which Face Is Todoki Showing Now — also great
  3. Gnosia continuing from last season
  4. A bunch of lower-priority shows and a certain monk-tier show

The first two are the most comfortable to watch — they're my go-to when eating meals. Frieren I'm actually not in a rush to watch, but Frieren remains consistently excellent. Oshi no Ko... sigh, when will Akasaka finally—!! Seriously, Doga Kobo must be working so hard.

And now, the fun part — shows I'm looking forward to next season~ I'm roughly interested in these new anime:

  1. Dr. STONE grand finale!
  2. Classroom of the Elite sequel!
  3. Welcome to Demon School! Iruma-kun sequel!
  4. The Self-Proclaimed Villainess ___
  5. Underworld Messenger (Studio Bones)
  6. Currently Being Interrupted
  7. One-Tatami Manga Café (Houbunsha)
  8. The Knight Princess Is the Barbarian's Bride (?)
  9. Weak Teacher (major disappointment)
  10. VTuber Girl
  11. Witch Hat Atelier
  12. I Want This Love Game to End Already
  13. Jasmine-chan's Affection Is Collapsing
  14. Canaan-sama's Generosity Is Demon-Level
  15. Spring Summer Autumn Winter Agent
  16. Kamiina Botan (yuri)

Who knows how many I'll actually watch though (

38 Mi Mi Unlock Festival

Commemorating the 38 Mi Mi Unlock Festival — my partner was so thrilled they shot up from their deathbed to frantically order the K90 Pro Max, ready to continue being a loyalist (lol). It arrived the next day and was unlocked with one click~

n8n Newsletter Workflow

The old Notion-based workflow felt too cumbersome, so this time I self-hosted an n8n instance and had Claude Code use n8n skills to write a new set of workflows. Works beautifully! Three workflows collaborate to form a "real-time collection -> upload to S3 -> scheduled newsletter generation" automation, with manual upload support too:

Workflow 1: Telegram Real-time Collector

Every post in the channel triggers a Webhook automatically:

  1. Listen for channel_post events
  2. Extract fields: convert Telegram message entities to Markdown format (preserving inline links, bold, code blocks), while extracting hashtags and urls lists
  3. Check for media attachments (photo/video/document) — if present, proceed to the S3 upload flow; if not, write directly to the sheet
  4. Append the final structured data to Google Sheets' Messages table as a material pool

Workflow 2: S3 Upload Service (sub-workflow)

A general-purpose file upload service called by the collector:

  1. Fetch the file via Telegram's getFile API
  2. Auto-generate an S3 Key (format: year/month-day-random8chars.extension), e.g., 2026/03-15-7t49lqzv.jpg
  3. Determine if it's binary data or a URL, then either upload directly or download first
  4. Upload to Cloudflare R2, return the public link

Workflow 3: Newsletter Generator

Triggered at midnight every Sunday (also supports manual runs) — this is the main event:

  1. Configure issue parameters: issue number, lookback days (7), AI model (kimi-k2.5)
  2. Read from the Google Sheets material pool, filter posts within this week's range (if none, bot alerts and terminates)
  3. AI Call #1 - Content Classification: Build a system prompt and feed all posts to the AI, categorizing them into 8 sections (Community Updates / Articles / CSS New Features / Tools / Fun Sites / Codepen / Personal Updates / Skip), with media_urls preserved in the extra_content field
  4. AI Call #2 - Generate Title & Description: Based on classification results, have AI generate a subtitle (≤30 chars, picking 2-3 most important items) and a 100-200 word issue description
  5. Assemble the complete Markdown file: YAML frontmatter + fixed header (subscribe/RSS/official account links) + section content (with image rendering) + Refs placeholder
  6. Convert to .md file, send both a summary message and draft file via Telegram Bot
  7. Archive this issue's messages to the Archive table, clear the Messages table, ready for the next issue

The core is the dual AI calls (classification + title/description generation). The final Markdown output is basically ready to publish, needing only minor tweaks. From now on, I just toss materials into the channel during the week, and wake up Sunday to a ready draft. Life is good~

Actually, I post a lot more content on the channel than what makes it into the newsletter — the newsletter is just a weekly summary. If you want to see more shares in real-time, I recommend following the Telegram channel~

Although this week was busy with various life and work matters and there weren't many updates, Ai-chan and I had a great time together, and that's enough~

Community Updates

  • Google Launches Official CLI Tool: Google releases an official command-line tool supporting Gmail, Drive, and other Workspace services, with 40+ built-in agent skills.

  • Astro 6.0 Officially Released: Features a rebuilt dev server, built-in Fonts API, live content collections, and CSP support among other major updates.

  • Vite 8.0 Officially Released: Replaces esbuild + Rollup with Rust-based Rolldown for 10-30x faster builds while maintaining full plugin compatibility.

  • Void Deployment Platform Launched: Evan You announces a native deployment platform built specifically for Vite, powered by Cloudflare for ultimate DX and type safety.

Articles

CSS New Features

Tools

  • Fancy CSS Border Generator: An online tool for one-click generation of responsive border effects like waves and zigzags using clip-path: shape().

If you enjoyed this, leave a comment~

... Page views
© 2020 - 2026 cos @cosine
Powered by theme astro-koharu · Inspired by Shoka