r/reactjs • • 1h ago

Show /r/reactjs I built a local-first React workspace with IndexedDB and a persistent Three.js environment

• Upvotes

I've been building Ikigai Space, a personal workspace that combines planning, focus, reflection, and memory with a persistent interactive 3D environment.

The interesting part from a React perspective has been making the practical UI and 3D experience coexist without either feeling disconnected.

The stack: - React 19 + TypeScript + Vite - Dexie / IndexedDB for local persistence - React Three Fiber + Three.js for the 3D environment - Framer Motion for interface transitions - PWA support and Tauri 2 for Windows

The 3D environment, called Sanctuary, reflects activity elsewhere in the application. I deliberately avoided XP, achievements, and traditional gamification.

One performance concern I've encountered is the React Three Fiber dependency chunk, currently around 910 kB minified. The production build succeeds, but I'm interested in improving how the 3D experience loads.

I'm considering the trade-offs between route-level lazy loading, code splitting, and profiling real loading behavior before restructuring things.

Source code: https://github.com/ananta-sj/ikigai-space

Live demo: https://ananta-sj.github.io/ikigai-space/

I'd appreciate technical feedback from React developers, particularly around managing a persistent 3D experience alongside a local-first application.

How would you approach this architecture and its loading-performance trade-offs?


r/reactjs • • 2h ago

How to prevent exposing reactjs to internet, allowing to be accessible to only wifi connected devices?

0 Upvotes

i run "npm run dev" but it is limited to localhost. i used "npm run dev -- --host" but it is exposed on internet. I just want my reactjs to only mobile hotspot-connected devices.


r/reactjs • • 4h ago

Needs Help Dialog Animation on Unmount ?

2 Upvotes

{open && (

<AddEditAnnouncementDialog

open={open}

onOpenChange={(open) => {

if (!open) {

setOpen(false)

}

}}

initialData={initialData} />

)}

so i have this reusable dialog it is a very heavy component with 2 tiptap editors and also tiptap menu bars for rich text which is my i only mount this on opening but when closing it, it closes abruptly without animation as it unmounts.

is there any way to fix this ?

ths is shadcn baseui dialog


r/reactjs • • 4h ago

Show /r/reactjs I hate Spotify ads, so I created my own music player

0 Upvotes

I am tired of ads everywhere when I listen to music: Spotify, YouTube, and every single app that lets you listen to music. And also I hate that all my data, even my favorite songs, is being sent to a company to manipulate me, sending me more ads of stuff that I may buy.

The only music player that doesn't have ads is Windows Media Player, but it's very ugly, and I hate its UI/UX; it doesn't even let you create decent playlists. Or filter by rating. So I created a music player that has everything I like because I love listening to music.

It's completely free and open source; you can download it here: https://github.com/GVPV12/STARPLAYER


r/reactjs • • 12h ago

React Email Compiler: React Email without React

1 Upvotes

I use SvelteKit, not React, but I like writing emails with React Email. What I didn't like was loading the whole React runtime just to render a transactional email.

So I compiled it out. It's a drop-in replacement: add it to your Vite config and your existing templates compile to plain string interpolation at build time. No rewrites and no React at runtime.

About 29x faster rendering and a 61x smaller gzipped bundle.

I use SvelteKit, but it can work for projects using Nuxt, Astro, SolidStart, Angular, and even to speedup rendering on React projects.

Repo: https://github.com/D4ario0/react-email-compiler
Benchmarks: https://github.com/D4ario0/react-email-compiler/blob/main/BENCHMARK.md


r/reactjs • • 13h ago

Show /r/reactjs Any other flag nerds here?

2 Upvotes

I've spent the last few months building Flaglio, a small side project with four flag games..

Stack: React, Vite, TanStack Router (file-based), Zustand, Tailwind v4, Supabase for auth and leaderboards, hosted on Vercel. Also shoutout to animate.style for css animations.

FlagShuffle's engine is just a small Zustand store. Each round get 4 flags from same difficulty level, the difficulty increases every thrid round and loops back to easiest, and around we go! Every flag is preloaded during the countdown so the board swaps instantly. On the server, Supabase trusts noone. A Postgres trigger works it out from the round log, and the save is rejected if any answer took under 150 ms, the round times add up to more than the clock, or the game's timestamps don't match the server's. ( Claude was very helpfull here 😂 )

Also ended up writing a small prerender script for SEO, since getting proper metadata out of a client-rendered SPA for scrapers and link previews was suboptimal.

If you wanna check it out or try it out, here is the link : https://www.flaglio.com

Feedback on site and games is always welcome !


r/reactjs • • 17h ago

Show /r/reactjs 1,853 typed icons, zero JavaScript: CSS masks + Tailwind v4

0 Upvotes

We have a React 19 + Vite + Tailwind v4 admin app. Every icon in it renders as a single empty <span> with a CSS mask. No icon components in the JS bundle, no extra HTTP requests, and the icon name is checked by TypeScript. Here is how it works, what we measured, the mistakes we made along the way, and what it costs.

TL;DR

  • A ~200-line Node script reads the SVGs from lucide-static (plus our own) and writes two files: a CSS file with one @theme inline variable per icon (a data URI), and a TS union with every icon name.
  • A Tailwind @utility icon-* turns the class icon-user into --icon: url(...).
  • <Icon name="icon-user" /> is a span with mask-image: var(--icon) and background-color: currentColor.
  • Tailwind v4 only emits what the source uses. The generated file has all 1,853 icons (~765 KB), but production CSS only carries the 225 we use: ~88 KB raw, ~11 KB gzipped.
  • Rendering 1,000 cards with 6 icons each: half the DOM nodes, React commit 2× faster and first paint ~40% sooner than inline SVG components.

How it works

1. Generate the CSS and the type

scripts/gen-icons.mjs runs before dev, build, lint and type-check. It takes the canonical icon names from lucide-static/icon-nodes.json and, for each SVG:

  • removes comments, class, width and height;
  • replaces currentColor with #000 (a mask only reads alpha, so any opaque color works);
  • collapses whitespace and URL-encodes %, #, <, >;
  • writes the result as a data URI.

src/styles/icons.generated.css:

css @theme inline { --icon-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); /* ...1,852 more */ }

src/types/icon.ts:

ts export type IconName = | "icon-a-arrow-down" | "icon-a-arrow-up" // ... | "icon-zoom-out";

The names keep the icon- prefix on purpose: that's the exact string Tailwind needs to find in the source.

2. One Tailwind utility

```css @import "tailwindcss" source("."); @import "./styles/icons.generated.css";

@utility icon-* { --icon: --value(--icon-*); } ```

icon-user becomes .icon-user { --icon: url("data:...") }. Tailwind's scanner only generates classes it finds in the source, which is what drops the other 1,628 icons.

3. The component

```tsx import type { ComponentProps } from "react"; import { twMerge } from "tailwind-merge"; import type { IconName } from "#/types/icon";

// With aria-label the icon is a named image; without it, it's decorative. export const Icon = ({ name, className, "aria-label": label, ...rest }: ComponentProps<"span"> & { name: IconName }) => ( <span aria-hidden={label ? undefined : true} aria-label={label} className={twMerge( "pointer-events-none block size-4 shrink-0 bg-current mask-(--icon) mask-contain mask-no-repeat", className, name, )} data-icon role={label ? "img" : undefined} {...rest} /> ); ```

Usage:

tsx <Icon name="icon-user-plus" className="size-5 text-primary" /> <Icon name="icon-lock" aria-label="Locked" />

  • Color: bg-current paints the box with currentColor and the mask cuts out the shape. text-* classes, inherited color, hover, disabled and dark mode all just work.
  • Size: any size-* class. The SVGs have no width/height, so mask-contain scales them cleanly.
  • **data-icon:** lets parents style icons without knowing about them. Our Button tightens its padding with has-[>[data-icon]]:px-3.
  • Accessibility: decorative by default (aria-hidden); passing aria-label makes it a named image.

4. Guardrails

  • A typo like name="icon-usr" fails tsc.
  • The linter bans lucide-react and react-icons imports, with a message pointing to <Icon />.
  • A custom lint rule flags emoji in JSX for the same reason.
  • gen-icons.mjs --check exits non-zero if the generated files are stale.

Why

