A ?ref= link has to survive weeks of browsing before it pays anything, so we bank it on arrival and strip it from the URL. The store next to it answers the opposite question and must never be overwritten.#typescript #react #nextjs #webdev #software #coding #development #engineering #inclusive #community
Two localStorage keys written by the same layout, one first touch and one last touch
#react
Hi everyone, I've been building a language learning app called Langegg as a solo developer while...#ai #english #webdev #react #software #coding #development #engineering #inclusive #community
Solo developer looking for honest feedback on my language learning app
A feature list is the most boring section on any site: five titles, five sentences, maybe five icons....#webgl #react #shader #webdev #software #coding #development #engineering #inclusive #community
The 30 lines of GLSL that make UI look printed, not rendered
Introdução
As bibliotecas de componentes React são coleções de componentes pré-construídos e reutilizáveis que podem ser usados para acelerar o processo de desenvolvimento. Elas podem ser estilizadas usando CSS de várias maneiras, incluindo arquivos CSS tradicionais, módulos CSS e soluções CSS-in-JS como styled-components.
Na prática, essas bibliotecas se dividem em três grupos, conforme a relação entre lógica, aparência e controle que entregam ao desenvolvedor.
Bibliotecas estilizadas (styled)
Entregam componentes prontos, com identidade visual definida. O exemplo mais conhecido é o Material UI (MUI), baseado no Material Design do Google. Ant Design e Chakra UI seguem a mesma linha. O ganho é velocidade: botões, modais, tabelas e formulários já vêm consistentes entre si. O custo é a personalização: fugir do visual padrão exige sobrescrever temas e estilos internos, e o bundle tende a ser maior.
Bibliotecas headless (sem estilo)
Fornecem apenas comportamento e acessibilidade: gerenciamento de foco, navegação por teclado, atributos ARIA, estados de abertura e fechamento. Radix UI, React Aria e Headless UI são os principais exemplos. O desenvolvedor aplica o próprio CSS, seja com Tailwind, CSS Modules ou styled-components. Isso garante controle total do design sem reimplementar acessibilidade, que é a parte mais difícil de acertar em componentes como dropdowns, dialogs e comboboxes.
Modelo copy-and-paste
O shadcn/ui popularizou uma abordagem diferente: em vez de instalar um pacote, o código dos componentes é copiado para o projeto. Os componentes são construídos sobre Radix UI e estilizados com Tailwind CSS. Como o código passa a pertencer ao projeto, não há dependência de versão da biblioteca nem limitação para modificar a implementação. A contrapartida é que atualizações e correções precisam ser aplicadas manualmente.
Estilização: como as abordagens se encaixam
- CSS tradicional: simples e universal, mas com escopo global, o que facilita colisão de nomes em projetos grandes.
- CSS Modules: o escopo é local por arquivo, com nomes de classe gerados automaticamente. Não exige runtime adicional.
- CSS-in-JS (styled-components, Emotion): estilos definidos dentro do componente, com suporte a props dinâmicas e temas. Em contrapartida, há custo de runtime, e o suporte a React Server Components é limitado em bibliotecas que dependem de injeção de estilos em tempo de execução.
- Utility-first (Tailwind CSS): classes utilitárias aplicadas diretamente na marcação, sem runtime e com bom tree-shaking do CSS final.
Critérios de escolha
A decisão depende de alguns fatores objetivos:
- Nível de customização exigido: design system próprio favorece headless ou copy-and-paste; MVP ou painel administrativo favorece uma biblioteca estilizada.
- Acessibilidade: componentes complexos devem vir de bibliotecas que já tratem ARIA e teclado.
- Tamanho do bundle e performance: bibliotecas com runtime de CSS-in-JS pesam mais que soluções com CSS estático.
- Compatibilidade com o ecossistema: SSR, Next.js e Server Components restringem algumas escolhas.
- Manutenção e comunidade: frequência de releases, qualidade da documentação e tamanho da base de usuários.
Não existe uma biblioteca universalmente melhor. Bibliotecas estilizadas reduzem o tempo até a primeira entrega, enquanto headless e copy-and-paste trocam esse ganho inicial por flexibilidade a longo prazo. A escolha correta parte do contexto do produto: quanto o design precisa divergir do padrão, qual o prazo e quem vai manter o código.#css #frontend #react #webdev #software #coding #development #engineering #inclusive #community
[FRONTEND] Tipos de Component/Libraries
Every SaaS project I take on starts with the same unglamorous week: authentication, user roles, a...#laravel #react #saas #webdev #software #coding #development #engineering #inclusive #community
How I Structured My Laravel + React SaaS Starter Kit
Two weeks ago I put Spotify on a $25 Win98 desk player. That one was an ESP32 with no PSRAM showing...#showdev #react #webdev #music #software #coding #development #engineering #inclusive #community
I turned my Win98 Spotify player into a bring-your-own-music retro OS
Learn how to build React financial and stock charts that handle 100,000+ candles, real-time data, indicators and drawing tools, using SciChart.js and SciTrader.#react #javascript #typescript #webdev #software #coding #development #engineering #inclusive #community
React Financial Charts: Building a High-Performance Trading App with SciChart.js
Faceless short-form channels live or die on volume — you have to ship daily. But every tool in that...#remotion #react #typescript #webdev #software #coding #development #engineering #inclusive #community
I built a Remotion kit that renders vertical shorts from a single content file
You're building a product that needs a whiteboard component. Maybe it's a teaching platform, a...#react #typescript #reactcomponent #performance #software #coding #development #engineering #inclusive #community
Why Choose react-whiteboard: A Zero-Dependency Whiteboard for React
A result type with ok, error, values and upgrade; a failure() helper that lets Next's own control flow through and replaces everything else; and why a plan limit is a value rather than an exception by the time it reaches a toast.#nextjs #react #typescript #webdev #software #coding #development #engineering #inclusive #community
Our 53 Server Actions never throw at the UI, and one call to unstable_rethrow is why
Eliminating First-3-Minute Churn in a Developer SaaS: Radical Simplification & Building a Custom React Product Tour#react #nextjs #webdev #showdev #software #coding #development #engineering #inclusive #community
Eliminating First-3-Minute Churn in a Developer SaaS: Radical Simplification & Building a Custom React Product Tour
An imperative API makes modals easy to open from anywhere. The architectural cost appears one level...#react #architecture #typescript #frontend #software #coding #development #engineering #inclusive #community
Who Owns Your Modal State? Designing Without a Global Singleton