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-23
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 18, 2026, Sunday.
Moe Copy AI released v0.2.1 and v0.2.2, adding internationalization. The floating ball functionality has been extracted to a sidebar single-page scraping tab, and an AI summary button has been added under content extraction.
Thanks to @XueHua-s for contributing the htmlToMarkdown refactor to use unified (#19).
On the astro-koharu theme side, I generalized the weekly newsletter feature into multi-series support. featuredSeries now supports arrays with custom slugs, dynamically generating series pages to replace the fixed /weekly route. You can now add series articles as shown below.


Also, the comment component now supports switching between three comment systems (waline / remark42 / giscus).
Happy! Waline for comments is both beautiful and functional.

I’ve been grinding on the project all week, so this issue is short!
Community Updates
-
jQuery 4.0.0: After nearly a decade, jQuery has released version 4.0.0 with major modernization improvements, including dropping support for legacy browsers (IE 10 and earlier), introducing new features, and optimizing internal implementation.
-
Chrome 145 adds Experimental Support for Vertical Tabs: Chrome 145 now experimentally supports vertical tabs. (Oh my, it’s 2026 and Chrome finally adopted vertical tabs — I’m so moved!)
-
Introducing: React Best Practices: The Vercel team distilled “over a decade of React and Next.js optimization experience” into a set of Markdown files designed for code assistants like Claude Code — though you can certainly read them yourself. The goal is to help these assistants write better React code without much guidance.
- Install directly via
npx add-skill vercel-labs/agent-skills
- Install directly via
-
The Astro Technology Company joins Cloudflare | Astro: The company behind the Astro framework announced joining Cloudflare to gain more resources and focus on framework core development, promising to remain open-source and platform-neutral. (Great news — I really enjoy building websites with Astro.)
- Astro also reviewed the past year, looking back on 2025’s updates, changes, and new features, and released a beta version of Astro 6.
-
“You should never build a CMS” | Sanity: Sanity responds to the buzz around Cursor migrating their CMS to Markdown, sharing many reasons to use a CMS.
Articles & Community Updates
-
Why I hate WebKit, a (non) love letter: Excellent article, highly recommend. A comprehensive list of Tauri WebKit pitfalls — stay away from WebKit if you value your sanity! The title and URL really say it all.
-
JavaScript’s for-of Loops Are Actually Fast (V8): Explores the performance of
for-ofloops in modern V8 engines, debunking the long-held assumption in the developer community that they’re significantly slower than traditional loops. The author suggests that unless you’re dealing with extremely massive datasets where every millisecond counts, you should preferfor-ofloops for their better semantics. -
GUIDs - How I messed up my RSS feed: The author recounts how adding UTM parameters to an RSS feed caused all articles to be duplicated, and introduces the GUID field as a solution.
-
LobeHub Performance and DX Optimization Notes: The author shares optimization work done on performance and developer experience (DX) during their first month at LobeHub.
-
The Concise TypeScript Handbook is a short and refined TypeScript guide, free to read.
-
How to Steal Any React Component The webpage is actually quite fun. It describes how to use React’s internal data structures (via Fiber) and LLMs to reconstruct components from production React applications without the original source code.
-
How Markdown took over the world: Reviews the birth of Markdown and how it evolved from a niche blogging tool to the universal text standard dominating the modern internet and AI interaction.
-
Death to Scroll Fade! criticizes the overuse of “scroll fade-in” effects in web design and calls for a return to clean, efficient user experiences.
-
useOptimistic Won’t Save You: A deep dive into React 19’s useOptimistic hook, explaining that it must be combined with Transition and Action state management to truly handle complex race conditions. The author ultimately suggests that these complex low-level APIs are designed more for framework developers, and regular developers should lean toward using abstractions provided by mature frameworks.
-
How to Measure and Optimize React Performance: A comprehensive introduction to tools and techniques for measuring and optimizing React application performance, with a focus on React 19.2’s new features and various runtime and build-time optimization strategies.
-
Stop Turning Everything Into Arrays (and Do Less Work): Introduces how to use JavaScript’s native Iterator helpers for lazy evaluation to optimize performance and memory usage when processing large datasets.
New Features
- Bytes I can delete after all this time Thanks to CSS and JS advances, there’s an increasing amount of tech we no longer need. Remy Sharp shares a list of things we can discard.
-
CSS Layout & Styling Enhancements
- Use
text-underline-offsetto easily control text underline distance, no need for complex pseudo-element workarounds. - Use the
gapproperty directly in Flexbox layouts — no more fiddling withmarginfor spacing. - Adopt native CSS Nesting and media queries nested within selectors — cleaner structure without preprocessors.
- Use
clamp(min, variable, max)for fluid responsive sizing, simplifying complex breakpoint calculations. - Use
content: open-quotewithqtags for locale-aware quotes that automatically adapt to language.
- Use
-
JavaScript Syntax & Interaction Optimizations
- Optional
catchbinding — writecatchdirectly when you don’t need the error object, avoiding unused variable definitions. - Pointer Events are now universal, letting developers replace the old mixed
clickandtouchevent logic with a single approach. - Retire old performance hacks like using
~~or| 0for rounding —Math.floor()is more readable and performance is no longer a bottleneck in modern engines.
- Optional
-
Resource Optimization & Modern Formats
- AVIF image format now has full support, easily achieving 50%+ size reduction compared to JPEG.
- Includes a practical script example for batch image conversion using the
avifencCLI tool.
Then two articles on anchor positioning, both about auto-connecting lines:
- Connecting Circles With Anchor Positioning II: CSS Tips anchor positioning series — an improved implementation showing how to dynamically connect two circles using CSS anchor positioning and calculate/display the distance between them within the connecting arrow shape.
- Pure CSS Automatic Polyline Connection Between Two Elements: Details how to use CSS anchor positioning to achieve automatic pure-CSS polyline connections between two elements, discussing the implementation principles and current limitations.
Fun Sites & CodePen Picks
Playing With CodePen slideVars: Introduces CodePen’s official slideVars tool, which automatically detects CSS variables and generates interactive control panels — making it even easier to create interactive demos on CodePen.
See the Pen myEOqJg by geoffgraham (@geoffgraham) on CodePen.

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