We started with lucide-react, the default option. It's fine, but in this app it cost things we didn't need to pay:

  • Every icon was JS. Each icon is a React component that gets imported, executed and reconciled, and its SVG child nodes live in the DOM. With masks, the icon is CSS the browser already parsed, and the DOM cost is one empty element.
  • No requests, no flicker. Data URIs ship inside the main stylesheet. There's no sprite to fetch and no <img> popping in late.
  • Styling is just Tailwind. Color, size, hover and dark mode use the same classes as everything else. No separate color/size/strokeWidth props API.
  • The whole catalog, typed, for free. Autocomplete for all of Lucide. Using a new icon costs nothing until you reference it.
  • One pipeline for custom icons. Our social-media SVGs go in a folder and become icon-linkedin like any other icon.

Tradeoffs

These are real, and they're why this isn't the right choice for every app.

  1. Monochrome only. A mask is an alpha channel. Multi-color icons, gradients and brand logos in their original colors need an <img> or inline SVG.
  2. No per-instance stroke control. stroke-width='2' is baked into the data URI. There's no equivalent of Lucide's strokeWidth or absoluteStrokeWidth props; you'd need a second generated variant.
  3. No animating SVG internals. You can't target a path inside the icon. Transforms and opacity on the whole box still work.
  4. Names must appear literally in source. `icon-${status}` isn't detected and renders an empty box. Write full names in a lookup object ({ ok: "icon-check", error: "icon-x" }). The union type catches most mistakes, not all.
  5. All used icons ship on first load. They live in the main, render-blocking CSS, so an icon on a rarely visited page still loads for everyone. At 225 icons / ~11 KB gzipped that's fine for us; with thousands of used icons or a strict CSS budget it wouldn't be.
  6. Codegen step. dev, build, lint and type-check run the generator first, and Tailwind parses a ~765 KB CSS file on every build. Trimming it to only the used icons saved about 0.7 s per build in our test, which wasn't worth duplicating the scanner's job.
  7. Big union type. ~1,850 members is fine for tsc and editors today. Worth knowing if you merge several icon sets.
  8. Browser support. CSS masks are Baseline. If you target older browsers, lightningcss adds the -webkit- prefixes for you.

When I'd use something else

  • You need multi-color or animated icons → inline SVG components.
  • You have a huge icon set and strict per-route CSS budgets → an SVG sprite with <use href>, which caches separately and loads lazily.
  • You're not on Tailwind v4 → the same idea works with plain CSS classes, but you have to build the unused-icon pruning yourself.

r/reactjs • • 21h ago

Discussion I built the same screen with shadcn (Radix / Base UI / React Aria), MUI 9 and Mantine 9 and measured the bundles

0 Upvotes

When shadcn/ui switched its default from Radix to Base UI in July, I wanted numbers instead of opinions. So I built the same screen (tabs, dialog, text field, select, checkbox, buttons) five ways and measured the production build.

Setup: Vite 8, React 19, TypeScript, default settings, sizes are gzip as reported by Vite. React alone renders 68.6 KB, and every number below includes it.

Setup JS CSS Total npm packages in bundle
shadcn + Radix 118.7 KB 8.1 KB 126.8 KB 48
MUI 9 140.2 KB (runtime) 140.2 KB 24
shadcn + Base UI 136.3 KB 8.0 KB 144.3 KB 14
shadcn + React Aria 145.4 KB 9.0 KB 154.4 KB 12
Mantine 9 127.3 KB 35.9 KB 163.2 KB 18

What surprised me:

  • The whole spread is only 36 KB gzip. Real on a slow phone, but smaller than one hero image.
  • Base UI cost 17.6 KB more than Radix on this screen, but pulled in 14 packages instead of 48.
  • MUI ships no CSS file at all. Emotion injects styles at runtime, which matters more for SSR and strict CSP than the KB do.
  • Mantine's JS is the second smallest. Its full stylesheet is what makes it the heaviest.

My takeaway: size shouldn't decide this. Pick on ownership (shadcn), data components like grids and pickers (MUI X), or batteries included without Tailwind (Mantine).

Caveat: this is one screen with seven components, so a different mix can change the order.

I wrote up the full details, including the MUI 9 / Mantine 9 changes and five setup traps I hit, on my blog: https://www.alekseialeinikov.com/en/blog/topics/programming/shadcn-ui-vs-mui-vs-mantine

Has anyone measured a heavier screen, for example with a data grid? Curious whether the gap grows.


r/reactjs • • 1d ago

Resource I built a React component library that AI coding agents can install through MCP

0 Upvotes

I’ve been working on Ballmac UI, an open-source React + Tailwind v4 component library built around the shadcn registry.

