AllianceOne is a monorepo-based web platform for an industrial engineering and services company operating in the oil, gas, marine, and subsea sectors.
The project is designed to mirror the visual and structural aesthetic of the AllianceOne corporate brochure, while providing a modern, scalable web architecture for future expansion.
- Present AllianceOne’s services, capabilities, and contact information
- Match the brochure’s industrial, high-contrast aesthetic
- Maintain clean separation between frontend, backend, and shared code
- Provide a scalable foundation for future features (catalog, admin, portal)
- Next.js (App Router)
- React
- Tailwind CSS v4 (CSS-first, brochure-aligned design)
- TypeScript
- NestJS
- TypeScript
- REST API
- pnpm workspaces
- Node.js >= 18
- Optional Docker (for future database use)
allianceone-monorepo/
├─ apps/
│ ├─ web/ # Next.js frontend
│ └─ api/ # NestJS backend
├─ packages/
│ └─ shared/ # Shared types & schemas
├─ infra/ # Infrastructure (optional / future)
├─ pnpm-workspace.yaml
├─ package.json
└─ README.md
The frontend design is intentionally minimal and industrial, derived directly from the AllianceOne brochure:
- High contrast (white background + orange accents)
- Strong, uppercase headings
- Left-aligned layouts
- No rounded cards or decorative UI
- Orange used only for emphasis and structure
Design tokens are defined using Tailwind v4 @theme variables in:
apps/web/src/styles/globals.css
- Node.js >= 18
- pnpm >= 9
Install pnpm if needed:
npm install -g pnpmFrom the repo root:
pnpm installpnpm devThis starts:
- Web: http://localhost:3000
- API: http://localhost:4000
pnpm --dir apps/web dev
pnpm --dir apps/api devThis project uses Tailwind CSS v4 in CSS-first mode.
- Design tokens defined via
@theme - PostCSS plugin:
@tailwindcss/postcss - No JS config required unless extending defaults
pnpm dev
pnpm build
pnpm lint
pnpm typecheck- Brochure PDF is hosted in
apps/web/public/brochures/ - Site layout mirrors brochure sections
- Typography and spacing match presentation slides
- Service detail pages
- Parts / catalog browsing
- Contact form API integration
- Admin or customer portal
- CMS-driven content
- Authentication & database integration
- Frontend handles presentation only
- Backend owns validation and logic
- Shared code lives in
packages/shared - Design decisions are centralized
- Brochure aesthetic drives UI decisions
Internal project for AllianceOne. All rights reserved.