TLDR Web Dev

TLDR WEB DEV 2024-08-02

5 sections14 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01ARTICLES & TUTORIALS

HOW GOOGLE HANDLES JAVASCRIPT THROUGHOUT THE INDEXING PROCESS

There are common myths about how Google handles JavaScript during the indexing process. Through a study involving over 100,000 Googlebot fetches, researchers found that Google can render and index JavaScript content, including complex SPAs, dynamically loaded content, and streamed content. The study also debunked the myth of a significant rendering queue, showing that most pages are rendered within minutes, not days or weeks. As a result, people should feel free to use JS frameworks in their websites while still making sure that pages load fast.

vercel.com17 min read

DISSECTING PARTIAL PRE RENDERING

Partial Pre-Rendering (PPR) in Next.js combines the best of static site generation, server-side rendering, and client-side rendering. By pre-rendering static portions of a page at build time and streaming dynamic content at request time, PPR is able to have fast initial page loads, personalized content, and interactivity in a single HTTP request. This article goes into how PPR works.

nikhilsnayak.dev14 min read

BUILDING A MULTI-PLATFORM ON-CALL MOBILE APP

Incident.io chose React Native for its on-call mobile app because it could provide a native feel, a single codebase for iOS and Android, and code familiarity for its team. The team initially used Expo Go for rapid development and iteration during a hackathon, then transitioned to the "managed workflow" setup for production, using Expo's build services and implementing native features through Expo's "modules" system.

incident.io15 min read

02OPINIONS & ADVICE

AFTER A DECADE OF REACT, IS FRONTEND A POST-REACT WORLD NOW?

React introduced the concept of a "virtual DOM" to optimize web app rendering. Its popularity led to widespread adoption, but also to criticisms regarding its learning curve, state management, and performance. While React's defenders highlight its improvements in recent versions, alternative frameworks like Svelte and Astro offer simpler approaches without relying on the virtual DOM.

thenewstack.io8 min read

DON'T ASK PERMISSION TO DO YOUR JOB CORRECTLY: AVOIDING THE TECHNICAL DEBT TRAP

Technical debt, often confused with cruft, is intentionally simplified code with a plan to address it and business alignment. Cruft is unintentional and lacks a plan. To avoid the technical debt trap, developers should prioritize clean code practices and communicate effectively with management to make sure technical debt is understood and addressed eventually.

links.tldrnewsletter.com8 min read

03LAUNCHES & TOOLS

WRITE BUG REPORTS DEVELOPERS LOVE

A checklist to write bug reports that developers love. It discusses what to put in the bug report and how to write it. Some important points include: titles should be short and specific, steps to reproduce the bug should be easy to follow, and screenshots should be added if possible.

perfectbugreport.ioTool

GITOPPER

Gitopper enables a GitOps workflow for non-Kubernetes environments by automatically pulling changes from a Git repository and restarting services based on those changes, using sparse checkouts and bind mounts for efficient resource utilization.

github.comGitHub repository

NOTSHAZAM

An implementation of Shazam's song matching algorithm in Golang.

github.comGitHub repository

04MISCELLANEOUS

THREAT ACTOR ABUSES CLOUDFLARE TUNNELS TO DELIVER RATS

Proofpoint observed an increase in malware delivery through the abuse of Cloudflare Tunnels, particularly with the TryCloudflare feature. The campaign delivers remote access trojans (RATs) and has been evolving to bypass detection. It involves sending malicious emails with URLs or attachments, leading to the download and installation of malware like Xworm, AsyncRAT, VenomRAT, GuLoader, and Remcos.

proofpoint.com7 min read

THE TROUBLE WITH __ALL__

Python's `__all__` attribute is meant to define a module's public API, but it doesn't enforce it, allowing access to private elements. This can lead to tightly coupled modules and broken domain boundaries, especially in large projects. A custom `ModuleWrapper` class can enforce `__all__` but has downsides like runtime impact and limited scope.

gauge.sh5 min read