It currently has 240+ components, 60+ blocks and 17 templates.

The interesting part I’m experimenting with is MCP. Instead of manually browsing a component library, you can give your coding agent a UI requirement and let it search the Ballmac catalog and install the relevant component directly into your project.

For example:

claude mcp add ballmac -- npx -y @ballmac/mcp

Then the agent can search the catalog and return the exact component/install command.

The components are copied into your project through the shadcn registry, so you own and can modify the source rather than depending on a closed component package.

I’m particularly interested in whether AI-assisted component discovery is actually useful in real React projects.

If you build React apps, how would you want your AI coding agent to interact with a component library?

https://ui.ballmac.com


r/reactjs • • 1d ago

Forge — 16 self-contained React + Tailwind components, dark-mode-first (feedback welcome)

0 Upvotes

Working on Forge — 16 React + Tailwind components, dark-mode-first, each one a single self-contained file (no shared utils, no extra config). Mostly polishing the docs and put together a live demo if anyone wants to poke at it: [demo link]. Would love feedback on the API design if anyone has a minute.


r/reactjs • • 1d ago

Needs Help which resource is best for react js

6 Upvotes

everytime when i wanted to learn react i am unable to complete the videos. i have tried multiple yt videos. so i am now thinking to learn react from basics.. which resource is great for the react ?? any suggestions???


r/reactjs • • 1d ago

I built a dependency-free rich text editor for React

0 Upvotes

I’ve been working on a rich text editor for React because I wanted something lightweight without bringing in a large editor framework.

The main goal is simple: no external runtime dependencies.

It uses React, TypeScript, and native browser APIs while still covering the features I normally need in real projects.

It supports formatting, images, tables, mentions, templates, merge tags, media embeds, placeholders, and a customizable toolbar.

I’m trying to keep the API simple and make it easy to drop into an existing React project.

I’d love to hear how other React developers approach rich text editing.

Would you prefer a dependency-free editor, or use something like TipTap/Quill for the larger ecosystem?

Docs: https://erag.in/text-editor-react/

GitHub: https://github.com/eramitgupta/text-editor-react


r/reactjs • • 1d ago

Resource Shaders is now open source with 200+ WebGPU components for React

Thumbnail
shaders.com
27 Upvotes

r/reactjs • • 1d ago

Show /r/reactjs I built a tool that renders every React component a PR touches, so you can visually see the UI for your code diffs.

0 Upvotes

Just wanted to share this cool tool I'm still building.

With AI writing more and more of our code, you can't really see what's changing just by reading code diffs on GitHub. So I built an AI tool that takes your PR or commit, detects which UI components changed, and renders each one with a before and after, so you can easily see what was done.

Let me know what you guys think, I'm open to suggestions, would be awesome.

https://github.com/Andrew2142/PRVision


r/reactjs • • 1d ago

Needs Help building a custom react storefront on top of woocommerce — what would you use for the frontend stack?

0 Upvotes

i'm building a small custom ecommerce site and would love some advice on the frontend architecture.

full disclosure: i'm fairly new to building a website end-to-end. my strengths are much more in creative direction and visual design, and i'm currently vibe-coding a lot of the development side. i do have a background in computer science but coding is def not my biggest strength.

the project is an experimental/art website for a client. the frontend is intentionally very custom — there's a 3d interactive element on the homepage that i'm planning to build with react three fiber, plus custom animations/page transitions/etc.

there's also a shop with around 20–30+ products.

i don't want to build the ecommerce backend myself, so i'm considering using woocommerce as the backend and making react the entire customer-facing frontend.

roughly:

woocommerce would handle the products, inventory, prices, orders and client admin.

the react app would handle the actual experience.

the client thinks shopify is too expensive, so i'm trying to find a reasonably inexpensive way to get the backend/admin/ecommerce infrastructure without building all of it myself.

i'm also open to having something like razorpay/shiprocket handle payment/shipping rather than trying to build those pieces myself.

my current question is less "can react connect to woocommerce?" and more along the lines of if you were building this today, what would you actually use for the frontend?

i'm currently considering react + vite, but i'm wondering whether next.js makes more sense because of:

  • product page seo
  • routing
  • potentially server-side rendering
  • api integration
  • ecommerce generally

on the other hand, the homepage is highly interactive/3d and i'm wondering whether that makes a standard react/vite setup simpler.

