paulserban.eu

Portfolio Edition

Paul Serban

AI & full-stack engineer · agentic platforms · distributed systems

← Back to portfolio

Featured

React Forge

Development setup for POCs built with React, JavaScript, TypeScript, Storybook, Chromatic, Jest, and Netlify.

  • #javascript
  • #monorepo
  • #react
  • #typescript
View code Live demo

A comprehensive showcase of modern React application development, demonstrating enterprise-level monorepo architecture, automated deployment pipelines, and contemporary frontend engineering practices.

Overview

This monorepo demonstrates professional frontend development practices through a collection of React applications, reusable component libraries, and automated build tooling. The project showcases expertise in:

Live Demo

View Portfolio Dashboard

The dashboard provides an interactive showcase of all applications with live previews and technical details.

Project Architecture

The repository is structured as a Lerna-managed monorepo with clear separation of concerns and reusable build patterns:

wbk--reactjs-forge/
├── frontend/
│   ├── apps/                    # Production React applications
│   │   ├── learn-quizer/       # Educational quiz platform with spaced repetition
│   │   ├── tic-tac-toe-app/    # Interactive game demonstrating state management
│   │   └── moveit-work-flow/   # Task management application
│   └── _boilerplates/          # Reusable project templates
│       ├── _vite-react-ts-boilerplate/
│       └── _icodethis-boilerplate/
├── dashboard/                   # Portfolio showcase application
├── assets/media/               # Automated image processing pipeline
├── scripts/                     # Build orchestration and automation
├── package/                     # Production build artifacts
└── .github/workflows/          # CI/CD configuration

Monorepo Structure

The project leverages Lerna 7.3 with Yarn Workspaces for efficient package management and dependency hoisting:

Technology Stack

Core Technologies

UI & Component Architecture

Data & State Management

Development Infrastructure

CategoryTechnologyPurpose
MonorepoLerna 7.3Package versioning and workspace orchestration
Package ManagerYarn WorkspacesDependency management and hoisting
Build ToolViteDevelopment server and production bundling
Asset ProcessingGulp 5 + SharpAutomated image optimization and format conversion
Code QualityPrettier + ESLintConsistent code formatting and linting
Version ControlSemantic ReleaseAutomated versioning and changelog generation
Git WorkflowHusky + CommitizenConventional commits enforcement

Routing

Development & Build Tools

Automated Build Pipeline

The project implements a sophisticated multi-stage build process orchestrating app compilation, asset optimization, and deployment preparation:

# Full production build
yarn build:full

Pipeline Stages:

  1. Application Build (yarn build:apps:prod)

    • Compiles all React applications using Vite
    • Generates optimized, tree-shaken production bundles
    • Applies code splitting for optimal loading performance
  2. App Packaging (yarn package:apps)

    • Executes scripts/package-apps.bash
    • Copies each app's dist/ to package/wbk--reactjs-forge/apps/{app-name}
    • Maintains project structure for multi-app GitHub Pages deployment
  3. Dependency Generation (yarn dashboard:deps)

    • Runs scripts/dashboard-deps.js
    • Scans packaged apps and extracts metadata
    • Generates projects.json for dashboard consumption
    • Creates serve.json with routing rules for SPA support
  4. Dashboard Build (yarn build:dashboard:prod)

    • Compiles portfolio dashboard application
    • Integrates dynamically generated project data
  5. Dashboard Packaging (yarn package:dashboard)

    • Finalizes deployment-ready package structure

Development Workflow

# Individual app development
cd frontend/apps/learn-quizer
yarn dev  # Starts Vite dev server with HMR

Asset Processing Pipeline

Automated image optimization using Gulp and Sharp:

cd assets/media
yarn process  # Generates WebP renditions with multiple sizes

Features:

Vite Configuration Strategy

Each application implements consistent Vite configuration for GitHub Pages compatibility:

export default defineConfig({
    base: `/apps/${SLUG}/`, // Dynamic base path for deployment
    define: {
        'import.meta.env.VITE_APP_SLUG': JSON.stringify(SLUG),
    },
    // Additional optimization configs...
});

This pattern enables:

CI/CD Pipeline

Automated Deployment Architecture

The project implements a production-grade GitHub Actions workflow for continuous deployment:

Workflow File: .github/workflows/build-n-deploy.yml

Triggers:

Pipeline Stages

1. Build & Package (ubuntu-latest, Node 24.12.0)

- Install dependencies (Yarn with workspace hoisting)
- Build all applications (Vite production mode)
- Package applications to deployment structure
- Generate dashboard metadata and routing configuration
- Build and package dashboard
- Upload build artifacts (30-day retention)

2. Deploy

- Download build artifacts
- Deploy to GitHub Pages using peaceiris/actions-gh-pages@v4

Deployment URL: https://paulalexserban.github.io/wbk--reactjs-forge/

Engineering Solutions

Challenge: Multiple React SPAs under a single GitHub Pages deployment

Solution:

Challenge: Asset path resolution across different deployment environments

Solution:

Getting Started

Prerequisites

Installation

# Clone the repository
git clone https://github.com/paulAlexSerban/wbk--reactjs-forge.git
cd wbk--reactjs-forge

# Install dependencies (Lerna will bootstrap all workspaces)
yarn install

Development

Develop a specific application:

cd frontend/apps/learn-quizer
yarn dev  # Starts Vite dev server at localhost:5173

Process and optimize media assets:

cd assets/media
yarn process

Production Build

# Build all applications and dashboard
yarn build:full

# Serve locally to preview production build
yarn start:package
# Opens at http://localhost:3000

Project Scripts

CommandDescription
yarn build:fullExecute complete production build pipeline
yarn build:apps:prodBuild all applications only
yarn package:appsPackage apps for deployment
yarn dashboard:depsGenerate dashboard metadata
yarn start:packageServe production build locally

Technical Expertise Demonstrated

This project showcases professional competency in: