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.
This issue’s URL: https://blog.cosine.ren/post/weekly-24
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 January 25, 2026, Sunday.
Personal Updates
Random Thoughts
Some random musings:
The more I use AI, the more I get this feeling of “ah, it really can’t replace me” — especially when it does something dumb.
But at the same time, it’s genuinely convenient and has actually saved me a lot of free time. A love-hate relationship.
It’s no surprise that many programmers resist AI-written code. Architecturally, it really can make dumb mistakes, and anyone with code cleanliness standards would think “I’d rather just write it myself.” But for repetitive business work, it really is a huge timesaver.
While the broader market and capital seem to be in an AI frenzy, from my personal experience, the average programmer’s life has shifted from writing code to reviewing plans and reviewing/fixing code. It’s actually more enjoyable, and I have more energy for my own projects.
AI really tends to create tech debt. Now after every coding session, I have Opus 4.5 review it once and Codex review it once — only after they’ve both gone through it do I take a look myself, and it’s much better. Their self-reviewing actually works quite well though.
PS: This applies to frontend/Swift only. For backend, I can only speculate based on colleagues’ experiences.
Project Updates
I really like Moe Copy AI’s content extraction feature now!
You can directly select and extract tweet threads for summarization. I plan to add common selectors in the next version — currently it still extracts from directly selected elements for summarization.

This week Moe Copy AI released v0.3.0. I’m so grateful that @hakadao finally helped overhaul the messy AI-generated UI. The work was massive, and the UI is so much cleaner now! (#26)
Although we’re still iterating, I couldn’t stand the old one anymore so I pushed a release.

Blog Updates
On the blog side, I recently set up TestFlight for our Electron app on Mac, using GitHub Actions for automated builds and uploads. Hit quite a few pitfalls, so I documented the whole process.
Automating Electron Submission to MAS (Mac App Store) with GitHub Actions
I also added a backend-free editing feature to astro-koharu — only available in local dev mode. I’m planning to add a backend-free CMS for managing local articles, inspired by last week’s OS as CMS article.
The editor uses BlockNote which is quite good, built on Prosemirror and Tiptap.


Also, non-existent category mappings can now be auto-created and edited.

Community Updates
-
Announcing Rolldown 1.0 RC: Rolldown officially releases its 1.0 Release Candidate (RC). As Vite’s future core bundling tool, it achieves 10-30x speed improvements through Rust while maintaining Rollup compatibility. This RC marks API stability — there will be no breaking changes before 1.0.
-
Vercel announced skills.sh, a website for finding and sharing agent Skills. Remotion also published a skill — now you can programmatically create videos using just Claude Code! Install via
npx skills add remotion-dev/skills.
- Using 100vw is now scrollbar-aware: Starting with Chrome 145, if the root element (not
body) hasoverflow: scroll, the default scrollbar width is now factored intovwsizing, fixing the long-standing issue of extra horizontal scrolling caused by viewport units. This improvement also applies to vh (for horizontal scrollbars) and the small, large, and dynamic viewport unit variants (sv*, lv*, dv*).
Anime.js v4.3
Anime.js v4.3 released, introducing powerful Auto Layout animation capabilities with smooth handling of complex CSS layout transitions.
This is really great! A cross-framework boon for frontend developers.
The official team provides documentation and release notes, plus a demo collection on CodePen.
Here’s one example — incredibly smooth:
See the Pen PwzmxwR by juliangarnier (@juliangarnier) on CodePen.
Quality Articles
-
Can Non-Programmers Build Apps Independently with AI?: The author argues that AI has significantly lowered the technical barrier of “translating ideas into code,” but the boundaries of “can’t program,” “with AI,” and “apps” are far more blurry than imagined. In collaborating with AI, users unconsciously acquire programming concepts. AI serves more as a learned but rigid “apprentice” or “translator,” helping people with logic and vision realize their goals, rather than replacing thinking and problem definition.
-
Inside Turbopack: Building Faster by Building Less: A deep dive into how Turbopack, Next.js’s next-generation bundler, achieves extreme development response speed through incremental computation and fine-grained caching.
-
The Incredible Overcomplexity of the Shadcn Radio Button: Explores how modern frontend UI frameworks (like Shadcn) have made originally simple native radio buttons incredibly complex, calling for a return to native CSS development.
-
HTTP Archive 2025 Web Almanac | CSS-Tricks: Covers HTTP Archive’s 2025 Web Almanac report, summarizing key data on current web performance, CSS trends, accessibility, and resource bloat.
-
The challenges of soft delete: Explores the long-term complexity of traditional “soft delete” patterns (like an
archived_atcolumn), comparing alternatives such as triggers, application-layer events, and WAL.
For new projects, the author recommends the trigger-based approach as it’s simple to deploy, doesn’t introduce additional infrastructure, and effectively isolates active data from archived data. -
Rethinking “Pixel Perfect” Web Design — Smashing Magazine: Explores why the traditional “Pixel Perfect” mindset no longer applies in today’s multi-device, responsive, dynamic content web environment.
-
localspace: A modern
localForagealternative offering a simple browser storage wrapper. -
Overscroll Effects On Nested Scrollers In All Browsers: Chrome 145 now supports overscroll effects on nested scroll containers, bringing cross-browser consistency. Previously, this only worked on root pages, and only Safari and Firefox supported child container bounce.
-
How to animate SVG with CSS: Tutorial with examples: A detailed tutorial on adding dynamic effects to SVG using CSS properties and keyframe animations, covering everything from basic embedding to complex path animations.
New Features
- Follow-the-leader pattern with CSS anchor positioning: Introduces how to use CSS Anchor Positioning to implement a “follow-the-leader” pattern where elements follow interactive targets.

Tools
-
darula-hpp/shimmer-from-structure: A library that automatically generates pixel-perfect shimmer skeletons based on the actual DOM structure of React components.
-
Better SVG: A VS Code extension for editing SVG files with live preview, packed with useful features including live preview, color picker, zoom/pan controls, editable currentColor values, dark background toggle, and SVGO integration for one-click SVG size optimization.

Fun Sites & CodePen Picks
Adding Shadows to Irregular Shapes with CSS drop-shadow() Filter
Chris Heilmann shows us how to use
filter: drop-shadow()to add shadows to irregular shapes — this filter can recognize “the transparent parts of an image or the shape of an SVG path, and apply shadows accordingly.”
See the Pen qENbVmb by codepo8 (@codepo8) on CodePen.

Creating Enchanting Corner Shapes with superellipse() — CSS Only
In this Pen by Zoran Jambor, a simple circle evolves into kaleidoscopic shapes through “random values from the
superellipse()CSS function.” Click the “About” button for a short tutorial and useful resources about thesuperellipse()function.
See the Pen ogLLLgr by ZoranJambor (@ZoranJambor) on CodePen.

CSS Optical Illusions
Alvaro Montoro shares an amazing collection of famous optical illusions implemented in pure CSS. One of them in TV mode is absolutely mind-blowing.

Weathered Cloth Blowing in the Wind
In this Three.js scene by Sabo Sugi, a weathered piece of cloth gently flutters in the breeze. Dive into the settings controls to change the image, color, wind force, and tearing effects.
See the Pen ByzLYpb by sabosugi (@sabosugi) on CodePen.


喜欢的话,留下你的评论吧~