EdgeCases Logo

EdgeCases - Frontend Insights for Senior Engineers

Showing 37 of 37 insights
Dec 2025
CSS
CSS Cascade Layers & !important: The Specificity Inversion

Normal layers: last wins. Important layers: FIRST wins. Learn why !important inverts layer priority.

Expert
6 min
css
layers
specificity
+3
Dec 2025
Browser APIs
ResizeObserver: The 'Loop Limit Exceeded' Error

Benign but scary. Learn why modifying layout in a ResizeObserver callback triggers browser loop protection.

Deep
6 min
resize-observer
performance
rendering
+3
Dec 2025
Next.js
Next.js 16: The "use cache" Directive and cacheLife

Explicit caching opt-in with 'use cache', cacheLife profiles, and tag-based revalidation

Deep
6 min
nextjs
caching
performance
+3
Dec 2025
TypeScript
TypeScript Performance: Recursive Types & Build Times

Deeply nested recursive types crash the compiler—learn to optimize with interface caching and tail recursion

Expert
6 min
typescript
performance
optimization
+3
Dec 2025
AI
Antigravity Artifacts: The End of Chat-Based Coding

Why linear chat history fails for engineering—and how structured Artifacts provide the missing state layer

Deep
6 min
antigravity
artifacts
agentic-workflow
+2
Dec 2025
Database
Prisma 7: The Rust-Free Future

Wasm engine replaces Rust binary—90% smaller bundles and zero cold starts

Deep
6 min
prisma
database
wasm
+2
Dec 2025
React
useEffectEvent: Solving Stale Closures Forever

Stop hacking refs—use the stable hook designed for non-reactive logic

Deep
5 min
react
hooks
performance
+2
Dec 2025
Performance
The Web Animation Performance Tier List

Why transform is S-Tier and width is F-Tier—mastering the browser rendering pipeline

Deep
6 min
performance
animation
rendering
+2
Nov 2025
Human
True vs Pretend Remote: Reading the Edge Case Signals

The difference isn't in policies—it's in the thousand small decisions that reveal whether remote is core or cosmetic

Deep
7 min
remote-work
culture
career
+5
Nov 2025
SEO
Canonical URLs: The Duplicate Content Paradox

Canonical tags are hints, not directives—Google's ~40 signal algorithm may override your preference

Deep
7 min
canonical
seo
duplicate-content
+1
Dec 2025
CSS
content-visibility: The Searching & Scrolling Problem

Skipping layout boosts performance but breaks scrollbars—use contain-intrinsic-size: auto to fix the jump

Surface
5 min
css
content-visibility
performance
+3
Dec 2025
CSS
Safari Animation Artifacts: The 1px Black Line Glitch

Fix the jagged edges and flickering lines on expanding images with outline: 1px transparent

Deep
5 min
css
safari
animation
+3
Dec 2025
CSS
CSS Inset: The Modern Shorthand for Positioning

Stop writing top/right/bottom/left—use inset to handle all four offsets in a single line

Surface
5 min
css
layout
inset
+2
Dec 2025
CSS
Respecting User Motion Preferences with prefers-reduced-motion

Don't just remove animations—replace motion with opacity to preserve context while respecting accessibility

Deep
7 min
accessibility
animation
css
+3
Dec 2025
CSS
Background Bleed: The Subpixel Rendering Bug

Why border-radius sometimes leaves a gap between background and border, and how background-clip fixes it

Deep
6 min
css
border-radius
edge-case
+2
Nov 2025
AI
Gemini 3 Pro: 1M Token Context Window Edge Cases

Context fragmentation, multimodal gotchas, and agentic patterns at extreme scale

Deep
6 min
gemini
llm
context-window
+4
Nov 2025
AI
Agent-First vs Copilot: When Async Beats Sync

Antigravity's autonomous agents excel at large refactors but break debugging flow. Cursor's inline copilot preserves immediacy but can't parallelize. The edge cases reveal when each architecture dominates.

Deep
6 min
ai-ide
agent-architecture
async-development
+4
Nov 2025
Next.js
Next.js 'use cache': Explicit Caching with Automatic Keys

Cache pages, components, and functions with opt-in directive and stale-while-revalidate profiles

Deep
9 min
use-cache
caching
nextjs
+5
Nov 2025
Next.js
Turbopack: Next.js 16 Default Bundler (2-10× Faster)

