r/reactjs • u/pladynski • 2h ago
Is graftcode better version of gRPC or its more like Next.js or tRPC
Anyone? Any thoughts?
r/reactjs • u/acemarke • Mar 15 '26
We've had multiple complaints lately about the rapid decline in post quality for this sub.
We're opening up this thread to discuss some potential planned changes to our posting rules, with a goal of making the sub more useful.
Hi! I'm acemarke. I've been the only fully active mod for /r/reactjs for a few years now. I'm also a long-standing admin of the Reactiflux Discord, the primary Redux maintainer, and general answerer of questions around React and its ecosystem.
You don't see most of the work I do, because most of it is nuking posts that are either obvious spam / low quality / off-topic.
I also do this in my spare time. I read this sub a lot anyways, so it's easy for me to just say "nope, goodbye", and remove posts. But also, I have a day job, something resembling a life, and definitely need sleep :) So there's only so much I can do in terms of skimming posts and trying to clean things up. Even more than that: as much as I have a well-deserved reputation for popping into threads when someone mentions Redux, I can only read so many threads myself due to time and potential interest.
/u/vcarl has also been a mod for the last couple years, but is less active.
The primary issue is: what posts and content qualifies as "on-topic" for /r/reactjs?.
We've generally tried to keep the sub focused on technical discussion of using React and its ecosystem. That includes discussions about React itself, libraries, tools, and more. And, since we build things with React, it naturally included people posting projects they'd built.
The various mods over the years have tried to put together guidelines on what qualifies as acceptable content, as seen in the sidebar. As seen in the current rules, our focus has been on behavior. We've tried to encourage civil and constructive discussion.
The actual rules on content currently are:
But the line is so blurry here. Clearly a discussion of a React API or ecosystem library is on topic, and historically project posts have been too. But where's the line here? Should a first todo list be on-topic? An Instagram clone? Another personal project? Is it okay to post just the project live URL itself, or does it need to have a repo posted too? What about projects that aren't OSS? Where's the line between "here's a thing I made" and blatant abuse of the sub as a tool for self-promotion? We've already limited "portfolio posts" to Sundays - is it only a portfolio if the word "portfolio" is in the submission title? Does a random personal project count as a portfolio? Where do we draw these lines? What's actually valuable for this sub?
Meanwhile, there's also been constant repetition of the same questions. This occurs in every long-running community, all the way back to the days of the early Internet. It's why FAQ pages were invented. The same topics keep coming up, new users ask questions that have been asked dozens of times before. Just try searching for how many times "Context vs Redux vs Zustand vs Mobx" have been debated in /r/reactjs :)
Finally, there's basic code help questions. We previously had a monthly "Code Questions / Beginner's Thread", and tried to redirect direct "how do I make this code work?" questions there. That thread stopped getting any usage, so we stopped making it.
Moderation is fundamentally a numbers problem. There's only so many human moderators available, and moderation requires judgment calls, but those judgment calls require time and attention - far more time and attention than we have.
We've seen a massive uptick in project-related posts. Not surprising, giving the rise of AI and vibe-coding. It's great that people are building things. But seeing an endless flood of "I got tired of X, so I built $PROJECT" or "I built yet another $Y" posts has made the sub much lower-signal and less useful.
So, we either:
(Worth noting that we actually just made the Reactiflux Discord approval-only to join to cut down on spam as well, and are having similar discussions on what changes we should consider to make it a more valuable community and resource.)
So far, here's what we've got in mind to improve the situation.
First, we've brought in /u/Krossfireo as an additional mod. They've been a longstanding mod in the Reactiflux Discord and have experience dealing with AutoMod-style tools.
Second: we plan to limit all app-style project posts to a weekly megathread. The intended guideline here is:
We'll try putting this in place starting Sunday, March 22.
We're looking for feedback on multiple things:
The flip side: We don't control what gets submitted! It's the community that submits posts and replies. If y'all want better content, write it and submit it! :) All we can do is try to weed out the spam and keep things on topic (and hopefully civilized).
The best thing the community can do is flag posts and comments with the "Report" tool. We do already have AutoMod set up to auto-remove any post or comment that has been flagged too many times. Y'all can help here :) Also, flagged items are visibly marked for us in the UI, so they stand out and give an indication that they should be looked at.
FWIW we're happy to discuss how we try to mod, what criteria we should have as a sub, and what our judgment is for particular posts.
It's a wild and crazy time to be a programmer. The programming world has always changed rapidly, and right now that pace of change is pretty dramatic :) Hopefully we can continue to find ways to keep /r/reactjs a useful community and resource!
r/reactjs • u/pladynski • 2h ago
Anyone? Any thoughts?
r/reactjs • u/Far-Menu9190 • 11h ago
I've been rendering product videos with Remotion (React → headless Chrome → frames), and scaled text kept looking wrong: either "stuck", stepping instead of gliding, or "shaky", with the letters subtly changing shape every frame. I measured the rendered frames instead of eyeballing them, and it turned out to be two separate bugs.
1. The "stuck" look: the baseline climbs the pixel grid in whole-pixel jumps
Chrome's glyph rasteriser has horizontal sub-pixel positioning but no vertical. When you scale text from its center (the default transform-origin), the baseline moves vertically every frame, and the glyphs snap to whole pixels. So instead of moving 0.3px per frame, the text sits still for a few frames and then jumps 1px.
Fix: pivot the scale on the baseline, so the baseline doesn't move vertically at all. Measure the real baseline (with a 0-height inline-block, or font metrics). Don't guess it from line-height.
Measured vertical judder: 0.284px → 0.014px per frame. Direction reversals over the animation: 29 → 0.
2. The "shaky" look: hinting re-snaps the letterforms every frame
At each new scale, font hinting snaps stems to the pixel grid differently, so the letters literally change shape frame to frame.
Fix: text-rendering: geometricPrecision. It turns hinting off, so the outlines scale smoothly. Shape drift between frames: 3.41% → 0.22%. It looks slightly softer, but that's correct, not blur.
Things that didn't help (cargo cult)
translateZ(0), backface-visibility: hidden: these rasterise the text into a bitmap layer, so it scales like an image and goes blurry.will-change: transform: good in a live preview, bad in the final render for the same reason. If you need it, enable it only when not rendering.Bonus: aggressive ease-outs freeze on a frame clock
At 30fps, a quint/expo ease-out spends its last 5+ frames moving less than a pixel. That reads as a freeze, not a settlein about one frame.
My main takeaway: you can't seer the frames and diff them. Ifsomeone says it still isn't smooth and your metric says it's fixed, your metric is wrong.
Happy to share the measurement script if anyone wants it.
r/reactjs • u/thereactnativerewind • 11h ago
Expo SDK 58 is out, and for once the headline isn't a new way to break your Podfile. With Xcode 27 retiring Simulator.app, the new expo-device-hub streams your iOS simulators and Android emulators into the browser with live CPU, memory and network graphs, while expo-app-intents lets Siri, Shortcuts and Spotlight trigger actions in your app, and the experimental Noxcturnal transformer roughly halves Metro transform times.
We also look at react-native-better-pdf 1.0 by Jakub Kasprzyk and GMI Software, which drops the bundled PDF engine for the phone's own PDFKit and PdfRenderer on Nitro Views, opening a 1,000-page scan in 56 ms instead of 622 ms. Plus, React Native 0.88 lands, Gesture Handler 3.4 builds with Swift Package Manager, and react-native-gpui renders React Native with Zed's GPU framework.
r/reactjs • u/dank_clover • 18h ago
AI Elements: Agentic UI Patterns
shadcn/ui introduced AI Elements, a curated collection of component patterns created specifically for building conversational and agentic interfaces.
Each pattern is composed from standard shadcn/ui primitives designed to be copied directly into codebases, standardizing interfaces for agent tool calls, planning, sources, and step restoration.
Trace: Observability Primitive for Agent Activity
shadcn released Trace, a dedicated primitive designed to unify agent activity displays under one abstraction. It represents reasoning traces, tool executions, task queues, chains of thought, and subagent routines.
Trace models agent progress as a list of status lines with support for expandable details, links, and nested execution steps.
Chatbot Template: AI SDK Agent Starter
The shadcn team published an official minimal chatbot template built with Next.js, Vercel AI SDK, shadcn/ui, shadcn/react, and shadcn/typeset.
Designed to run on the Vercel AI Gateway, the starter serves as a clean starting point for streaming conversational interfaces with typographic defaults and state management built in.
Official Registry Directory Expansions
The official shadcn/ui registry directory added new specialized community components and domain toolkits this week.
📙 Articles, Tutorials & News
Building shadcn/ui Registries for Claude Code and Cursor
Preet Suthar outlines the structure, validation steps, and namespace setup required to author custom registries that coding agents can inspect and consume.
7 Best shadcn/ui Themes and Theme Generators
A curated comparison evaluating popular color palette customizers, theme presets, and generators across the shadcn/ui ecosystem.
Tailwind CSS v4, shadcn/ui & Dark Mode
A complete video walkthrough demonstrating how to structure a centralized design system using Tailwind CSS v4 and shadcn/ui primitives.
📦 Projects, Packages & Tools
onsystem: Design System Linter and MCP for Agents
A zero-config tool that combines an MCP server with a linter to prevent coding agents from inventing variants, hardcoding colors, or breaking spacing scales.
pie-menu: Radial Interaction Primitive
A radial pie menu for shadcn/ui with press-drag-release interaction, full keyboard support, and a headless primitive core.
signoff-ui: Human Review Primitives for Agents
UI components providing multi-file diff reviews with per-hunk decisions, inline comments, tool approvals, and telemetry for AI SDK and AG-UI agents.
animate-ui: Lower-Level Primitive Animations
An animation toolkit that targets the underlying primitives your components rely on, preserving custom shadcn markup and component source ownership.
shadcn-exchange: Cross-Registry Block Search
A directory tool allowing developers to search, preview, and CLI-install blocks across all public community registries.
facade-ui: Base UI Marketing Blocks and Templates
An open-source registry of accessible marketing blocks, landing page sections, and templates built on Base UI and Tailwind CSS v4.
nasaq: Arabic and RTL-First shadcn Registry
An open-source registry of React components, themes, and page templates designed with native RTL layout and Arabic typography, paired with an MCP server.
🌈 Related
audiocn-solid: Audio Primitives for Solid
A collection of audio UI components ported to SolidJS and distributed as copy-paste source through the shadcn CLI workflow.
esuiss: Multi-Platform UI Primitives
A component collection extending shadcn design patterns across React, Next.js, React Native with Expo, SwiftUI, and Jetpack Compose.
GooseForum: Go-Powered Self-Hosted Forum
A self-hosted forum platform featuring shadcn/ui discussion pages, an admin console, and a light and dark theme workbench, distributed as a single Go binary.
Read the full issue: https://www.shadcnweekly.com/issues/4
r/reactjs • u/Ready_Hospital_2695 • 1d ago
I built myself a tool that helps me when AI writes a pile of React code and I don’t know where the source is.
I call it Sourcery. 🪄
https://isbatak-labs.vercel.app/tools/sourcery
It even supports Panda CSS 😏
r/reactjs • u/Mikasa0xdev • 2d ago
I am working on an open-source project called Openspline, it adds a live, talking face to any voice AI agent in five lines of code.
Just upload a still image, select a voice and you can create a talking avatar with lipsynced video generated locally.
It is still in very early stage, but the results look very promising.
Open sourced it here
r/reactjs • u/Mob_Pilled • 2d ago
Hi everyone! I just finished a React and course and decided to build my first react app. Currently, I am trying to save a string to browser local storage but it does not persist on refresh. Through some console.logs I was able to see that it in fact DOES save the string to the location specified in. setItem initially but when I refresh the key or value in local storage stops existing.
Here is my code
// function for search button
async function handleClick(){
localStorage.setItem("lastLocationSearched", searchValue);
setData(null);
setIsPending(true);
setError(null);
try{
const value = await fetch(`https://geo.ipify.org/api/v2/country?apiKey=***********&ipAddress=${searchValue}`).then((response)=>{
if (!response.ok){
throw Error("Could not fetch the data for that resource");
}
return response.json();
});
setData(value);
console.log(localStorage.getItem("lastLocationSearched"));
} catch(error){
setError(error.message);
}
setIsPending(false);
};
// useEffect hook
useEffect(()=>{
if ((localStorage.getItem("lastLocationSearched")===null)|| (localStorage.getItem("lastLocationSearched")==="")){
console.log(localStorage.getItem("lastLocationSearched"));
setSearchValue("");
handleClick();
}else{
setSearchValue(localStorage.getItem("lastLocationSearched"));
handleClick();
}
}, []);
Through some digging online I saw someone say that remove the strict mode tags from index.js would fix this problem but it did not for me. Can anyone please assist me?
r/reactjs • u/Independent_Side9419 • 2d ago
r/reactjs • u/Havunenreddit • 2d ago
Are you also getting tired to review noisy JSX / TSX changes just to realize the actual change was 1 prop?
Thats what I wanted to improve in GitComet. While looking for options I found Difftastic.
It uses Tree-sitter to understand code structure ... the same one GitComet also use! My immediate feeling was: this has to be tried out!
After testing it I knew it had to be included in the current release. Difftastic helps to show the relevant changes ignoring whitespace and formatting.
Difftastic diff really shines when viewing HTML, JSX/TSX and similar XML like syntaxes.
I created a demo how to enable it in GitComet 0.3.1 take a look!
r/reactjs • u/Heavy-Reference5011 • 2d ago
r/reactjs • u/NaturePrestigious338 • 2d ago
And much more coming soon!
r/reactjs • u/AffectionateDealer62 • 3d ago
A common production failure happens when a user leaves a React application open during a deployment.
The old tab may still be running build A, while the server is now serving build B. When the user later navigates to a lazy-loaded route, the browser requests a hashed chunk from build A that is no longer available.
For example:
Reports.a1b2.js // requested by the old tab
Reports.c3d4.js // available after deployment
The result can be:
ChunkLoadErrorFailed to fetch dynamically imported moduleA normal React Error Boundary can display the failure, but it cannot update the old tab’s JavaScript references. Retrying the same import may also request the same missing hashed file again.
I built and published a small utility called react-lazy-chunk-recover to experiment with this problem.
The recovery approach:
sessionStorage to prevent an infinite reload loopExample:
import { lazyWithRetry } from "react-lazy-chunk-recover";
const Reports = lazyWithRetry(() => import("./Reports"), {
moduleKey: "reports",
});
The default retry count is zero because retrying a deleted hashed asset usually does not help. Retries can be enabled for applications that also experience short-lived network failures.
Some important limitations:
For applications using React.lazy, Vite, Webpack, or a CDN:
I wrote more about the problem, implementation, testing strategy, and deployment considerations here:
I’d be interested to hear how other teams handle this failure mode in production.
r/reactjs • u/thetymtravellr • 4d ago
I'm a self-taught developer, and I know React and Next.js. Lately, I've been feeling increasingly anxious about my future as a developer.
AI is moving so fast. It can generate components, build entire websites, connect APIs, and even create full-stack applications. Sometimes I wonder what the point is of spending months learning something when AI can already do so much of it.
I want to get a better-paying developer job, but honestly, I'm confused about what I should focus on right now. Should I keep improving my React/Next.js skills, get better at backend development, or start learning AI engineering?
I keep hearing about RAG, AI agents, vector databases, LLM integrations, and all these new things. It feels like there's always something new to learn, and I'm worried that if I focus on the wrong things, I'll fall behind while everyone else moves forward.
For those of you already working in the industry, what would you do if you were in my position? Would you focus on becoming a strong full-stack developer first, or would you start learning AI engineering alongside web development?
I'm not looking for a shortcut or expecting to become an expert overnight. I just want to make the right decisions, build useful skills, and have a realistic chance of getting hired.
I'd really appreciate some honest advice from people who have been through this or are dealing with the same situation. Right now, I could genuinely use some direction.
r/reactjs • u/SaxShiva • 3d ago
We’ve all been there: you tweak a simple base component (like a button, input, or modal card) for the specific page you’re working on, push your code, and only find out later that you silently broke the layout on 3 other pages you forgot existed.
Running a global find (
Cmd+Shift+F) is slow and messy because it pulls up tests, comments, and every file with a similar name.To fix this, I made Rippledit—a free VS Code extension that shows you the exact blast radius directly inside your editor.
What it does:
It’s completely free on the VS Code Marketplace:
https://marketplace.visualstudio.com/items?itemName=shivakumarkannan.rippledit
(or search Rippledit in your VS Code Extensions tab)
Would love your honest thoughts and feedback!
r/reactjs • u/ScoobyDookuu • 4d ago
Hey everyone!
Been working on Tip Glide, a small framework-agnostic tooltip library written in TypeScript.
It uses a single shared tooltip that moves between elements and adjusts its size to fit the content. It also handles viewport boundaries, so the tooltip adjusts its position when there's not enough space.
A few things you can configure are the movement, directional lean, hover delays, arrow, and enter/exit animations.
It has zero runtime dependencies and comes with adapters for React, Angular, Vue, Svelte, Solid, Astro and Preact, along with a vanilla JS API.
There's an interactive playground where you can mess around with the settings and see how everything behaves.
Would love some feedback on the movement, especially when switching quickly between elements, but also on the API and anything else that could be improved.
r/reactjs • u/HighSchoolSimp • 4d ago
At my last company, they would finish the accessibility layer near the end of the product's development stage, and I remember developers complaining about repeating old sprints non-stop.
What's the industry norm when solving such issues? Of course, accessibility goes beyond people with extra needs: it should also include everyone's way of accessing the web, starting from a simple "cookie button" that takes up 40% of the screen space.
When do these issues start being noticed in your development life-cycle? How does your company think about them?
r/reactjs • u/revolvingdeandre0548 • 5d ago
I’ve been cleaning up a small React component library I built for a few internal projects and the code itself is fine but the docs are starting to get messy. Right now every component has examples, props a few usage notes and sometimes little edge cases that are easy to forget. I tried keeping everything in the repo as markdown and that works but once the number of components started growing it became annoying to actually browse. I’ve seen a lot of people here recommend stuff and I like the idea of keeping the docs in Git and not having to build the docs site myself and I want to know if that is a good idea or not?
For people maintaining React libraries do you keep everything close to the code or use something separate like Storybook, GitBook, Mintlify, Docusaurus etc? Curious what actually stays maintainable once the library gets bigger.
r/reactjs • u/GianniMariani • 4d ago
If you take software engineering principles seriously then none of the react state hooks belong inside a react component.
I think one of the most critical things you should do is ensure the decoupling of storage and UI components. The react components force you to do is precisely and zustand doesn't help.
I haven't sourced grip-react a year ago and I've been using it exclusively, absolutely zero usestate usememo, useeffect, etc and absolutely zero prop drilling. I don't know why anyone would want to do something different, honestly.
Has anyone else created an API that is a 100% replacement with complete declarativeness? I looked at angular and mobx, they're close but no cigar.
r/reactjs • u/FocusReactive • 4d ago
I know that self-promotion is forbidden, but this is an actual listing with React companies who can help you with your next project. I would just advise checking them, just for a piece of advise, not to mention the web services that they can provide: https://focusreactive.com/blog/top-reactjs-development-services-in-2026/
r/reactjs • u/sebastienlorber • 5d ago
r/reactjs • u/dhruvik_savaliya • 5d ago
When working on a team, code reviews are essential for maintaining code quality and ensuring that all team members are on the same page. I'm interested in hearing about different approaches to conducting code reviews for React components. What tools or processes do you use to review and provide feedback on React code? Are there any specific things you look for when reviewing a React component, such as performance optimization or accessibility features?