Fix mobile keyboard overlap with VisualViewportEdited 2025-08-26: The previous version recommended syncing visualViewport.height to a CSS variable with an observer. That was wrong for this use case. The actual fix in Sparka is to rely on dynamic vAug 25, 2025 · 2 min readfranciscomoretti.hashnode.dev
Deep Research UIs - Perplexity vs. Manus vs. ChatGPT vs. GeminiBuilding chat applications often involves tackling complex user interfaces. This is especially true for "deep research" tasks where information density is high. Components like reports, research stepsAug 25, 2025 · 8 min readfranciscomoretti.hashnode.dev
Deep Research UIs - Perplexity vs. Manus vs. ChatGPT vs. GeminiBuilding chat applications often involves tackling complex user interfaces. This is especially true for "deep research" tasks where information density is high. Components like reports, research stepsApr 29, 2025 · 8 min readfranciscomoretti.hashnode.dev
What tests to write for ReactThis article explores what tests you should be writing for your web applications. Inspired by Igor Luchenkov's insightful talk at React Advanced London and drawing on wisdom from industry experts, we'Apr 4, 2025 · 6 min readfranciscomoretti.hashnode.dev
Next.js Authentication Best Practices in 2025Note: This article updates previous authentication guide, which contained outdated recommendations. Next.js has since changed its authentication guidance, particularly in light of the CVE-2025-29927 security vulnerability. This articles containes a ...Apr 1, 2025 · 6 min readfranciscomoretti.hashnode.dev