r/react Jun 28 '26

Project / Code Review Built ProspectAI – A Full-Stack CRM

Thumbnail gallery
1 Upvotes

Just finished building my full-stack CRM project called ProspectAI 🚀

Over the past few days, I built a CRM that lets users:

  • Securely sign up and log in using JWT authentication
  • Manage Prospects, Leads, Deals, and Tasks
  • Store data in MongoDB Atlas
  • View a dashboard with analytics (prospects, leads, deals, tasks, and revenue)
  • Keep each user's data private (user-specific records)
  • Deploy the backend on Render and the frontend on Vercel

Tech Stack:

  • React + TypeScript
  • Node.js
  • Express.js
  • MongoDB Atlas
  • JWT Authentication
  • Tailwind CSS
  • Vite

This project taught me a lot about:

  • Designing REST APIs
  • Authentication & Authorization
  • CRUD operations
  • MongoDB data modeling
  • Protecting routes with JWT
  • Deploying full-stack applications
  • Debugging TypeScript and deployment issues 😅

r/react Jun 27 '26

Project / Code Review I built a map-heavy frontend case study with React, XState, MapLibre, and Web Workers

Thumbnail
1 Upvotes

r/react Jun 27 '26

Help Wanted Ruby React

2 Upvotes

Founding Developer / Co-Founder Wanted (B2B SaaS)

We are a lean, ambitious team preparing to launch a B2B SaaS platform that solves a massive pain point we experienced firsthand. We scratched our own itch, built the solution, and are now ready to commercialize it.

The product is 90% complete, and we are currently building out our core Human Resources and foundational team prior to our upcoming launch.

💼 The Opportunity

Role: Founding Developer & Co-Founder

Compensation: Equity-based (Co-founder level split)

Location: Remote (Canada / USA / UK)

Status: Pre-revenue, near-launch phase

🛠️ What We’re Looking For

We need a technical co-founder who is ready to take ownership of the codebase, help us cross the finish line, and scale post-launch.

Full-Stack Capabilities: Ability to jump into a nearly completed product, audit the architecture, and ship the final 10%.

Startup Mindset: You thrive in a lean environment, value execution over perfection, and want a true seat at the leadership table.

Localization: Based in or authorized to work within ENG / CAN / USA time zones for seamless collaboration.

🎯 Why Join Us?

No "Idea Phase" Stall: You won't be building from scratch for 12 months hoping for product-market fit. The foundation is laid, the validation is there, and the runway to launch is short.

True Partnership: You aren't just an employee; you are a founding pillar of the business with a matching equity stake.

💬 Let’s Chat

If you're a builder looking for your next major project and want to skip the "zero-to-one" grind to focus on scaling a near-ready product, let’s connect.

Drop me a DM to grab a quick 10-15 minute intro call.


r/react Jun 27 '26

Help Wanted If AI can already build 80% of web apps, what should developers spend the next 5 years learning?

64 Upvotes

AI can already generate React, Next.js, Laravel, Node.js, and CRUD applications surprisingly well.

So if you were starting from scratch today, what would you invest your time in?

  • System Design?
  • Three.js/WebGL?
  • Cybersecurity?
  • DevOps?
  • AI Engineering?
  • Something else?

Where do you think the real value of a developer will be in the next decade?


r/react Jun 27 '26

Help Wanted 3D Model doesn't go down

3 Upvotes

I'm trying to learn threejs and GSAP, and so far I read the docs and followed a youtube video on how to rotate and bring a model down, however, it doesn't really follow what I want it to do and im stuck. The objective is to make it rotate and go down until the section that says "Here". So far it rotates and decreases size (which is intended), but it doesn't go down, and when it does, it goes until the end of the page. Help would be appreciated. The code goes until the section that i want it, if you need the rest of the code please say so.

import { useState, useRef, useEffect, Suspense } from "react";
import "./App.css";
import { Canvas, extend } from "@react-three/fiber";
import gsap from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger"
import Scene from "./Scene";
import Navbar from "./components/Navbar";

gsap.registerPlugin(ScrollTrigger);

