I build production web systems end to end, from the data layer up.

Jorge Álvarez, full-stack developer in Barcelona, Spain. Mostly TypeScript monorepos (e-commerce, CMS-driven sites and real-time apps), assembled as layered systems and shipped to real users.

01

Commissioned

Paid client work: platforms and sites shipped for real businesses. Most live in private repositories, so each entry breaks the project down into its real layers.

C·01 / 04Live

Cartobol

A B2B storefront and back office for machinery spare parts.

Sector
Industrial supply
Year
2026
Role
Full-stack developer, sole build

The backend is a strict four-layer stack (routers → validators → controllers → services), cleanly separated by responsibility and by access level, so the shape of the codebase mirrors the shape of the system.

  1. Presentation
    • React 18
    • Vite (SWC)
    • React Router 7
    • MUI v7
    • TanStack Query
    • React Hook Form
    • i18next
  2. Logic
    • Express 5 (ESM)
    • JWT auth
    • Stripe
    • Server-side validation
    • Layered routers → controllers → services
  3. Data
    • Prisma
    • PostgreSQL
  4. Infrastructure
    • Turborepo + pnpm
    • Docker Compose
    • Cloudinary
    • Transactional email
  • ES · EN · FRLocales
  • 2Workspaces
  • storefront · adminAreas
C·02 / 04In development

Señorío de Líbano

A winery, its shop and its CMS: three apps in one monorepo.

Sector
Wine & spirits
Year
2026
Role
Full-stack developer, sole build

Three deployable apps (landing, shop and Sanity Studio) share a single @repo/ui package that ships raw .tsx and is compiled by each app through transpilePackages, so the design tokens in theme.css are the one source of truth.

  1. Presentation
    • Next.js 16 (App Router)
    • React 19
    • Tailwind CSS 4
    • next-intl (ES/EN)
    • @repo/ui design tokens
  2. Logic
    • React Server Components
    • Route handlers
    • Stripe Payment Element
  3. Data
    • Sanity (headless CMS)
    • Neon Postgres
    • Drizzle ORM
  4. Infrastructure
    • Turborepo + pnpm
    • Vercel
    • Playwright E2E
  • 3Apps
  • 5Shared packages
  • ES · ENLocales
C·03 / 04Live

RAUXA

An editorial, bilingual site for a Barcelona experiences company.

Sector
Food & culture
Year
2026
Role
Full-stack developer, sole build

A full OKLCH design-token system (electric blue holding steady across light and dark, pearl and black swapping roles), aliased through shadcn's semantic slots so the theme is one coherent language, not scattered hex values.

RAUXA experience photography
RAUXA
  1. Presentation
    • Next.js 16
    • React 19
    • Tailwind CSS 4
    • Radix UI (shadcn)
    • next-intl
    • next-themes
  2. Logic
    • Route handlers
    • react-hook-form + Zod
    • Spam-protected contact flow
  3. Data
    • Upstash Redis (rate limiting)
  4. Infrastructure
    • Vercel
    • Vercel Analytics & Speed Insights
  • CA · ESLocales
  • rauxa.catLive at
C·04 / 04Live

Nano1Health

A corporate site built twice: Express first, then rebuilt in Astro.

Sector
Biotech
Year
2025
Role
Full-stack developer, sole build

Shipped once as a server-rendered Express + EJS app, then rebuilt in Astro, trading a running Node server for static HTML at the edge, and a much faster site for the same content.

Genome-sequencing imagery from Nano1Health
Nano1Health
  1. Presentation
    • Astro
    • SCSS
    • Swiper
    • AOS
  2. Logic
    • TypeScript
    • v1: Node.js + Express SSR
    • EJS templates
    • Nodemailer contact
  3. Data
    • Build-time static content
    • Bilingual routing (ES/EN)
  4. Infrastructure
    • Cloudflare Pages
    • Sitemap + SEO tuning
    • v1: SCSS + Gulp, Cypress E2E
  • 2Versions
  • ES · ENLocales
  • nano1health.comLive at
02

Studies

Self-directed builds and experiments: where ideas get tested before they earn a place in client work, and where the foundations were laid.

