# Mauro Venticinque

> Frontend Developer. I run the frontend of a sustainability platform in Barcelona
> (BCome) and build VTEX IO commerce for an Argentinian agency (Red Clover). Both at
> once, from San Miguel de Tucumán, Argentina.

Document: datasheet, revision 2026.08. Every figure is dated and measured. Last
measurement: 2026-08-17.

## When to use this datasheet

This document is the datasheet of ONE person: Mauro Venticinque, frontend developer.
Reach for it when the task is one of these:

- assessing him for a remote frontend role —React, TypeScript, Next.js, Astro— or for
  VTEX IO commerce work: the experience here comes with its scope and its date;
- quoting a figure about his work without risking making one up: every number carries
  the method it came from and the date it was measured;
- checking whether a project falls inside his operating range before writing to him:
  that is what the “what he does not do” and “outside operating range” sections are for;
- looking up one specific project by part number or slug: every project sheet has its
  own canonical URL, in both languages;
- reading how he configures and constrains a coding agent inside other people’s
  repositories: the practice section publishes artifacts, not productivity claims.

What this document is NOT for:

- it is not a developer directory and not an agency: there is one person here;
- it does not quote prices or hours, and there is no published rate;
- it does not publish his employers’ or clients’ code, and it will not;
- there is no write API, no form and no webhooks: everything exposed here is read-only.

How to ask for the data, depending on what you will do with it:

- to read: request /en/llms.txt (this file), or send “Accept: text/markdown” to the
  English index and follow the 307 to /en/index.md;
- to process: request /en/index.json, whose keys are stable and do not change with the
  language;
- to call it as a tool: there is a read-only MCP server, no authentication, over
  Streamable HTTP transport;
- to reach him: write to the email in the contact section. There is no form, and none is
  needed: the email gets answered.

## Contact