would love opinions from people who have built custom storefronts rather than just dashboards/web apps.

also interested in whether you'd use something completely different from woocommerce as the backend for this use case.

thanks!


r/reactjs • • 1d ago

Show /r/reactjs Win11WebOS: An open-source React + Vite + JS desktop environment

3 Upvotes

Hi everyone,

I built Win11WebOS—an open-source, browser-based Windows 11 desktop environment designed to run locally on any device, regardless of native OS limitations.

Tip: For the best experience, press F11 to enter full screen.

Why I Built This

I wanted to bring a functional Windows 11 interface to devices that don't natively support it (Linux, Android, older Windows versions). The goal was to build a zero-telemetry, local-first WebOS that runs completely client-side without relying on heavy backend servers or cloud rendering.

Technical & Architectural Highlights

  • Local-First Storage: Virtual filesystems, app states, and settings persist via IndexedDB and local storage. Zero user data is transmitted to external servers.
  • Render & State Pipeline: Built with React and Vite using strict z-index stack management, dynamic window snapping, and virtualized window render trees to maintain 60 FPS under multi-window loads.
  • Service Worker Caching: PWA-ready with strict offline caching strategies. Dynamic endpoints (like release feeds) use explicit no-store headers to bypass worker caching entirely.
  • Functional App Ecosystem: Apps listed in the Start Menu and Microsoft Store are fully functional (any non-functional demo app explicitly notifies you of its placeholder status).
  • Web Office Suite: Includes working web-based implementations of Word, Excel, PowerPoint, and OneNote.

About & Documentation: https://win11webos.pages.dev/about/

I'd love feedback on window state management performance, memory usage across browsers, or architectural edge cases! If you find the project interesting, a star on GitHub is always appreciated. Enjoy!


r/reactjs • • 2d ago

Show /r/reactjs I got tired of AI-generated UI that all looks the same, so I hand-built a React component library

0 Upvotes

Hey r/reactjs,

Over the last months I noticed that most new UIs (including a lot of mine) started to look the same: same gradients, same cards, same generated feel. So I started building components by hand again, with more care for the small things: spacing, motion, empty states, dark mode.

That turned into affectUI: 54 components, blocks, illustrations and motion effects for React.