Rust-powered bundler with incremental compilation, file system caching, and production parity with Webpack

Deep
8 min
turbopack
bundlers
performance
+5
Nov 2025
Next.js
proxy.ts: Node.js Runtime for Next.js Request Interception

Full filesystem and npm package access in middleware—proxy.ts replaces middleware.ts with Node.js runtime

Deep
8 min
proxy.ts
middleware
nextjs
+5
Nov 2025
Next.js
Next.js 16 Incremental Prefetching: Smart Route Preloading

Layout deduplication, viewport-based cancellation, and interaction prioritization reduce redundant requests

Deep
8 min
prefetching
performance
nextjs
+5
Nov 2025
Next.js
Next.js 16: Dynamic by Default, Turbopack Stable, proxy.ts

Explicit caching with 'use cache', Turbopack as default bundler, and proxy.ts for Node.js runtime clarity

Surface
8 min
nextjs
next16
caching
+5
Nov 2025
CSS
CSS Animations vs Figma: Production Reality vs Design Prototypes

Figma's spring physics can't translate to CSS cubic-bezier—understand the gap between design and code

Deep
7 min
animations
figma
design-handoff
+4
Nov 2025
CSS
Animating CSS Grid: The Discrete Value Problem

grid-template-columns won't animate—fr units lack computable intermediate values, breaking smooth transitions

Deep
7 min
grid
animations
layout
+4
Nov 2025
CSS
CSS Animations vs JavaScript: Layout Thrashing and the FLIP Technique

JavaScript animations cause layout thrashing—learn CSS tricks and FLIP to keep animations compositor-safe

Deep
7 min
animations
performance
javascript
+7
Nov 2025
Human
Impostor Syndrome: The Senior Engineer's Paradox

The more you know, the less confident you feel—why expertise breeds doubt and how to work with it

Expert
7 min
impostor-syndrome
senior-engineer
career
+5
Nov 2025
SEO
JavaScript Hydration and SEO: The Googlebot Race Condition

Streaming SSR sends HTML in chunks—but does Googlebot wait for the complete stream before indexing?

Expert
7 min
javascript
ssr
hydration
+4
Nov 2025
SEO
Structured Data Validation: When Valid Schema Breaks Rich Results

Schema.org validation passes, but Google Rich Results Test says 'No items detected'—here's why

Surface
5 min
structured-data
schema
rich-results
+2
Nov 2025
SEO
Image SEO: Lazy Loading and Modern Formats

loading=lazy on hero images delays LCP; WebP needs JPEG fallbacks—optimize without breaking SEO

Deep
7 min
images
seo
optimization
+2
Nov 2025
SEO
Internal Linking Architecture: PageRank Distribution in Component-Based Apps

Client-side navigation breaks traditional PageRank flow—hub-and-spoke vs mesh, the death of nofollow sculpting

Expert
7 min
internal-linking
pagerank
spa
+8
Nov 2025
CSS
Font Metrics: Why Text Won't Center in Buttons

Invisible bounding boxes in fonts cause alignment issues—learn to fix them with CSS overrides

Deep
7 min
font-metrics
alignment
typography
+4
Nov 2025
CSS
Font Loading: The FOUT, FOIT, and CLS Dilemma

font-display values force a choice between fast rendering and layout stability—understand the trade-offs

Deep
7 min
font-display
cls
fonts
+4
Nov 2025
CSS
size-adjust: Eliminating Font Swap Layout Shifts

Match fallback font metrics to custom fonts and eliminate 90% of CLS from font loading

Deep
7 min
size-adjust
layout-shift
fonts
+3
Nov 2025
CSS
OpenType Features: Ligatures, Tabular Numbers, and Small Caps

font-feature-settings doesn't cascade—it replaces. Learn the high-level font-variant-* alternatives

Deep
7 min
opentype
typography
fonts
+3
Nov 2025
CSS
Font Preloading: When rel=preload Backfires

Missing crossorigin causes double downloads; too many preloads delay LCP—use surgically

Deep
7 min
preload
fonts
performance
+4
Nov 2025
CSS
Font Synthesis: Avoiding Fake Bold and Italic

Prevent browsers from creating fake font variants and ensure professional typography

Surface
6 min
font-synthesis
typography
fonts
+2
Nov 2025
CSS
Dynamic Fonts in Web Development

Master custom typography with @font-face and variable fonts for better design flexibility

Surface
5 min
fonts
typography
web-design
+1