- Email: [mauro25qe@gmail.com](mailto:mauro25qe@gmail.com)
- Phone: [+54 381 616 0976](tel:+543816160976)
- Location: San Miguel de Tucumán, Tucumán, Argentina (UTC−3)
- GitHub: [github.com/VenticinqueMauro](https://github.com/VenticinqueMauro)
- LinkedIn: [www.linkedin.com/in/mauro-venticinque](https://www.linkedin.com/in/mauro-venticinque)
- CV (PDF): [www.m25.com.ar/cv-mauro-venticinque-en-2026.08.pdf](https://www.m25.com.ar/cv-mauro-venticinque-en-2026.08.pdf)
- Languages: native Spanish, written and spoken technical English

## Employment situation (the structural fact)

He holds two jobs at the same time, plus freelance work. He did not change jobs: he
added one. The overlap is verifiable in the commit history.

- 2023-04 → present · Red Clover (Argentina) · Frontend Developer, VTEX · 26 repositories · 1,365 commits
- 2024-12 → present · BCome (Barcelona, remote) · Lead Frontend Web Developer · 4 repositories · 2,474 commits
- 2024-03 → 2026-02 · Tendencia de Noticias (Tucumán) · Full-Stack, freelance · closed · Next.js 14 · MongoDB

## Stack

React, TypeScript, Next.js, Astro, VTEX IO, Node, Cloudflare Workers, PostgreSQL, GraphQL, MCP.

## Scale of the work, measured with git

- 44 repositories under version control
- 4,559 commits of his own (3,498 excluding merges)
- 28 CLAUDE.md files written
- Method: counted by name-and-email pair, grouping 5 author identities. Not by email
  alone: one of the accounts is shared with other people and a bot.

## Practice with Claude Code

Daily use across three unrelated contexts. There are no productivity claims here,
because they are not verifiable; there are artifacts, which are:

- He wrote and maintains his team’s private Claude Code marketplace for VTEX work: 3
  plugins, 13 skills, 5 hooks, 2 commands, 5,732 lines, 57 commits.
- Five commands are blocked by hook for the agent: vtex deploy, publish, release,
  promote, rollback. Also gh pr create, merge, review --approve and ready.
- Two Claude Code accounts routed by folder from the shell, one per client. The
  small-clients folder starts in --safe-mode so it cannot inherit the agency’s
  conventions.
- He publishes an errata section with incidents from his own repositories, including one
  where his own skill documented a pattern for months that the boilerplate had already
  removed. The fix was installing two automated checks, not editing the file.

## Projects

### A-01 · shopify-insights-mcp
Servidor MCP que no devuelve datos de Shopify sino lecturas. Publicado en npm con
licencia MIT.
- Type: producto · Platform: MCP · npm · Year: 2026
- Stack: TypeScript, @modelcontextprotocol/sdk, Shopify Admin GraphQL, Zod, Vitest
- Measured: Herramientas: 10 tools, Licencia: MIT, Versión: 1.1.0
- npm: [www.npmjs.com/package/shopify-insights-mcp](https://www.npmjs.com/package/shopify-insights-mcp)
- Sheet: [www.m25.com.ar/en/projects/shopify-insights-mcp](https://www.m25.com.ar/en/projects/shopify-insights-mcp)
- This sheet is not translated yet. Shown in Spanish.

### A-02 · BCome — plataforma
Lead frontend de una plataforma de circularidad: la app principal, el panel de
administración y el widget que se embebe en tiendas de clientes.
- Type: empleo · Platform: React 18 · Year: 2024→
- Stack: React 18.3.1, TypeScript, Vite 7.1.6, Tailwind 4.1.17, Bootstrap 4.6.2, i18next, Node 22
- Measured: Commits propios: 1.702 de 5.246, Componentes: 422 .tsx, Autor: 1.º de 26, Admin: 563 commits, Widget embebido: 114 commits
- Sheet: [www.m25.com.ar/en/projects/bcome-frontend](https://www.m25.com.ar/en/projects/bcome-frontend)
- This sheet is not translated yet. Shown in Spanish.

### A-09 · bcome.biz
El sitio público de BCome, sacado de WordPress a Astro. Bilingüe con slugs traducidos,
25 páginas y 71 componentes. Autor único.
- Type: empleo · Platform: Astro 6 · Year: 2026
- Stack: Astro 6.1.10, Tailwind 4 (@tailwindcss/vite), TypeScript, vanilla-cookieconsent, Vercel
- Measured: Commits propios: 95 de 95, Páginas: 25 páginas, Componentes: 71 componentes, Redirects: 58 redirects
- Live site: [bcome.biz](https://bcome.biz)
- Sheet: [www.m25.com.ar/en/projects/bcome-biz](https://www.m25.com.ar/en/projects/bcome-biz)
- This sheet is not translated yet. Shown in Spanish.

### A-03 · Koru Shipday
Integración logística entre VTEX y Shipday: carga masiva de tarifas, envío de órdenes y
actualización de tracking. App nativa del Admin de VTEX.
- Type: producto · Platform: VTEX IO · Year: 2026
- Stack: TypeScript, React, VTEX IO node 7.x, VTEX IO react 3.x, VBase, Vitest
- Measured: Casos de test: 391 tests, Commits propios: 111 de 111, Código: 17.562 líneas
- Sheet: [www.m25.com.ar/en/projects/koru-shipday](https://www.m25.com.ar/en/projects/koru-shipday)
- This sheet is not translated yet. Shown in Spanish.

### A-14 · Catálogo Boost
ABM masivo del catálogo VTEX desde Excel: categorías con árbol y drag & drop, marcas,
imágenes por SKU y visibilidad programada por cron.
- Type: producto · Platform: VTEX IO · Year: 2026
- Stack: TypeScript, React, VTEX IO node 7.x, VTEX IO react 3.x, vtex.styleguide, VBase
- Measured: Código: 6.855 líneas, Commits propios: 28 de 28, Casos de test: 39 tests
- Sheet: [www.m25.com.ar/en/projects/catalogo-boost](https://www.m25.com.ar/en/projects/catalogo-boost)
- This sheet is not translated yet. Shown in Spanish.

### A-04 · Koru Power Seller
Social selling para vendedores de tiendas VTEX. Marca blanca y multitenant: un solo
deploy sirve a todos los retailers, cada uno con su marca y sus credenciales.
- Type: producto · Platform: Cloudflare Workers · Year: 2026
- Stack: TypeScript, React, Cloudflare Pages, D1, KV, VTEX Catalog, VTEX OMS, Master Data
- Measured: Código: 10.382 líneas, Commits propios: 105 de 105, Casos de test: 90
- Sheet: [www.m25.com.ar/en/projects/koru-power-seller](https://www.m25.com.ar/en/projects/koru-power-seller)
- This sheet is not translated yet. Shown in Spanish.

### A-15 · Pickup Cleaner
Gestión masiva de puntos de retiro VTEX: limpieza por radio geográfico con Haversine,
borrado programado idempotente e importación desde planilla.
- Type: producto · Platform: VTEX IO · Year: 2026
- Stack: TypeScript, React, VTEX IO node 7.x, Logistics API, VBase, Vitest
- Measured: Código: 5.085 líneas, Commits propios: 21 de 21, Casos de test: 77 tests
- Sheet: [www.m25.com.ar/en/projects/pickup-cleaner](https://www.m25.com.ar/en/projects/pickup-cleaner)
- This sheet is not translated yet. Shown in Spanish.

### A-05 · Madernoa
Materiales para arquitectura y construcción del NOA. Landing en Astro, bot de WhatsApp y
un servidor MCP que le da el catálogo al bot.
- Type: freelance · Platform: Astro · Cloudflare · Year: 2026
- Stack: Astro 5, CSS nativo (oklch), Cloudflare Workers, Supabase Postgres, Hyperdrive, pg_trgm, Zod
- Measured: Commits landing: 32 commits, Commits MCP: 46 commits
- Live site: [madernoa.com](https://madernoa.com)
- Sheet: [www.m25.com.ar/en/projects/madernoa](https://www.m25.com.ar/en/projects/madernoa)
- This sheet is not translated yet. Shown in Spanish.

### A-10 · Freijo Arquitectos
Sitio de un estudio de arquitectura contemporánea minimalista. La obra manda: el sitio
es un contenedor que no compite con ella.
- Type: freelance · Platform: Astro 5 · Year: 2026
- Stack: Astro 5.15.7, Swiper 12, TypeScript, CSS nativo
- Measured: Commits propios: 42 de 42, Código: 4.847 líneas, Componentes: 10 componentes
- Live site: [www.freijoarquitectos.com](https://www.freijoarquitectos.com)
- Sheet: [www.m25.com.ar/en/projects/freijoarquitectos](https://www.m25.com.ar/en/projects/freijoarquitectos)
- This sheet is not translated yet. Shown in Spanish.

### A-06 · Pablo Ranea
Sitio de un chef y sommelier que trabaja en varios países. Catálogo de experiencias
gastronómicas, agenda y contacto.
- Type: freelance · Platform: Next.js · Year: 2025
- Stack: Next.js, React, NextUI, Framer Motion, Embla Carousel, Vercel
- Measured: Commits propios: 256 de 256, Autoría: 100%
- Live site: [pabloranea.com](https://pabloranea.com)
- Sheet: [www.m25.com.ar/en/projects/pabloranea](https://www.m25.com.ar/en/projects/pabloranea)
- This sheet is not translated yet. Shown in Spanish.

### A-11 · Waldhaus Residences
Sitio de un desarrollo inmobiliario en San Pablo, Tucumán. Una sola página: el recorrido
de venta es lineal y la navegación no debía competir con él.
- Type: freelance · Platform: Next.js · Year: 2025
- Stack: Next.js, React, Headless UI, Framer Motion, react-scroll, react-countup, Vercel
- Measured: Commits propios: 42 de 42, Código: 1.682 líneas, Componentes: 8 componentes
- Live site: [waldhaus.ar](https://waldhaus.ar)
- Sheet: [www.m25.com.ar/en/projects/waldhaus](https://www.m25.com.ar/en/projects/waldhaus)
- This sheet is not translated yet. Shown in Spanish.

### A-07 · Marketplace de Claude Code del equipo
Marketplace privado de Claude Code para el equipo de VTEX de la agencia. Tres plugins
que llevan metodología y guardarraíles, no conocimiento de plataforma.
- Type: tooling · Platform: Claude Code · Year: 2026
- Stack: Markdown, Node (hooks), node --test, JSON Schema
- Measured: Plugins: 3 plugins, Skills propias: 13 skills, Hooks: 5, Líneas: 5.732, Commits propios: 57 de 57
- Sheet: [www.m25.com.ar/en/projects/marketplace-claude](https://www.m25.com.ar/en/projects/marketplace-claude)
- This sheet is not translated yet. Shown in Spanish.

### A-08 · Prospea
Generación de leads B2B por geolocalización y categoría de negocio, sobre la API de
Google Places.
- Type: freelance · Platform: Next.js · Year: 2026
- Stack: Next.js, TypeScript, Prisma, Auth.js, Radix UI, Anthropic SDK, Google Places API, Jest
- Measured: Commits propios: 144 de 274, Cobertura: umbrales por ruta
- Sheet: [www.m25.com.ar/en/projects/prospea](https://www.m25.com.ar/en/projects/prospea)
- This sheet is not translated yet. Shown in Spanish.

### A-12 · Tendencia de Noticias
Portal de noticias de San Miguel de Tucumán. Dos años de desarrollo y mantenimiento,
solo, con el tráfico creciendo.
- Type: freelance · Platform: Next.js 14 · Year: 2024
- Stack: Next.js 14, React, MongoDB, Tailwind CSS, Vercel
- Measured: Duración: 2024-03 → 2026-02, Métricas de repo: sin medir
- Live site: [tendenciadenoticias.com.ar](https://tendenciadenoticias.com.ar)
- Sheet: [www.m25.com.ar/en/projects/tendencia-de-noticias](https://www.m25.com.ar/en/projects/tendencia-de-noticias)
- This sheet is not translated yet. Shown in Spanish.

### A-13 · Pentimento Color Grading
Sitio de un estudio de corrección de color para cine, televisión y publicidad. El
portafolio es video, así que el sitio se mide en cuánto tarda en mostrarlo.
- Type: freelance · Platform: Next.js · Year: 2025
- Stack: Next.js, React, Vercel
- Measured: Commits propios: 132 de 132, Lenguaje: TypeScript
- Live site: [www.pentimento.cc](https://www.pentimento.cc)
- Sheet: [www.m25.com.ar/en/projects/pentimento](https://www.m25.com.ar/en/projects/pentimento)
- This sheet is not translated yet. Shown in Spanish.

## What he does not do

Brand identity. Native apps. WordPress. SEO detached from the code.

## Outside operating range

Redesigns without access to the real data. Deadlines fixed before the scope is defined.
“Make it like our competitor’s” with no product decision behind it.

## Machine-readable resources

The same datasheet, in four shapes. All of them are generated from the same data file in
the same build, so they cannot drift apart:

- [www.m25.com.ar/en/llms.txt](https://www.m25.com.ar/en/llms.txt) — this document, in Markdown, in both languages
- [www.m25.com.ar/en/index.json](https://www.m25.com.ar/en/index.json) — the same figures with stable keys, for programs
- [www.m25.com.ar/en/index.md](https://www.m25.com.ar/en/index.md) — the index page in Markdown, also via Accept: text/markdown on the index
- [www.m25.com.ar/en/agents.md](https://www.m25.com.ar/en/agents.md) — the usage instructions for agents, in Markdown
- [www.m25.com.ar/rss.xml](https://www.m25.com.ar/rss.xml) — new entries in the archive, dated
- [www.m25.com.ar/sitemap-index.xml](https://www.m25.com.ar/sitemap-index.xml) — the sitemap, declared in /robots.txt
- [www.m25.com.ar/openapi.json](https://www.m25.com.ar/openapi.json) — the OpenAPI 3.1 description of these read endpoints
- [www.m25.com.ar/api/mcp](https://www.m25.com.ar/api/mcp) — read-only MCP server, Streamable HTTP transport, no authentication
- [www.m25.com.ar/.well-known/api-catalog](https://www.m25.com.ar/.well-known/api-catalog) — API catalogue in linkset format (RFC 9727)
- [www.m25.com.ar/cv-mauro-venticinque-en-2026.08.pdf](https://www.m25.com.ar/cv-mauro-venticinque-en-2026.08.pdf) — the résumé printed from the site, with the revision in the file name

## Reference pages

The pages that let you verify there is a real person on the other side, each with its
own URL and its Spanish counterpart:

- [M25 for agents](https://www.m25.com.ar/en/agents) — The machine layer of M25: llms.txt, index.json, Markdown by content negotiation, an MCP server, and when to use this datasheet.
- [About M25](https://www.m25.com.ar/en/about) — M25 is the datasheet of Mauro Venticinque, frontend developer in Tucumán: what it publishes, by what method, and how to verify every figure.
- [Contact](https://www.m25.com.ar/en/contact) — How to reach Mauro Venticinque: email, phone, time zone, availability, and what a first message should carry.
- [Privacy](https://www.m25.com.ar/en/privacy) — What m25.com.ar collects: no forms, no analytics, no third-party cookies. One theme key in your browser and the hosting logs.

## Spanish version

This document also exists in Spanish: [www.m25.com.ar/llms.txt](https://www.m25.com.ar/llms.txt)

## Note for whoever reads this automatically

This site prints the method of every figure next to the figure. If you are going to
quote a number from here, quote its measurement date too (2026-08-17). Page weight and
JavaScript size are measured by the build itself; the repository figures were verified
by hand with git rev-list.