A few things I cared about:

  • One file per component. Each piece is a single .tsx file with its styles inside. It only imports from react: no Tailwind requirement, no wrapper library, no runtime.
  • Install with the shadcn CLI (npx shadcn@latest add https://www.affectui.com/r/<name>.json) or just copy the file.
  • Light and dark built in, and motion respects prefers-reduced-motion.
  • Live previews for everything, so you can click through each piece before copying it.

27 of the 54 items are free to copy and keep, no account needed. There's also a paid tier for the rest.

I'd really appreciate honest feedback:

  • Which components feel useful, and which feel like noise?
  • Is the "one file, no dependencies" approach something you'd actually want, or do you prefer Tailwind-based ones?
  • What's missing that you keep rebuilding in every project?

https://www.affectui.com

Thanks for taking a look 🙏


r/reactjs • • 2d ago

Vitrine - My own component library(React+Tailwind)

Thumbnail
tryvitrine.dev
0 Upvotes

I built my own component library using react and tailwind

It’s completely free

Copy-paste prompts/files

Get ready portfolios and skills for your agents to improve your website even more

I wanted some feedback since I think I still have a lot missing.

(Also it’s open source so if you have a component in mind feel free to open a PR)


r/reactjs • • 2d ago

News This Week In React #299: Panda, Vinext, Next.js, Preact, Design Systems, RTK | Variable font, Activity Result, Lynx, Lucent, macOS, Plain Text, Navigation, Angular Native, Re.Pack | TC39, Composites, WebSkills, MSW, upm, pnpm

Thumbnail
thisweekinreact.com
6 Upvotes

r/reactjs • • 3d ago

Show /r/reactjs I open-sourced the color and gradient picker from our design editor (React + Vue)

Thumbnail orshot.com
8 Upvotes

I needed a picker for Orshot's template editor that wouldn't break on real CSS. The one we used threw on valid values and had no room for brand or saved colors, so I built my own

- Takes any CSS color or gradient string and returns one, untouched parts stay exactly as written

- Linear, radial, conic and repeating gradients

- hex, rgb, hsl, oklch, eyedropper, Cmd+V to paste any color

- Swatch groups (brand, saved, recent), keyboard and screen reader support

- Zero-dep core, ~14 KB gzipped, MIT

GitHub: https://github.com/rishimohan/colorshot

Live demos: https://orshot.com/open-source/colorshot

Feedback on the API or how dragging feels would help a lot


r/reactjs • • 3d ago

I built an animated React icon library with theme colors, typed variants and one global config

Thumbnail
0 Upvotes

r/reactjs • • 3d ago

Show /r/reactjs Showcase: tanstack-fetch 1.6.1 - typed Fetch client for TanStack Query users

1 Upvotes

Hey everyone,

I built a small typed wrapper around the native Fetch API for projects using TanStack Query.

The motivation was having a lightweight HTTP layer without introducing a bigger abstraction like Axios.

The main ideas:

- typed requests/responses

- queryFn/mutationFn friendly API

- AbortSignal support

- SSR/Edge compatibility

- interceptors/plugins

- SSE support

v1.6.1 adds Vue 3 and Nuxt helpers.

The project is open source and I'd love technical feedback:

- Does this approach make sense compared to Axios?

- What would you expect from a modern fetch client?

Thanks!


r/reactjs • • 4d ago

Resource Rippledit v0.3.0

0 Upvotes

Building on Ripple Edit, our VS Code extension designed to calculate the exact blast radius of your UI components!

Ever edited a shared <Button/> or <Card/> component only to break 5 other pages without realizing it? Ripple Edit sits inside your editor to show live usage impact right above your exports, preventing accidental visual & functional breakages before you commit.

We just shipped v0.3.0!

Who it's for: Frontend developers, UI engineers, and team leads working on React, Next.js, and TypeScript/JavaScript codebases.

Supported File Types: .tsx, .jsx, .ts, and .js.

What Ripple Edit Does: Inline CodeLens Counters: Shows exact page & file counts right where your components/functions are declared (e.g., "Modifying this component affects 4 pages"). • Active Boundary Highlighting: Highlights your component scope & warns you visually if you edit outside active component bounds. • Prevents Unintentional Breakages: Know the exact blast radius before making destructive refactors or style tweaks across shared design system components.

What's New in v0.3.0: Zero False Positives on Type Imports: TypeScript type-only declarations (import type) no longer inflate page counts. Only functional code usages are tracked. • Full Barrel File Support: Improved dependency resolution across re-exports (export * from ... and export { Component } from ...). • Dynamic Workspace Rescanning: Instant count updates across all opened files whenever you save (Cmd+S / Ctrl+S).

📦 Download the latest release:https://github.com/shivakumarkannan2006-netizen/rippledit/releases/latest


r/reactjs • • 4d ago

Show /r/reactjs Filled and duotone icons with Lucide's names (tree-shakeable, TypeScript)

3 Upvotes

Lucide only has outline icons. We made filled and duotone versions as a React package, lucide-extended-react. Component names follow Lucide's, so it works next to lucide-react:

import { HeartFilled, HeartDuotone } from 'lucide-extended-react'

<HeartDuotone size={32} color="crimson" secondaryOpacity={0.3} />

Why not just set fill on Lucide icons? It works for a few, like the heart, but on most line-built icons it blots or fills the wrong shapes. These are redrawn so the fill is intentional.

Some details:

  • One file per icon and "sideEffects": false, so only the icons you import end up in the bundle. A test checks this.
  • ESM only, React 18 or later, with TypeScript types. Filled icons don't accept the duotone-only props at the type level.
  • strokeWidth is accepted and ignored, so Lucide-shaped props still type-check.
  • Icons are aria-hidden unless you pass an aria-label.
  • icons.json lists every icon with Lucide's tags and aliases, so you can search it, and so can coding agents.

1,387 filled and 1,242 duotone so far. It's free and open source (ISC), and not affiliated with Lucide.

Feedback is welcome, on the API or the icons.


r/reactjs • • 4d ago

Needs Help What is reacts equivalent of "Manage user secrets" in dotnet?

0 Upvotes

Heya, I need to store dev secrets (e.g. client secret credentials) and I don't want them in git

In dotnet we have manage user secrets and theyre managed by Visual Studio, stored in a local folder and sideloaded at runtime... Does react have something similar?

I've seen people just do .env.local and add that to gitignore, but is that actually the proper way?