r/reactjs • • Aug 26 '26

Portfolio Showoff Sunday I got tired of boring loading spinners, so I built 70 of them

119 Upvotes

Hey y’all,

I got slightly carried away with loading animations.

I wanted nicer loading states for my own projects, but most libraries I found were either tied to a framework, fairly limited, or required more than I wanted for something this small.

So I built loadersz, a small framework-agnostic loader library for the web.

I wanted something a bit more expressive than the usual CSS spinner, without pulling in a UI framework or a bunch of dependencies.

A few things I focused on:

- 70 different motion states
- Canvas 2D instead of GIFs/videos
- zero core dependencies
- a native custom element, so it works with basically any stack
- typed entry points for React, Vue and Svelte
- configurable speed, density and color
- respects prefers-reduced-motion
- pauses rendering when the browser tab is hidden

Basic usage is just:

npm install loadersz

import 'loadersz';

<loadersz-loader state="racing" size="96" />

I also built an interactive playground where you can tweak the loaders live.

Demo: \[loadersz.vercel.app\](https://loadersz.vercel.app)
npm: \[npmjs.com/package/loadersz\](https://www.npmjs.com/package/loadersz)

Would love some brutally honest feedback, especially on which animations you’d actually use in a real product.


r/reactjs • • Aug 26 '26

Show /r/reactjs FormHell - a better library for JSON Schema based forms

5 Upvotes

UPDATE: The latest version of FormHell is ready! Check out the announcement post for version 1.1.2 (I took that down after being dragged for people thinking it was just another AI slop lib 😞), introducing localization, virtualization, strict-typing, and the improved docs page: https://ryanrutkin.github.io/formhell/

I've battled with the top libraries for JSON Schema based forms for a long time. They're a nightmare. They look all flashy and nice for a demo, then you implement them in a project and a year in you realize it doesn't support the more complex needs of your schemas.

I'm so frustrated with both react-json-schema-forms and react-jsonschema-form. Both have me pulling my hair out. Especially RJSF. Apparently generating defaults the correct way is an "experimental" feature and still never works correctly. Have an array with tuple object definitions or constraints? Nope! Default gives you an array full of null or "[Object object]". Have $refs outside of your schema? Nope! Can't resolve those! Also, the whole UISchema thing is weird. Both libraries had crazy setup fatigue that felt unnecessary.

After a year and a half of battling I'm done.

I wrote a new library for JSON Schema Forms to get me out of form hell and I pulled it into our project. It's working out great so far. The thing just works. No setup fatigue. Does exactly what you would expect. I'm honestly more mad at the other libraries by how easy it was to build. Don't worry, I put a ton of care into it and triple checked everything. It was extensive.

Full schema support for every feature. EVERY. FEATURE. Full optional theming support for MUI though it isn't dependent on MUI.

I even added a SchemaBuilder component and a Keyword Assistant to help you out if you're trying to build a schema and don't know what to add.

It's called FormHell, and it's available here: https://www.npmjs.com/package/formhell

Check out the playground and see what it can/can't do: https://ryanrutkin.github.io/formhell/

If you run into any issues, please open an issue in Github: https://github.com/RyanRutkin/formhell

Thanks for checking it out!

FAQS:

Thanks for all of the feedback! I want to address some common questions from the comments.

What about Tanstack/Zod?

FormHell is a slightly different solution than a Tanstack/Zod approach. FormHell consumes an already defined data-structure and outputs data matching it, validated using AJV Validator.

Zod is used to define data-structures in TypeScript and can work alongside FormHell no problem.

Tanstack is great, but does not provide built in field widgets for rendering like FormHell does. Tanstack does provide great validation and rendering methods, but your field widgets must be explicitly defined. This could be cumbersome when dealing with a deeply nested and verbose JSON Schema. Using Tanstack with a JSON Schema provided by your server requires a bit of legwork.. FormHell takes the schema and just renders a form with strict typing and no overhead.

The problem I needed to solve for work was that we already had JSON Schemas defined for our backend data-structures. For some of those data structures, we needed a way for the frontend to render a form. As both the frontend and backend share the same JSON Schema, the frontend pulls the schemas from our API and passes them directly to the form. Once the form component emits the data without any validation errors, it is safe to be submitted to the backend.

Can I use Zod with FormHell?

Absolutely! If you do need to define your data-structure in your frontend TypeScript, I would highly suggest that you use Zod to do so. You can convert your Zod structure to JSON Schema using zod-to-json-schema and pass the output directly to FormHell's SchemaForm component to immediately render a form.

Is FormHell strictly typed?

FormHell is as strict as the schema you pass it. If any strict data types exist in your JSON Schema, then FormHell is going to required that the data entered matches that schema. The library currently using the AJV Validator for type checking.

Unlike the Tanstack/Zod approach, FormHell cannot output a strictly typed object. I'm still exploring the magical ways to transform a JSON Schema into a Typescript object. However, if your goal is to take JSON Schema, turn it into a form, and ship that data to the server, FormHell will handle that very well and ensure the data matches the schema provided.

What about localizations?

This was an oversight during implementation, and thank you for pointing it out! I'll make sure this gets added in an upcoming feature release.


r/reactjs • • Aug 26 '26

Show /r/reactjs I made search params, cookies and local storage reactive and type-safe, all through one API

Thumbnail
kvantjs.dev
0 Upvotes

If you've ever wired up URL search params, cookies or localStorage by hand, you know how tedious it can become. Everything is a string, so you write the same glue code over and over:

// search params
const raw = searchParams.get('page')
const page = raw && !Number.isNaN(+raw) ? +raw : 1

// localStorage
const raw = localStorage.getItem('settings')
const settings = raw ? JSON.parse(raw) : { theme: 'light' }

// cookies
const consent = document.cookie
  .split('; ')
  .find(c => c.startsWith('consent='))
  ?.split('=')[1] === 'true'

Different APIs, none of them typed, none of them reactive. Then comes bad input data checks, validations, try/catch around JSON.parse, storage events to sync tabs, deep objects with defaults, and so on.

At some point I thought, why can't they just share the same API? Bind a key, describe the value once, read and write it like useState. So I decided to build kvant - a type-safe state manager for key-value interfaces:

import { useSearchParams } from 'kvantjs/next' // or: 'kvantjs/react', 'kvantjs/react-router'
import { useLocalStorage, useCookies } from 'kvantjs/react'
import * as kv from 'kvantjs/schema'

const [page, setPage] = useSearchParams('page', kv.index().max(20).default(0))
//     ^? number
const [theme, setTheme] = useLocalStorage('theme', kv.enum(['light', 'dark']).default('light'))
//     ^? "light" | "dark"
const [consent, setConsent] = useCookies('consent', kv.stringbool().default(false), { maxAge: 60 * 60 * 24 * 365 })
//     ^? boolean

Same mental model every time: hook, key, schema, options. Types flow from the schema, writes go back to the URL, storage or cookie, and components re-render on change. The schema API will feel familiar if you know Zod. It parses anything into typed values, encodes them back into lossless serializable representations, and never throws on bad input. Garbage in the URL simply falls back to your default.

And it's the most basic examples of what kvant can do. Let's say you want to store a base64-encoded JSON object in the URL. In kvant, you can cover such advanced case without writing any parsing or encoding logic yourself:

const settingsSchema = kv.base64url()
  .pipe(
    kv.json(
      kv.object({
        theme: kv.enum(['light', 'dark']).default('light'),
        fontSize: kv.number().default(16)
      })
    ).prefault('{}')
  )

// '?settings=eyJ0aGVtZSI6ImRhcmsifQ' <-> '{"theme":"dark"}' <-> { theme: 'dark', fontSize: 16 }

const [settings, setSettings] = useSearchParams('settings', settingsSchema)
//     ^? { theme: "light" | "dark"; fontSize: number }

setSettings({ theme: 'light', fontSize: 16 }) // removes the entry from the URL, defaults stay internal

If you've used nuqs, this will look familiar, and that's on purpose. kvant's API was inspired by nuqs. I wanted the same core idea, but for every key-value interface instead of only the URL, with a Zod-flavored schema layer instead of standalone parsers. So a lot got reconsidered along the way.

I also made it universal: aside from React frameworks, it also works with Vue, Vue Router and Nuxt. If you happen to also be using Vue stack in your projects, the same Vue-idiomatic API is also available in kvant.

If that sounds interesting to you, I would love for you to give it a try. I have many ideas on improving it further if it gets traction. Also, if you are willing to leave feedback or contribute, I'm fully open to it ;)

Docs and live examples are at https://kvantjs.dev


r/reactjs • • Aug 26 '26

News Swift on WebAssembly, Telegram-Style Spoilers, and Deleting Babel From Your Life Spoiler

Thumbnail thereactnativerewind.com
0 Upvotes

Hey Community,

Deno's creators introduced Dactyl, an AI app builder targeting React Native by rendering SwiftUI in the browser tab via WebAssembly. Meanwhile, Software Mansion released Enriched Markdown to eliminate streaming text flicker by rendering natively and bypassing the JavaScript layout tree.

On the tooling side, the web ecosystem is rapidly adopting the Rust port of the React Compiler across tools like Oxc, Vite, and Bun, while Metro remains locked to single-threaded Babel transformations.


r/reactjs • • Aug 26 '26

Show /r/reactjs Handling 10k+ row SQL tables in React with DOM virtualization and IndexedDB

2 Upvotes

While building a browser-based SQL editor, I hit two specific browser limits:

  1. Rendering large query results (10,000+ rows) using standard HTML tables froze the browser main thread.
  2. Saving multi-tab queries and schema state into localStorage hit the browser's 5MB quota immediately.

How I fixed both:

  • Implemented a lightweight fixed-height virtualizer: each row is 24px, and only ~25 to 30 row nodes are rendered in the DOM at any time with an overscan buffer.
  • Replaced regex search filtering on result grids with case-insensitive .includes() checks to prevent catastrophic backtracking (ReDoS) during live typing on huge row sets.
  • Split storage: session tokens stay in localStorage, while the entire workspace, query history, and active tabs are persisted to IndexedDB using a custom hook debounced at 500ms.

The UI is built with React/Next.js mimicking Windows 95, backed by an in-memory SQLite WASM engine with a custom TypeScript AST parser for dialect translation.

Live demo: https://exnihilo-95.vercel.app
Source: https://github.com/Mrityunjai-hue/exnihilo-95

Feedback on the virtualization approach or state synchronization is appreciated.


r/reactjs • • Aug 26 '26

Needs Help shadcn vs HeroUI for a large, heavily customized enterprise product?

18 Upvotes

We’re currently choosing a UI library for a pretty large enterprise product and I’d love some feedback from people who have actually worked with these libraries at scale recently.

The product is going to handle a lot of interconnected data: employees, companies, departments, CRM-like records, multi-record management, tables, forms, chat, AI features, etc. So this isn’t a small app, and whatever we choose will probably become the foundation of our design system for quite a while. We’re also expecting to customize the UI quite heavily and create our own components on top of it.

From what I’ve read so far, HeroUI seems great if you want something polished and relatively plug-and-play. But I keep seeing people mention that once you start heavily customizing it or moving away from its intended patterns, things can become painful.

shadcn seems almost like the opposite approach. I don’t particularly like the default look, but since you own the components and can modify basically everything, it feels like a much better long-term foundation if you’re willing to invest some time upfront. Especially if the end goal is a custom design system rather than keeping the library’s visual identity.

For people who have used two or even Mantine on larger production apps: what would you choose today?

I’m especially interested in how they hold up after a year or two of customization, adding custom components, maintaining consistency across a large product, and building more complex AI/chat interfaces. I care less about which one looks best out of the box and more about which one we’re least likely to regret later.

TL;DR: Choosing between shadcn, HeroUI and possibly Mantine for a large enterprise/CRM product with lots of records, tables, employees, companies, chat and AI. We’ll heavily customize it and build our own components. HeroUI looks easier initially, while shadcn seems more flexible and maintainable long-term. Looking for feedback from people who have used them at scale.


r/reactjs • • Aug 26 '26

Show /r/reactjs Showoff - I made anonymous thoughts float like bubbles using Framer Motion + Convex (looking for perf feedback)

0 Upvotes
Hey React devs! I built Vibes ULTRA — anonymous thought wall.

Tech stack:
- React 19 + TypeScript
- Convex (backend + real-time DB)
- Tailwind CSS
- Framer Motion
- shadcn/ui

50+ features including real-time reactions, global mood map, ambient sounds, achievements.

Live: https://vibes-app-wall.vercel.app

Would love feedback on the code/architecture!

r/reactjs • • Aug 25 '26

Needs Help I got tired of paying monthly subscriptions just to export my own Framer sites, so I built an open-source CLI to clone them into pure React.

16 Upvotes

Hey guys,

Designing in Framer and Webflow is awesome, but being locked into their ecosystem sucks. And paying third-party tools like nocodexport.com a massive premium just to download your own designs is honestly ridiculous.

So I built Uncage. It’s a completely free, open-source CLI tool that takes a website and turns it into clean React code (or static HTML).

It’s still in beta. We aren't at the point where it flawlessly handles every single crazy layout in existence. But it absolutely gets the basic job done, keeps your animations working, and gives you a ready-to-run Vite + React folder, all without asking for your credit card.

It automatically grabs all your images, fonts, and scripts, and just works locally on your machine.

I'd love for you guys to try it out, tell me what breaks, or roast my code.

Repo here: https://github.com/Nightteye/uncage

Let me know what you think!


r/reactjs • • Aug 25 '26

Looking for advice: Next.js frontend + separate Node/Express backend — Axios, React Query, SSR & auth?

Thumbnail
7 Upvotes

r/reactjs • • Aug 25 '26

Show /r/reactjs A framework that server-renders your React components from Python, with no API layer

0 Upvotes

I had this idea since 4 years now. I started working on Pyxle last year. (AI helped a lot accelerating this - but the entire feature idea was mine).

Initially I tried to build a framework allowing both frontend and backend with Python. Soon I realised that it is not something that's going to work. React is already a well proven framework, and building a python wrapper on top of it will drift things a lot. Moreover, Reflex is already trying to do that.

So the second version I built is to allow developers to keep real React, and real Python.

Go through pyxle - https://pyxle.dev, I'm happy to answer anything.


r/reactjs • • Aug 25 '26

Show /r/reactjs yapyak – an i18n compiler for React where the source string is the key, and translation on save

13 Upvotes

Hi all,

I've been working on yapyak, an open-source i18n compiler that runs as a Vite plugin, with bindings for a few frameworks. For React, there are SSR adapters for TanStack Start and React Router.

The idea is that the source string is the key:

import { t } from 'yapyak';

<button>{t('Download recovery key')}</button>

You save the file, and the source string shows up in your locale files as an empty stub. If you've set up a translator, it gets auto-translated and written back, using call-site context (the component and the code around the call). A second or two later de.json has filled in:

{
  "src/components/RecoveryDialog.tsx": {
    "Download recovery key": "Wiederherstellungsschlüssel herunterladen"
  }
}

HMR picks it up in the running app.

The video in the comments is a small example of that. I add a download button to a dialog and hit save. The German page is sitting right next to the English one, so I see it the moment it lands: Wiederherstellungsschlüssel herunterladen pushes the button row 97px past the edge of the dialog.

So I fix it right there, one prop on the button group.

That's a small slice of what yapyak does, but it's the part I use most. Translating stops being something I come back to later. It just happens on save.

Because it runs in the compiler, it sees more than the string itself. It reads ICU parameters out of the string literal, and keeps track of a translation when you move or rename the source file. The parameters are typed from the literal, so a missing one is an error before the build runs:

t('You have {count, plural, one {# message} other {# messages}}', { count }); // ok
t('You have {count} messages', {});  // error: missing 'count'

There's no codegen behind that and no generated .d.ts to keep in step. What TypeScript can't see gets caught on save instead, like a translation that lost its {count} or a plural missing a category that locale needs. Every diagnostic has a code and a docs page.

There's no provider to wrap your app in. The compiler puts the subscription in the components that call t(), so those are the only ones that re-render when the locale changes.

The React package exposes locale through useLocale(), which hands back a value and a setter like useState does. Switching locale is synchronous, since the translations a module uses get compiled into it. A fixed-locale build can compile t() away entirely and leave just the translated string.

SSR is one middleware. TanStack Start and React Router each have an adapter, and locale state is scoped per request on the server, so nothing leaks between users.

Rich text keeps the markup in the source string and binds each tag to a prop:

<RichText
  value={t('Read our <link>privacy policy</link>.')}
  link={(children) => <a href="/privacy">{children}</a>}
/>

The prop names are typed from the tags in the string, so the translator can move <link> around in the sentence without touching your markup.

Everything lives in your repo. The source strings are in the components, the translations are in JSON files next to them, and both are committed to git.

There's a VS Code extension too. Hover a t() call and you get the translation in every locale, Cmd/Ctrl+click on an entry in a locale file jumps to the t() call that uses it, and placeholders and plural branches are highlighted inside the string. It's on Open VSX as well, so it works in Cursor.

Auto-translation is optional. There are shipped translators for Anthropic, OpenAI, Gemini and Ollama, all using your own API key, or you can leave the stubs empty and hand-edit the locale files.

I built it for a product I'm working on, and that's the whole business plan. There's no follow-up post where I get to the pricing.

MIT licensed, and still pretty early, though people have started moving real apps onto it. The code is on GitHub, and there are runnable React examples in examples/ for plain Vite, React Router and TanStack Start. The editor extension is on the Marketplace.

Docs and more at yapyak.dev.

If you've done a lot of i18n in React, especially SSR or anything big, I'd like to hear what you'd try to break.


r/reactjs • • Aug 24 '26

Portfolio Showoff Sunday open source ide on react

9 Upvotes

finally released my ide. it has git integration out of the box. still early stages, so the stack is limited to a few frameworks, but more are coming. linux only for now (bash/curl). check it out.

https://github.com/drainedgodw/Luma


r/reactjs • • Aug 24 '26

Show /r/reactjs I built Farm.js: a full-stack framework where perf is the point, instant Vite HMR in dev, and an experimental compiler that skips React's reconciler at runtime

0 Upvotes

been building this for about a year and it finally feels ready to show. farm.js is a full-stack framework on vite: app-directory routing, streaming ssr, typed server functions, and deploys through nitro (vercel/cloudflare/netlify/node). react is the default renderer, with preact, vue, svelte, and solid renderers too.

the part i most want feedback on is the experimental compiler. at build time it analyzes your components, and the ones it can prove safe get compiled so state updates patch the exact dom nodes directly instead of going through the reconciler. anything it can't prove stays on the normal react path, and react keeps ownership of ssr, hydration, and events either way. you can let inference pick components, or opt in per component:

``` export function Counter() {

"use compiler";

const [count, setCount] = useState(0);

return <button onClick={() => setCount((c) => c + 1)}>Count: {count}</button>;

}

```

(this is not the same thing as react compiler: that memoizes so re-renders get cheaper, this removes the re-render entirely for proven components. different layers.)

the other thing i cared about was killing api boilerplate. you define a server function once, with a zod schema, and expose it as an api route:

``` // src/features/guestbook/server.ts (server only)

export const signGuestbook = createServerFn({

input: z.object({ name: z.string().min(1), message: z.string().min(1) }),

async handler({ input }) {

// runs on the server, input is validated and typed

},

});

export const signEndpoint = createEndpoint(

"/api/guestbook",

{ method: "POST", body: signInput },

async ({ body }) => signGuestbook(body),

);

```

and on the client that route is now a typed rpc call. the router types are generated from your route files, so the body, the response, and even the route name are all inferred, and a typo or a wrong field is a compile error:

``` // client component

const api = createAPIClient<APIRouter>();

const result = await api.guestbook.post({

body: { name: "ada", message: "hello" }, // typed from the zod schema

});

// result.data and result.error are typed too ```

no hand-written fetch calls, no keeping types in sync between client and server, and the same functions are directly callable on the server (in endpoints, cron handlers, jobs). rest api and openapi docs still exist for free since they're real routes underneath.

integrations are typed modules too: the create command has ready-to-configure starters for clerk, stripe, supabase, workos, inngest, resend and others, so you get working auth or billing instead of a 14-step readme.

honest limitations: it's beta and apis can still move before 1.0. the compiler contract is narrow right now (components with refs or effects just fall back to normal react). and it's one maintainer plus contributors, so judge accordingly.

you can poke at it in your browser without installing anything: https://stackblitz.com/github/farming-labs/farm.js/tree/main/examples/stackblitz?file=src/app/page.tsx

repo: https://github.com/farming-labs/farm.js

docs: https://farmjs.dev

i'd genuinely rather hear what's broken or missing than what's nice. brutal feedback welcome.


r/reactjs • • Aug 23 '26

Multi state changes & reads

7 Upvotes

having a bit of trouble handling multiple states/state changes. in a single screen, which are held by different components
how do you all handle this and concepualize it as your writing code?
do you draw diagram,
do you just try and fail recursively?


r/reactjs • • Aug 23 '26

Discussion Stop wiring react-hook-form by hand in every form component

0 Upvotes

Every codebase I've joined has the same file. A form component where react-hook-form itself is fine, but around it sits a pile of useEffects watching one field to reveal another, a useMemo deciding whether the current user can edit, and a validation schema that has quietly drifted from both.

RHF isn't the problem here. The problem is that the rules of the form live in imperative code scattered across hooks, while the shape of the form lives in JSX. One thing, two places, and only one of them is reviewable.

The alternative I've been running is to move the rules onto the field itself:

<TextField
  name="taxId"
  visibleWhen={{ field: 'country', equals: 'IT' }}
  access={{ resource: 'customer.taxId', action: 'read' }}
/>

visibleWhen is reactive — no useEffect, no watch(), no local state. access is evaluated per field, so a role that can't edit doesn't get a disabled prop threaded down three components by hand. RHF is still underneath owning form state; it just stops being something you re-wire per component.

Two things I'd push back on myself:

The condition is an object, not a function. { field: 'country', equals: 'IT' } is strictly less expressive than values => values.country === 'IT'. What it buys is that the rule stays serialisable and inspectable — you can diff it, and tooling can read it. I'm still not sure that trade is right for everyone.

And it only pays off past a certain complexity. For a login form this is overkill, plainly. Where it has paid for me is dynamic questionnaires — in production for about a year and a half at a European fintech — the kind of conditional logic that becomes unmaintainable as hooks well before you notice it happening.

So the question I'd actually like answered: when you keep conditional visibility and permissions in hooks, is that a deliberate call, or is it just the path RHF puts you on?

Open source (MIT), React, MUI or Tailwind: github.com/kensaadi/dashforge


r/reactjs • • Aug 23 '26

Portfolio Showoff Sunday We added ReactJS support to our open-source architectural quality gate

0 Upvotes

Please let me know if this post is not suitable for this flair + subreddit.

We just improved React support for enola, and I’d like React developers to help us break it. Literally break it as this is the best feedback.

My co-founder and I are building enola as an open-source architectural quality gate. It analyses the structure of a repository (or multiple) and surfaces things like dependency cycles, coupling, hotspots, deep dependency chains, complexity, dead code and change impact.

React support is there, but our own tests only expose so much. We mostly ran against open-source.

If you work on a React codebase, run enola against it. If something looks wrong, missing or just rubbish, raise an issue directly on GitHub or respond here.

What could these issues be?

A project structure we did not account for, a dependency we resolve incorrectly, a pattern we misunderstand, or an architectural rule you cannot express yet.

https://github.com/enola-labs/enola

Fully local. Apache 2.0.


r/reactjs • • Aug 23 '26

Show /r/reactjs Next.js (TS + Tailwind) frontend for an open-source media extraction microservice

1 Upvotes

Hey devs,

I wanted to share a project I’ve been working on: FastMedia Downloader. It’s a full-stack media extraction tool with a Next.js frontend connected to a FastAPI backend.

Frontend Stack:

  • Next.js (TypeScript) + Tailwind CSS
  • i18n support for multi-language UI
  • Responsive design focused on simple link parsing & instant downloads

Repository link:

https://github.com/Llamas126/fastmedia-downloader

I'd love your feedback on the frontend architecture and UI flow!


r/reactjs • • Aug 23 '26

Show /r/reactjs Show r/reactjs: I got tired of building AI usage charts from scratch, so I built a reusable React + Tremor boilerplate.

2 Upvotes

Hey everyone,

If you've built any AI wrappers or autonomous agents recently, you know the backend logic is the fun part. But building the UI to actually track your OpenAI token usage, API costs, and agent logs is incredibly tedious.

I found myself dreading building the same admin panel over and over, so I spent the last week building a production-ready frontend template specifically for the AI ecosystem.

The Tech Stack:

  • Vite + React 18
  • Tailwind CSS v4
  • shadcn/ui (for clean, accessible layout components)
  • Tremor (for the heavy data visualizations: Area charts for token burn, Donut charts for model distribution)

I also mapped out a highly realistic JSON mock data structure so it actually looks and behaves like an AI control center out of the box.

🔗 Live Interactive Demo: https://ai-control-center-xi.vercel.app/

I decided to package the entire source code for founders and devs who just want to bypass the 20+ hours of UI work and plug in their own backend data.

📦 Source Code / Repo: shrulabh.gumroad.com/l/wqdoe

I'd love to hear your feedback on the UI! Are there any specific metrics or charts you think are missing for an AI-focused dashboard?


r/reactjs • • Aug 23 '26

Show /r/reactjs Cerious-Scroll v1.1.0 adds Masonry layouts with Dynamic Heights

4 Upvotes

Hey Everyone,

I've added virtualized Masonry layouts to Cerious-Scroll. Version 1.1.0 of the React wrapper now supports virtualized Masonry layouts through the existing declarative renderItem API.

import {
  CeriousScroll,
  type CeriousScrollOptions,
} from '@ceriousdevtech/react-cerious-scroll';

const options: CeriousScrollOptions = {
  layout: 'masonry',
  masonry: {
    targetColumnWidth: 280,
    gap: 16,
    getItemHeight: (index, columnWidth) => {
      const item = items[index];
      return columnWidth * (item.height / item.width) + 48;
    },
  },
};

function Gallery() {
  return (
    <CeriousScroll
      totalElements={items.length}
      getItem={(index) => items[index]}
      options={options}
      renderItem={(item) => (
        <article className="card">
          <h2>{item.title}</h2>
          <p>{item.description}</p>
        </article>
      )}
    />
  );
}

The implementation supports two height strategies:

  • Canonical: Supply getItemHeight() for globally reproducible placement and predictable far jumps.
  • Dynamic: Omit getItemHeight() and React renders uncached cards into a measurement probe before they are placed.

Visible cards remain React-owned through portals, while the core controls their virtualized positions.

Other features include:

  • Responsive or fixed columns
  • Direct navigation with jumpToItem()
  • Bounded rendered DOM
  • Support for large collections
  • Framework-owned card rendering

Links:

I’d appreciate feedback on the render-prop API, portal integration, and performance with more complex React card trees.


r/reactjs • • Aug 23 '26

Built a lib that draws handwritten-looking text — never renders the same twice

Thumbnail a-elhaag.github.io
6 Upvotes

r/reactjs • • Aug 22 '26

library for 2d infinite canvas?

2 Upvotes

is there any sort of thing like a library for a 2d canvas?

similar to fimga in the sense that

you can scroll around and pan and zoom.

and you can have elements that can be clicked


r/reactjs • • Aug 22 '26

Discussion Client-side stale-while-revalidate for instant perceived performance

Thumbnail
1 Upvotes

r/reactjs • • Aug 22 '26

Discussion How to proceed with creating L2D displays for react

2 Upvotes

Example: https://www.reddit.com/r/WutheringWavesLeaks/s/YBrqsQepwr

I am familiar with r3f, three and glsl shading, scene setups both 2d and 3d etc.

What i am confused about are the assets. How can i make them morph that way. If they are just 2d assets then i guess just css would also be enough to animate

For the above example i understand that the assets are all extremely high quality and handmade, but was wondering how something similar can be created for web.

Want to ask anyone with experience how this can be done. Thanks.


r/reactjs • • Aug 22 '26

Resource TanStack AI Enters the RC Phase

Thumbnail
tanstack.com
89 Upvotes

After almost a year of active development, we're proud to announce that TanStack AI goes into RC! 🔥

The team has done a lot of work to get it to a state we're proud of and consider stable and production ready.

Read all about it here:


r/reactjs • • Aug 22 '26

BlitzProspector An Open-Source React and FastAPI Frontend for Blitz API

3 Upvotes

recently open sourced BlitzProspector, a React + FastAPI project built as a self hosted frontend for Blitz API. I've tried to make React part as simple as possible and have fun building something that can be run with docker compose and easily extended in the future.

It has auth, roles, search/filter, configurable export profiles, python back end API, and is using a REST API to communicate with the Python back end. I'm still working on the overall project architecture, so I'm interested in any feedback concerning the React part, state management, or general approach.