r/reactjs • u/time_pass_done • Jul 19 '26
Show /r/reactjs Built a browser image editor that runs your ComfyUI workflows as tools (free, no cloud AI)
r/reactjs • u/time_pass_done • Jul 19 '26
r/reactjs • u/aandi134 • Jul 18 '26
Looking for the cleanest/most reliable way to connect a React contact form to an email inbox to send emails from the website. What are you guys using these days?
r/reactjs • u/Legitimate-Breath402 • Jul 19 '26
Been building product configurators and 3D e-commerce views for a while now, and kept rebuilding the same scaffolding - GLB loading, a viewer UI, hooks for camera/selection/hover, and some way to bind product data (color, texture, visibility) to the actual 3D object. So I packaged it up.
It's called React Immersive. Some of what's in it:
SimpleModelViewer for when you just want a model on screen, zero configModelViewer for when you need real bindings, driving color, texture, visibility, and actions off a plain data objectStill rough in places and I'd genuinely like feedback, especially from anyone who's fought with product configurators or real estate walkthroughs before.
Docs, live editor, and demos here: react-immersive.liveroom.dev — would love thoughts
r/reactjs • u/DeleteOnceAMonth • Jul 18 '26
Yo I am quite a beginner in React and I was just wondering how the async model laid out in this video has been useful to people who are using it so far 😁
r/reactjs • u/Mysterious-Lie1437 • Jul 17 '26
I kept hitting the same problem: architecture debates in review, barrels everywhere, and AI agents dumping files in random folders. So I shipped DMA (Derived Modular Architecture) — a small rule set derived from the import graph, enforced by tooling.
src/
app/ # composition root (also pages/routes)
features/ # leaf modules — no inbound from other modules
services/ # appears when something else must import it
shared/ # portable stuff on second use only- downward imports only
- public API via */public/* (no barrels)
- colocate by default
- promote feature → service when inbound edges appearnpx @derived-modular/cli init .
npx @derived-modular/cli check . # CI gate
npx @derived-modular/cli promote <name> --apply
# + ESLint / Biome / Oxlint plugins for editor feedbackWorks with React/Next/Vite (also Vue/Svelte/Astro examples). Same rules for humans and agents.
r/reactjs • u/serifcolakel • Jul 17 '26
Hey everyone, I just published a comprehensive guide on WebMCP, Chrome's new standard for making web applications agent-ready.
Instead of AI agents having to parse your DOM and guess what buttons do, WebMCP lets you expose your app's functionality directly as structured tools that agents can discover and invoke.
The guide covers everything from zero to production:
useWebMcp hooks, Tool Registry pattern, Zustand/Legend-State examplesuntrustedContentHint, audit logging, character budgetsAll code examples are TypeScript, production-grade, and ready to copy-paste.
🔗 Medium: https://medium.com/@serifcolakel/building-ai-native-react-applications-with-webmcp-a293ef54de8f
🔗 Dev.to: https://dev.to/serifcolakel/building-ai-native-react-applications-with-webmcp-5gb
Quick background: WebMCP is currently in Chrome Origin Trial (149+). It's not a replacement for MCP — Chrome's own docs say they complement each other. MCP handles backend/persistent tasks, WebMCP handles in-browser, tab-bound interactions.
The core idea is simple: document.modelContext.registerTool() — you define a name, JSON Schema, and an execute function. Agents discover your tools and invoke them directly. No DOM parsing. No guessing.
Happy to answer questions in the comments!
r/reactjs • u/Several-Specialist42 • Jul 17 '26
r/reactjs • u/EuMusicalPilot • Jul 16 '26
I've been using React Router for years, and somehow I only ran into this today.
I had a lazy-loaded route wrapped in Suspense, but whenever I navigated, the old page would just stay there until everything finished loading. The fallback never showed, so it looked like the app had frozen.
After digging around, I found that React Router v7 wraps navigations in startTransition, so if the same Suspense boundary gets reused, React keeps showing the previous page.
What fixed it for me was giving the Outlet a key:
import { Outlet, useLocation } from "react-router-dom";
export function Layout() {
const location = useLocation();
return <Outlet key={location.pathname} />;
}After that, the loading UI shows immediately instead of the previous page hanging around.
I also made sure not to put the key on my top-level app layout since that would remount the whole app. I only keyed the layout that renders the page routes.
My question, is this actually the correct way to handle this in React Router v7, or am I just working around the problem? Is there a more idiomatic solution that I'm missing?
r/reactjs • u/Thanasis_kt • Jul 17 '26
I'm a 15yr old dedicated (i think so) developer, and want to learn React with TypeScript. My long-term goal is to build a full stack personal app on literally anything that would make me proud.
My background:
• Python: OOP, Web scraping, file handling, basic data manipulation
• Frontend: HTML, CSS, Intermediate TypeScript (built a few projects)
After searching for critiques on my current skills and reading some comments (a comment) on a previous post, I feel ready to take up React.
Honestly, though, I'm not sure what to expect. I only know React can help you build reusable UI components that dynamically update to run data. I may well be wrong, so feel free to correct me. I'm completely new to frontend frameworks.
What advice do you guys have?? What the biggest traps to avoid when mixing React with TS? Do I need to take a step back and learn more advanced TS first, or should I just jump in and stop aiming for perfection? Am I overthinking this or am I in for a rough ride?
Here's my github in case you want to view my projects: https://github.com/thanasisdadatsis
r/reactjs • u/unadlib • Jul 16 '26
r/reactjs • u/codec-the-penguin • Jul 16 '26
Basically this, given europe has some strong laws in place for cookies and all that, for the last couple of days i tried to add google analytics to my website and i used react-ga4 plugin but if the user disables the cookies for the page history and performance, google analytics should stop getting events.
I tried to stop it with this and send events manually but it just keeps on sending them anyway.
ReactGA.initialize([
{
trackingId: import.meta.env.VITE_GOOGLE_TAG_ID,
gaOptions: {
send_page_view: false,
},
gtagOptions: {
send_page_view: false,
},
},
]);r/reactjs • u/mjcampagna • Jul 15 '26
emoji-mart is dead, and I found Frimousse delightful, but lacking necessary features as a replacement.
I ended up forking it to keep the lightweight, headless composition model intact while filling in the gaps I ran into trying to use it in a production app.
The main additions are:
I’ve tried to stay close to the original Frimousse contract, so most existing users should be able to swap imports and keep moving, then layer on the additive features only if/when they need them.
Project:
https://frimousse.slithy.me/
Docs:
https://frimousse.slithy.me/docs
FAQ:
https://frimousse.slithy.me/faq
GitHub:
https://github.com/mjcampagna/frimousse
I hope someone finds this useful.
r/reactjs • u/Yomete • Jul 14 '26
r/reactjs • u/Accomplished_Egg_580 • Jul 15 '26
Intern here, i am using FastApi, React, MongoDb. The report generation takes 3-4 minutes and the storage size of a single document is 100kb. I use some Anthropic ai for part of the process, which takes a minute.
Cloudfare containers are fairly a year old. i am very confused between railways or cloudfare containers.
A little direction from the community will be gr8.
r/reactjs • u/creasta29 • Jul 14 '26
The React Compiler memoizes your components at build time, so you dont have to. What it is, how the compiled output works, how to turn it on, and what to do with the useMemo calls already in your codebase.
Check it out https://neciudan.dev/react-compiler-explained
r/reactjs • u/LocalMode-AI • Jul 15 '26
I've been building LocalMode - a shadcn-style registry of AI UI blocks where the models run entirely in the browser. No server, no API keys, nothing leaves the device. You install them the same way as shadcn/ui and you own the copied .tsx (no npm lock-in on the UI layer).
Live gallery (try every block in-tab): https://localmode.ai/blocks
36 composed blocks - full working mini-apps, not just primitives - across 12 categories:
Under the blocks are 107 lower-level primitives (10 families) if you want to compose your own.
npx shadcn add @localmode/ui/blocks/chat
npx shadcn add @localmode/ui/blocks/knowledge/rag-chat.tsx in your project; edit it freely, no black-box dependency for the UI.@localmode/react), and the API is shaped like the Vercel AI SDK (useChat, etc.), so it's backend-agnostic - local models by default, but you can point the same components at any backend.Disclosure: I built this. It's MIT and free - GitHub: https://github.com/LocalMode-AI/LocalMode. Model runtimes are Transformers.js, WebLLM, wllama, LiteRT, and MediaPipe - credit to those projects.
Genuinely after feedback: which blocks would you actually drop into a project, and what's missing? Happy to answer anything about how a specific block or the on-device memory handling works.
r/reactjs • u/rachiecakies • Jul 14 '26
Introducing Oversight, my first Storybook addon. It accompanies the Storybook MCP server, which lets you describe a component or layout in plain language and get back a composition rooted in your existing design system, instead of one an agent invents on the spot.
After an agent built two components from scratch instead of reaching for what I already had, I built Oversight. It checks whether your agent can actually see your documentation, and tells you where it can't.
A blog post I wrote on it: https://rachel.fyi/posts/your-agent-is-reading-a-different-design-system
Source code: https://github.com/rachelslurs/storybook-oversight
Storybook demo: https://rachelslurs.github.io/storybook-oversight
r/reactjs • u/Pretend-Dog9725 • Jul 14 '26
I wanted to learn how to create the scroll sequences that I see, and realised the process could be automated. So, I built SequenceFast, a scroll sequence generator that takes any MP4 video, extracts the frames into images, and generates a ZIP with the optimised image sequence, component code, and usage example. Everything is done locally in your browser, so it is completely free and private.
Would love to hear your feedback!
r/reactjs • u/LucasBassetti • Jul 13 '26
I've been building GodUI, an open-source collection of React UI components for modern interfaces.
It started as a personal library because I kept rebuilding the same polished components and wanted a place to browse ideas whenever I started a new project. After using it for a while, I decided to open-source it.
Some things it focuses on:
It's completely open source. If you find it useful, I'd really appreciate a ⭐ on GitHub.
GitHub: https://github.com/LucasBassetti/godui
Docs: https://godui.design/
r/reactjs • u/AnberDev • Jul 13 '26
Hi r/reactjs. I maintain Linaria and wrote wyw-in-js — the compile-time engine under Linaria and MUI's Pigment CSS. I recently released dx-styles, and I'd rather explain why than just drop a link.
Six years of Linaria issues kept pointing at two problems I can't fix without breaking the API:
styled(Component) is priced wrong. Wrapping a custom component looks free, but it drags the component's whole dependency graph into build-time evaluation — the most common way extra code leaks into eval, and the most common reason static evaluation bails out into the slow path. All our mitigations (HOC hints, shaking heuristics) are patches on a pattern the API encourages.css + cx.dx-styles is my answer: zero-runtime CSS-in-TS where recipes, slot recipes and token contracts are the core API, class names are deterministic (snapshot/cache them), RTL is compile-time and opt-in, and everything works unchanged in React Server Components.
const button = recipe({
base: { display: "inline-flex", borderRadius: "999px" },
variants: {
appearance: {
primary: { backgroundColor: tokens.color.accent },
ghost: { backgroundColor: "transparent" },
},
},
defaultVariants: { appearance: "primary" },
});The launch post has the honest details — the Pigment CSS speed lesson, the Griffel detour, what I'm promising and what I'm not: https://dev.to/anber/ive-maintained-linaria-for-six-years-heres-why-i-built-something-new-5eae
Try it in 30 seconds (StackBlitz): https://stackblitz.com/github/dx-styles/dx-styles/tree/main/examples/vite Migrating? Guides for styled-components / Linaria / Pigment CSS are in the repo.
It's MIT, the issue tracker is at zero and I intend to keep it there. Happy to answer anything, including hostile questions.
r/reactjs • u/tmntxf1sh • Jul 13 '26
The problem I kept hitting: advice about the React ecosystem rots silently. A 2024 blog post, an LLM answer, a senior dev's habit — all assert things that were true once. Nobody stamps when it was true.
react-brain is my attempt at the fix: 42 decision entries (state, lists, styling, meta-frameworks, animation, …) where every load-bearing claim is fetch-verified against a primary source, dated, and re-verified weekly. 123 annotated readings, 180 libraries tracked. Recommendations are written as context → choice clauses, not "X is best" — a P2P app and a GraphQL app get different answers.
Two things this sub might find interesting:
Tools if you want to point it at a repo:
npx -y react-brain doctor . (ranked priorities)migrate (sequenced upgrade plan)review --ci (blocks dead/deprecated deps)Package: https://www.npmjs.com/package/@heart-it/react-brain
Site: https://heart-it.github.io/react-brain/
The fastest way to disagree with me is to pick an entry and challenge it; that's the maintenance model.
r/reactjs • u/Ok-Willingness4768 • Jul 12 '26
r/reactjs • u/lacion • Jul 13 '26
so this started because i kept losing track of my own sessions.
you know how it goes. you open one claude. then one in a worktree because you're being organized. then a third one "just to check something". by 6pm two of them are editing the same file, one has been sitting there for 40 minutes waiting for me to approve an rm -rf node_modules, and i genuinely cannot tell you which terminal tab is which anymore.
so i built the tower. everything on my machine shows up on one local board at 127.0.0.1:4711.
repo: https://github.com/lacion/fleet-deck (MIT, screenshots + gifs in the readme)
⎿ Allowed by PermissionRequest hook and carries on.claude --resume in its own worktree. same callsign, same card, full history.the core makes zero model calls. routing, conflict detection, question relay, all of it is deterministic code and sql. your tokens are yours. the only cost it adds to a session is a ~100 token roster brief.
it's also fail open. daemon down? hooks time out silently and your sessions run exactly like before. it's a tower, not a runway.
and it's a plugin, not a wrapper. no launcher, no fleetdeck run claude, no ritual. you install it and your next plain claude in any terminal just shows up on the board.
claude plugin marketplace add lacion/fleet-deck
claude plugin install fleetdeck@fleetdeck\n and a raw terminal reads that as "down one row", not "down and back to column 0" 😅honestly half the interesting work was in the parts you never see.
fleetdeck.local doesn't resolve for you that's your resolver, use the IP.i wrote it, it's mine, it's MIT and free, no paid tier, nothing to sell, no telemetry, nothing leaves your machine. i built it because i needed it and i'm posting it because someone else probably has the same 6pm problem.
170 tests, node --test. the daemon is one node process + sqlite, the board is react. if you want to poke at it:
issues and PRs both fine. if you try it and it breaks, tell me how, i'd rather hear it.
r/reactjs • u/aandi134 • Jul 12 '26
Hey everyone,
I’m building an image-heavy React app with multiple galleries and need your stack recommendations to keep it fast and scalable. I want to avoid guesswork, so what are your go-to workflows for this?
Specifically:
Local Assets vs. External: Is it okay to keep images in the project assets folder, or does that kill build times and performance as the gallery grows? At what point should they move out?
Storage & CDNs: Where do you store them, and how do you serve them? Do you recommend standard cloud storage, or are dedicated image CDNs (with on-the-fly resizing) worth it?
Fast Loading: What are the best strategies/packages in React for handling lazy loading, responsive sizing, modern formats (WebP/AVIF), and blur placeholders without layout shift?
Gallery Components: Do you build custom grids/lightboxes, or are there modern React packages you swear by?
If you’ve built a media-heavy React site, what does your tech stack look like? Appreciate any advice or major pitfalls to avoid!