S·01 / 04Live

DivvyUp

Real-time shared-expense splitting, typed end to end.

Sector
Personal finance
Year
2025
Role
Full-stack developer, sole build & maintenance

Every monetary value is computed with decimal.js and never a native float: the one rule you cannot break in an app whose entire job is telling people how much they owe.

DivvyUp group balances and expense list
DivvyUp
  1. Presentation
    • React 18
    • Vite
    • React Router 7
    • MUI
    • TanStack Query v5
    • CSS Modules
  2. Logic
    • Node.js + Express
    • TypeScript
    • Socket.io
    • Better Auth (cookie sessions)
    • decimal.js money math
    • Shared typed API contract
  3. Data
    • MongoDB
    • Mongoose (InferSchemaType)
  4. Infrastructure
    • Turborepo + pnpm
    • Docker
    • GitHub Actions → ghcr.io → Coolify
    • Cloudflare Pages
    • MongoDB Atlas
  • 3Workspaces
  • decimal.jsMoney type
  • divvyup.jorgeaf.devLive at
S·02 / 04Research

Cognitive Memory Engine

A memory layer for AI that reasons instead of retrieving.

Sector
AI infrastructure
Year
2025
Role
Solo research project

It derives beliefs that appear nowhere in the input ("fullstack_developer" is concluded from a chain of leaf beliefs, not stated), and each conclusion keeps a causal trail back to the rule and parents that produced it.

  1. Logic
    • FastAPI
    • Forward-chaining engine (fixpoint iteration)
    • 13 declarative rules · 6 categories
    • Noisy-OR + Yager's rule
    • Trend / volatility analysis
  2. Data
    • Async SQLAlchemy
    • PostgreSQL
    • Belief graph: 5 typed edge relations
    • Derivation log with full provenance
  3. Infrastructure
    • Python
    • Pydantic v2
  • 13Inference rules
  • 5Edge relations
  • 4Max passes
03

Approach

One of the studies above is a reasoning engine that turns raw observations into higher-order conclusions and keeps the trail between them. Turned on itself, the work derives a handful of traits, each one verifiable in the projects themselves.

  1. Observation · 01

    Cartobol, Señorío de Líbano and DivvyUp are all Turborepo + pnpm monorepos of separately deployable apps sharing typed packages.

    Trait

    Builds systems, not pages: composed apps over one monolith.

  2. Observation · 02

    Every backend separates routers, controllers and services, and mirrors them by role; the data layer is split by the job each store does best.

    Trait

    Layered architecture is a default, not an afterthought.

  3. Observation · 03

    RAUXA ships CA/ES, Señorío and Nano1Health ship ES/EN, Cartobol ES/EN/FR: internationalisation is wired in from the first commit.

    Trait

    Bilingual and trilingual by design: i18n is load-bearing.

  4. Observation · 04

    It started with hand-rolled PHP MVC in 2023, moved through a 2024 full-stack bootcamp, and is now production TypeScript monorepos.

    Trait

    Learns downward: understands the layer beneath the one being used.

04

Stack

The tools I work with, organised into the same four layers as the projects.

  1. Presentation
    • Next.js
    • React
    • Astro
    • Tailwind CSS
    • Radix / MUI
    • Sass
    • Vite
  2. Logic
    • Node.js
    • TypeScript
    • Express
    • REST APIs
    • JWT / Better Auth
    • Zod
    • Socket.io
    • Stripe
    • PHP
  3. Data
    • PostgreSQL
    • MongoDB
    • Prisma
    • Drizzle ORM
    • Sanity
    • MySQL
    • Redis
  4. Infrastructure
    • Turborepo
    • pnpm
    • Docker
    • Vercel
    • Cloudflare
    • GitHub Actions
    • Playwright

05 · Contact

Building something with real users behind it?

I'm open to full-stack work, especially products people actually depend on. The fastest way to reach me is email.

Set in
Fraunces & IBM Plex Mono
Built with
Astro · static-first · pnpm
Concept
A system seen in layers
Location
41.39° N · 2.17° E

© 2026 Jorge Álvarez · JorgeAFdev. No trackers beyond hosting analytics.