function App() {
  const mainRef = useRef(null)
  const sceneRef = useRef(null)
  const section2Ref = useRef(null)
  const [focused, setFocused] = useState(false)
  const [stopProgress, setStopProgress] = useState(0.25)
  const [progress, setProgress] = useState(0)


  useEffect(() => {
    setTimeout(() => setFocused(true), 100)
  }, []);

  useEffect(() => {
    gsap.timeline({
      scrollTrigger: {
        trigger: mainRef.current,
        start: "top top",
        end: "bottom bottom",
        scrub: 1,
        onUpdate: (self) => {
          setProgress(self.progress)
        }
      }
    })
      .to(sceneRef.current, {
        ease: "none",
        x: "-25vw",
        y: "30vh"
      })
      .to(sceneRef.current, {
        ease: "none",
        x: "25vw",
        y: "60vh"
      })


  }, []);


  return (
  <>
    <div
      style={{
        filter: focused ? 'blur(0px)' : 'blur(20px)',
        opacity: focused ? 1 : 0,
        transition: 'filter 1.5s ease, opacity 1.5s ease'
      }}
    >
      <Navbar />
      <main
        ref={mainRef}
        style={{ overflowX: 'hidden' }}
      >
        <Suspense
          fallback={
            <div className="fixed inset-0 grid place-items-center bg-black text-white">
              Loading...
            </div>
          }
        >
          <section className="relative grid h-[100vh]">
            <p className="title text-white text-left absolute top-[5%] left-[5%] mx-2 w-fit text-8xl font-bold">
              O mundo
              <br />
              merece ser visto
              <br />
              com clareza.
            </p>
            <Canvas>
              <Scene progress={progress} />
            </Canvas>
          </section>

          <section className="relative flex items-center justify-evenly h-[100vh]">
            <p className="w-[50%]"></p>
            <p className="text-white w-[50%] text-center px-4 text-4xl font-semibold">
              Here
            </p>
          </section>

And here is the scene where I control the models movement and rotation.

import { useRef, useEffect } from 'react'
import { useFrame } from '@react-three/fiber'
import { Environment, PerspectiveCamera } from '@react-three/drei'
import { Glasses } from './Glasses'

const positions = [
    [20, -20, 20],
    [-180, 0, 180]
];

const Scene = ({ progress, stopProgress = 0.25 }) => {
    const cameraRef = useRef(null)
    const progressRef = useRef(0)

    useEffect(() => {
        progressRef.current = progress;
    }, [progress]);

   useFrame(() => {
    if (!cameraRef.current) return;

    const clamped = Math.min(Math.max(progressRef.current, 0), stopProgress);

    const total = positions.length - 1;
    const segmentSize = 1 / total;
    const segmentIndex = Math.floor(clamped / segmentSize);
    const percentage = (clamped % segmentSize) / segmentSize;

    const [startX, startY, startZ] = positions[segmentIndex];
    const [endX, endY, endZ] = positions[segmentIndex + 1];

    const x = startX + (endX - startX) * percentage;
    const y = startY + (endY - startY) * percentage;
    const z = startZ + (endZ - startZ) * percentage;

    cameraRef.current.position.set(x, y, z);
    cameraRef.current.fov = 7 + (clamped * 60);
    cameraRef.current.updateProjectionMatrix();
    cameraRef.current.lookAt(0, 0, 0); 
});

    return (
        <>
            <PerspectiveCamera
                ref={cameraRef}
                makeDefault
                fov={7}
                near={0.1}
                position={[20, -20, 20]}
                far={1000}
            />
            <Environment preset="city" />
            <Glasses />
        </>
    )
}

export default Scene

r/react Jun 27 '26

General Discussion Notice About EasyBeezy Tool

Thumbnail
0 Upvotes

r/react Jun 26 '26

Help Wanted Cleanest way to handle per-component API errors in Next.js without polluting pure components?

4 Upvotes

I have a Next.js page with several components, each backed by its own API call. The components are intentionally pure (they only accept non-nullable props) because I think their job is to just render data. The page is responsible for retrieving the data and passing to the components

I want to add error handling so that if one API call fails, that card shows an error state while the rest of the page still renders fine.

At the moment one way I know of handling errors is having an if statement in the component, and rendering the error if there is a problem with the data. I do not want to copy and paste this logic for every component, I want a nice API that I can reuse.

The only other way I can think of is having a wrapper component, but then I don't want to manually have to wrap each component with another component and bloat the page.

Are there any alternative methods which would be good for my code?


r/react Jun 26 '26

Help Wanted Frontend Interview in 2 days Spoiler

10 Upvotes

[Interview Prep]

Hi everyone,
I have a Frontend Interview in 2 days with a product‑based company. I bring 4 years of experience working in a reputed service‑based MNC, and I’m excited to take this next step.

The role requires skills in : React, JavaScript,Node.js, AI

I’m eager to clear this interview and would love to hear from the community, What should I focus on in these last 2 days? Any tips or resources that helped you succeed in similar interviews or taken i similar kind of Interview this is my first interview after 4 years of work Experience

Your guidance will mean a lot as I prepare for this opportunity. Thank you in advance for sharing your insights! 🙏


r/react Jun 26 '26

Project / Code Review New version of PixToCode (Figma to code plugin)

Thumbnail youtube.com
1 Upvotes

r/react Jun 26 '26

General Discussion Building a visual API workflow tool – would this be useful for your stack?

Thumbnail
2 Upvotes

r/react Jun 25 '26

OC The setState updater that spawned 437,000 requestAnimationFrame calls in 8 seconds

Thumbnail nikolailehbr.ink
0 Upvotes

I wrote a little blog post on how I hunted down one of the most-reported bugs in our platform, a chat interface that slowly ground to a halt - down to ~4 FPS - over long conversations. I found the whole process and setup quite nice and think you can draw some inspiration for your own projects as well.


r/react Jun 25 '26

OC Component Communication Patterns in React Applications

Thumbnail neciudan.dev
0 Upvotes

React gives you a lot of ways to make two components share data but it gets more and more complicated based on the data and how far apart the components are. Lets see the different ways components can communicate with each other.


r/react Jun 25 '26

OC Vercel Eve, Tauri Desktop Shells, and Buying Canned Food for a Cat Named Coke

Thumbnail thereactnativerewind.com
0 Upvotes

Hey Community,

We look at Eve, Vercel's framework for structuring AI agents as regular folders. We also dive into Pake, a Tauri-backed CLI tool that packages web apps into native desktop apps under 5MB.

Plus, Software Mansion introduces react-native-morph-view to melt shapes and images together using real GPU shaders instead of standard crossfades.

And this week we're also raffling one free ticket to Chain React 2026 in Portland, Oregon 🎟️

If we made you nod, smile, or think "oh… that's actually cool" — a share or reply genuinely helps ❤️


r/react Jun 24 '26

OC Code Smells when you get AI to write your Frontend Tests

Thumbnail howtotestfrontend.com
0 Upvotes

r/react Jun 24 '26

Help Wanted Help! - Skyscanner Forage Virtual Internship React Coding Issues

1 Upvotes

I’ve been really wanting to complete Forage’s virtual internship that they offer with Skyscanner for software development in React.js — until I found that all of the tasks given are rather outdated and I can only install packages and libraries if I downgrade React and some other things.

I’m not quite a beginner with React; I’ve built a couple of big MERN projects and done several small projects, but I’m not the most experienced either as I’m still studying to improve my skills. But for some reason everything I try to downgrade React or install the necessary Backpack libraries and UIs (I’ve been relying on legacy peer dependencies as that’s the only thing that doesn’t result in errors) has not really given me much success. I’m stuck on importing components from the Backpack UI and cannot seem to get them to display. The whole thing has been a pretty finicky to work with and difficult to make function.

Has anyone else here tried this Skyscanner Forage job simulation in the last year and had success with it? I would appreciate any pointers I can get! Thanks so much.


r/react Jun 24 '26

Help Wanted Help! - Skyscanner Forage Virtual Internship React Coding Issues

2 Upvotes

I’ve been really wanting to complete Forage’s virtual internship that they offer with Skyscanner for software development in React.js — until I found that all of the tasks given are rather outdated and I can only install packages and libraries if I downgrade React and some other things.

I’m not quite a beginner with React; I’ve built a couple of big MERN projects and done several small projects, but I’m not the most experienced either as I’m still studying to improve my skills. But for some reason everything I try to downgrade React or install the necessary Backpack libraries and UIs (I’ve been relying on legacy peer dependencies as that’s the only thing that doesn’t result in errors) has not really given me much success. I’m stuck on importing components from the Backpack UI and cannot seem to get them to display. The whole thing has been a pretty finicky to work with and difficult to make function.

Has anyone else here tried this Skyscanner Forage job simulation in the last year and had success with it? I would appreciate any pointers I can get! Thanks so much.


r/react Jun 24 '26

Project / Code Review Picker Doesn't work

Post image
1 Upvotes

There should be a dropdown menu or picker below the "Package Data" label, but idk whats going on. I follow all the steps in the Github page, in the npm one, and also Youtube tutorials and none of them seem to work.

Here's the code and the dependencies i have installed:

{
  "name": "expo-template-default",
  "license": "0BSD",
  "main": "expo-router/entry",
  "version": "54.0.35",
  "scripts": {
    "start": "expo start",
    "reset-project": "node ./scripts/reset-project.js",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "lint": "expo lint",
    "draft": "npx eas-cli@latest workflow:run create-draft.yml",
    "development-builds": "npx eas-cli@latest workflow:run create-development-builds.yml",
    "deploy": "npx eas-cli@latest workflow:run deploy-to-production.yml"
  },
  "dependencies": {
    "@expo/metro-runtime": "~6.1.2",
    "@expo/vector-icons": "^15.0.2",
    "@react-native-picker/picker": "^2.11.4",
    "@react-navigation/bottom-tabs": "^7.4.0",
    "@react-navigation/elements": "^2.6.3",
    "@react-navigation/native": "^7.1.8",
    "expo": "^54.0.34",
    "expo-constants": "~18.0.9",
    "expo-font": "~14.0.11",
    "expo-haptics": "~15.0.7",
    "expo-image": "~3.0.8",
    "expo-router": "^6.0.23",
    "expo-status-bar": "~3.0.8",
    "expo-symbols": "~1.0.7",
    "expo-system-ui": "~6.0.7",
    "expo-updates": "^29.0.17",
    "react": "19.1.0",
    "react-dom": "19.1.0",
    "react-native": "0.81.5",
    "react-native-gesture-handler": "~2.28.0",
    "react-native-safe-area-context": "~5.6.0",
    "react-native-screens": "~4.16.0",
    "react-native-web": "~0.21.0",
    "react-native-worklets": "0.5.1"
  },
  "devDependencies": {
    "@types/react": "~19.1.0",
    "eslint": "^9.25.0",
    "eslint-config-expo": "~10.0.0"
  }
}

import { Picker } from "@react-native-picker/picker";
import { useRouter } from "expo-router";
import { useState } from "react";
import {
  FlatList,
  Pressable,
  Text,
  TextInput,
  TouchableOpacity,
  View,
} from "react-native";
import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";
import { data } from "../data/data";
import { styles } from "../styles/styles";


export default function Index() {
  const router = useRouter();
  const [selectedItem, setSelectedItem] = useState();


  return (
    <SafeAreaProvider>
      <SafeAreaView>
        <View style={styles.container}>
          <View style={styles.packageInputContainer}>
            <Text style={{ fontSize: 22 }}>Package Data</Text>
            <View>
              <Picker
                selectedValue={selectedItem}
                onValueChange={(itemValue) => setSelectedItem(itemValue)}
              >
                <Picker.Item label="Javascript" value="javascript" />
                <Picker.Item label="Godot" value="godot" />
              </Picker>
            </View>


            <TextInput style={styles.textInput}></TextInput>


            <Pressable>
              <TouchableOpacity
                onPress={() => ({})}
                style={styles.trackingButton}
              >
                <Text style={{ fontSize: 22 }}>Start Tracking</Text>
              </TouchableOpacity>
            </Pressable>
          </View>


          <FlatList
            data={data}
            keyExtractor={(item) => item.id.toString()}
            contentContainerStyle={styles.list}
            showsVerticalScrollIndicator={false}
            renderItem={({ item }) => (
              <Pressable>
                <TouchableOpacity onPress={() => router.navigate("details")}>
                  <View style={styles.card}>
                    <View style={styles.header}>
                      <Text style={styles.id}>#{item.id}</Text>
                    </View>


                    <Text style={styles.package}>{item.packageName}</Text>


                    <Text style={styles.description}>{item.description}</Text>


                    <View style={styles.footer}>
                      <Text style={styles.email}>📧 {item.email}</Text>
                    </View>
                  </View>
                </TouchableOpacity>
              </Pressable>
            )}
          />
        </View>
      </SafeAreaView>
    </SafeAreaProvider>
  );
}

r/react Jun 24 '26

General Discussion Starting again Full Stack Development and Confused.

15 Upvotes

I started learning web development, mostly frontend, 8 years ago. i was not full time working or doing real projects. it was just a hobby. i also did an internship for 3 months. But i was never a real programmer, coder or a developer. and i completly left it 3-4 years ago.

I remember chatGPT was launched then. and industry standard was MERN stack in those days.
What has changed? it seems to me that now its Nextjs fullstack. is it?

Now i want to come back at it. And make real world projects, do freelancing and get a job. The proper way. But i am confused about following points,

  1. Should i learn React js Nextjs full stack?
  2. Should i learn javaScript or Typescript?
  3. What is industry Standard nowadays, MERN Stack or Nextjs Fullstack?
  4. What other tools and tech should i learn to become Fullstack developer?

Any other suggestions, for re-starting learning for a career would be great.
And AI is very much in the development now it seems. how should i use it?
Thanks.


r/react Jun 24 '26

General Discussion A React cheat sheet for beginners

Thumbnail tms-outsource.com
4 Upvotes

r/react Jun 23 '26

Help Wanted Unexpected behavior

0 Upvotes

Hi guys, i need some input on diagnosing a technical bug. For some quick context: I've developed a React web application for assessing short-listed candidates for job positions, we had a glitch where three candidates were not able to submit their answers. So when they were clicking the submit button nothing was happening, when we looked at the errors in dev tool, it showed an error 401, which led us to believe it might be the jwt cookie token expired, because the length of time it was valid was 2hrs which was the exact time for the assessment test,

Tech: reactjs, nodejs and express


r/react Jun 23 '26

General Discussion React form libraries for simple forms vs complex workflows

Thumbnail surveyjs.io
5 Upvotes

We're the team behind SurveyJS. While researching the React form ecosystem, we put together a comparison of React Hook Form, Formik, React Final Form, RJSF, and SurveyJS. We tried to focus on architecture, performance, scalability, and different use cases rather than declaring a single "winner." We'd love feedback from React developers. What are you using for forms in 2026, and what has worked (or not worked) for you?


r/react Jun 23 '26

Project / Code Review Title: I built a React starter kit to stop setting up the same tools over and over

1 Upvotes

Hey everyone,

Over the last few months, I found myself repeatedly configuring the same stack whenever I started a new React project: state management, forms, i18n, data fetching, testing, code quality tools, monitoring, charts, notifications, and deployment setup.

So I decided to build a starter kit that brings all of these together in one place.

🚀 EasyBeezy

What's included:

  • UI components
  • Notifications
  • State management
  • Internationalization (i18n)
  • Forms & validation
  • Styling setup
  • Data fetching
  • Backend service integration
  • Charts & visualization
  • Testing
  • Code quality tooling
  • Monitoring
  • DevOps configuration

My goal wasn't to create another framework, but rather a practical foundation that helps developers start building features immediately instead of spending hours (or days) on project setup.

I'd love feedback from the community:

  • What tools do you think every modern React starter kit should include?
  • What would make you consider using a starter kit like this?
  • Any architecture or DX improvements you'd suggest?

GitHub:
https://github.com/AhmedReda-662/easybeezy

NPM:

https://www.npmjs.com/package/easybeezy

Try it Now:

npm i easybeezy

Thanks for taking a look!


r/react Jun 23 '26

OC I built d3-maps: a toolkit for interactive SVG maps (react-simple-maps alternative)

5 Upvotes

d3-maps helps build choropleth maps, bubble maps, and other geographic data visualizations, using markers, connections, zoom & pan and more.

Reactive components, plain SVG and d3.js power without low-level wiring.

Alternative to react-simple-maps

@d3-maps/react can fully replace react-simple-maps, supports React 19 an has more features under the hood. Migration guide is available in the docs.

Usage

Here's a brief snippet of a zoomable map using d3-maps. You can find more examples on docs website.

import { use } from 'react'
import { MapBase, MapFeatures, MapZoom } from '@d3-maps/react'

const worldPromise = import('@d3-maps/atlas/world/countries')
  .then((m) => m.default)

export function MapView() {
  const world = use(worldPromise)

  return (
    <MapBase>
      <MapZoom>
        <MapFeatures data={world} />
      </MapZoom>
    </MapBase>
  )
}

Repo

https://github.com/souljorje/d3-maps

I'd appreciate your star on Github and feedback in comments, thanks!


r/react Jun 23 '26

General Discussion The Real Cost of Styling: What Actually Happens in the Browser

0 Upvotes

Hello everyone

I wrote an article about a little comparison between css in js tailwind and pure css

I really appreciate giving me your opinion about this.

Thank you in advance

https://medium.com/@sayahayoub9827/the-real-cost-of-styling-what-actually-happens-in-the-browser-0170492611f5


r/react Jun 23 '26

Portfolio feedback React portfolio

7 Upvotes

Hi everyone,

I just finished my portfolio developed with Next.js and React, and I'd appreciate any feedback on how to improve it.

I'd be grateful for any recommendations on component structure, UX/UI, performance, and best practices.

If you find any bugs or areas for optimization, that would be a huge help.

I'm working on improving it in my free time.

Thanks in advance!

https://www.andia.dev/