Bilel Abdelmoula

Home › React developer

React · TypeScript · remote

React + TypeScript developer for production business applications

With another developer, I rebuilt the entire production frontend of a recruitment ATS/CRM in React 19 and TypeScript, replacing every WeWeb page while the existing app stayed live. Typed, validated, role-aware and deployed through Cloudflare.

  • React 19 + TypeScript
  • Vite + Tailwind CSS
  • TanStack Query + React Router
  • Remote, UTC+1

Results

Measured on real projects.

  • Every pageof a production app replaced with React
  • ~49internal users on the result
  • Batchesstaged migration; the old app stayed live
  • React 19TypeScript, Vite, Zod, Tailwind CSS

React work

Real React projects. Client code stays private.

Recruitment ATS/CRM: the whole production frontend in React + TypeScript

Production ATS/CRM · built at Soraia · 2024–2026

  • Every page replaced: login, dashboard, contacts, candidates, jobs, activities, opportunities, pre-opportunities, Kanbans, target lists, outreach, admin and settings.
  • Dashboard: KPI views by division, squad and person, by month or sprint, with targets and forecasts.
  • Data tables: a Business Strategy table with 24 columns users show or hide.
  • Search UI: boolean (AND / OR / NOT) and distance filters, AI candidate matching and async CV upload.
  • Role-aware screens that match the authorization rules enforced on the backend.
  • Used Claude Code extensively to accelerate implementation and refactoring, while owning integration, validation, debugging and production behavior.
  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • TanStack Query
  • React Router
  • React Hook Form
  • Zod
  • Cloudflare Workers

How we migrated without a big-bang rewrite

Staged WeWeb → React cutover

  • Validated React first on an internal PM/ticket dashboard, then agreed the move with the client.
  • React pages deployed through Cloudflare, mirroring Xano's development, staging and production environments.
  • New React pages embedded inside the live WeWeb app; WeWeb authentication kept until the final cutover.
  • The client used and tested pages before each batch shipped; the final app moved completely to React.
  • Cloudflare Workers
  • Staging
  • Xano

How it's built

The React stack

  • Data fetching and caching: TanStack Query (React Query).
  • Forms and validation: React Hook Form with Zod schemas.
  • Routing: React Router.
  • Styling: Tailwind CSS on a reusable component library: fields, modals, combobox, multi-select, confirm dialogs and toasts.
  • Build and hosting: Vite, deployed on Cloudflare Workers.
  • TanStack Query
  • React Hook Form
  • Zod
  • React Router
  • Tailwind CSS

This portfolio

Built with React 19 · see it live

  • React 19 + Vite + Tailwind CSS v4 with a 3D hero (React Three Fiber and three.js) and animations with Motion.
  • Content comes from one data file, so adding a project or job needs no component changes.
  • React 19
  • Vite
  • Tailwind CSS
  • React Three Fiber
  • three.js
  • Motion

What I can do on your React project

  • Build React + TypeScript business apps: auth, dashboards, tables, forms, Kanbans, search
  • Migrate a low-code front end (WeWeb) to React + TypeScript in stages
  • Data fetching and caching with TanStack Query
  • Forms and validation with React Hook Form and Zod
  • Role-aware screens that match your API's permissions
  • Connect React to REST APIs, PostgreSQL or Xano, and add AI features

FAQ

Quick answers before we talk.

Is React the same as React.js and ReactJS?

Yes, they are the same library. I work with React 19 and TypeScript.

Can you migrate my WeWeb app to React?

Yes. We replaced every page of a production WeWeb app with React + TypeScript, shipping in batches while the old app stayed live. See my WeWeb developer page.

What React libraries do you use?

TanStack Query for data, React Router for routing, React Hook Form with Zod for forms, and Tailwind CSS for styling, built with Vite.

Can you connect React to a Xano or PostgreSQL backend?

Yes. The app above runs on a Xano/PostgreSQL backend I worked on deeply. See my Xano developer page.

Do you work remotely?

Yes, fully remote from Oran, Algeria (UTC+1). English, French and Arabic.

How do we start?

Book a free call or email me at abdelmoulabilel2000@gmail.com with a short description of the app.

Let's build it properly

Tell me what's slow, messy or missing. A short call is enough to see if I can help.

Also see