OAuth from First Principles (10 minute read)
OAuth 2.0 authorization with PKCE is a standard way for third-party apps to authenticate users on websites. This article starts with a basic example of a user sharing their credentials with an app, then progressively introduces security flaws and their corresponding solutions. It breaks down each attack, explaining how it works and how the OAuth flow is improved to prevent it.
An SSR Performance Showdown (7 minute read)
In benchmarks of server-side rendering (SSR) across frontend frameworks, like React, Vue, Svelte, and Solid, fastify-html and Vue are the top performers. Svelte and Solid are close behind, while React and Preact are significantly slower. As a result, Vue and Svelte provide the best balance of SSR performance and ecosystem maturity.
Why I still self host my servers (and what I've recently learned) (26 minute read)
This developer self-hosts a large number of services, including a 3-node Proxmox cluster and an external VPS. Self-hosting has taught him valuable lessons about complex systems, from the importance of redundant DNS to the silent failures of aging UPS batteries. In this post, he goes over some classic technologies he works with that he still finds relevant along with how to choose the right VPS providers.
Tell HN: Burnout is bad for your brain, take care (Hacker News Thread)
This Hacker News post discusses the effects of burnout on the brain, with the original poster describing a decline in cognitive function, learning ability, and problem-solving skills. One commenter shares their personal experience of burnout and how setting boundaries and prioritizing personal well-being prevents it. Others talk about various techniques to combat it, most of which involve recognizing burnout symptoms early and addressing them before they become too much.
Stop using SERIAL in Postgres (3 minute read)
PostgreSQL users should stop using the "serial" data type and switch to "identity" columns instead. There are several issues with "serial," including its lack of integrity guarantees, awkward ergonomics, and non-compliance with SQL standards. "Identity" columns, on the other hand, offer better safety, easier management, and align with SQL standards.
Claude Memory (GitHub Repo)
Claude Memory is a Chrome extension that improves interactions with Claude by providing memory functionality. It allows users to store and retrieve important information from their conversations with Claude such as preferences, making interactions more personalized and context-aware.
Redwood v8.0.0 (8 minute read)
Redwood v8 (a full-stack JS framework) introduces background jobs for handling non-immediate tasks, simplifies SSR and RSC setup, and improves Storybook by switching to Vite. It also includes Docker support and updates to core packages like React, Prisma, and Vite. Breaking changes include the removal of Webpack, updates to NavLink's class handling, and recommended database structure changes for Prisma.
Qustar (GitHub Repo)
Qustar is a TypeScript-powered, array-like API for querying SQL databases. It offers a high-level query builder and support for PostgreSQL, SQLite, MySQL, MariaDB, and raw SQL execution.
Why Don't Tech Companies Pay Their Engineers to Stay? (5 minute read)
Tech companies should pay their engineers more, especially those with long tenures. Companies often fail to adequately compensate engineers for their accumulated expertise and impact, which leads to higher turnover and attrition. An impact-based compensation structure where salaries are determined by an individual's contribution to the company might be a better way to keep the best employees and pay them well.
Deploying Rust in Existing Firmware Codebases (14 minute read)
Google has presented a practical approach to gradually introduce Rust into existing firmware codebases. The approach replaces new and high-risk code with Rust using drop-in Rust replacements for C functions. In this post, the Google team shows readers how to build Rust code in bare-metal environments, covering how to choose and port libraries, create custom targets, and integrate Rust panic handlers and allocators.
Giving C++ std::regex a C makeover (8 minute read)
This article shows how to wrap the C++ `std::regex` library in a clean C interface for use in C projects. This is done by creating a custom allocator that utilizes an arena-based memory management system, preventing the need for individual object deallocation and eliminating the use of `new` and `delete` within the C++ library. By doing this, the C++ regex library can be used without directly exposing its C++ objects to the C code while still benefiting from the existing functionality of `std::regex`.
Tinystatus (GitHub Repo)
TinyStatus is a customizable status page generator that helps you easily monitor and display the health of your services.
Nanite WebGPU (GitHub Repo)
This is a WebGPU implementation of Nanite, a technology for rendering massive 3D scenes with high detail, that uses meshlet LOD, software rasterization, and billboard impostors.
Lesser known parts of Python standard library (5 minute read)
This article explores lesser-known but still useful modules within the Python standard library, like advanced data structures, context managers, decimal and fraction handling, bytecode disassembling, statistical analysis, web browser opening, and packaging Python code into single-file applications.