GEdims
Company: Agencia Digital de Innovación Pública
Role: Lead Frontend Developer
Stack: React, TypeScript, Node.js, PostgreSQL
GEdims
It is live. serviciosdigitales.cdmx.gob.mx is where the Mexico City government publishes its online procedures — and this is the engine underneath.
A Google Forms for government: any agency builds its own procedure and asks for whatever it needs, with electronic signature, without writing a line of code and without queueing for a development team.

The problem
Every digital procedure was a system of its own: its form, its admin panel, its emails, its status lookup. Thirteen procedures meant thirteen systems to maintain, each with its own way of breaking — and an agency that wanted one had to queue for a development team.
Any agency, any procedure
The procedure is assembled field by field: what is asked, which documents, what it costs, how many days to answer, how many follow-ups are allowed and the folio it comes out with (PASAP-2026-000000001). Built by whoever owns the procedure, not by a developer.
::carousel images=[{"src": "/media/work-projects/images/gedims/gedims-constructor.webp", "alt": "The form builder", "caption": "Field by field, no code"}, {"src": "/media/work-projects/images/gedims/gedims-crear-formulario.jpg", "alt": "Creating a procedure", "caption": "Requirements, cost, deadlines and folio prefix"}, {"src": "/media/work-projects/images/gedims/gedims-campo-mapa.webp", "alt": "Address field with map", "caption": "The address is pinned, not typed"}, {"src": "/media/work-projects/images/gedims/gedims-formulario-bienestar.webp", "alt": "A procedure asking for CURP", "caption": "With its notices and validations"}] height="460px"::
Electronic signature and a paper trail
Procedures are signed electronically and every step is recorded. Citizens follow their folio with no account and no queue; the agency sees the status of every submission, who owns it and how long it has been sitting there.
::carousel images=[{"src": "/media/work-projects/images/gedims/gedims-bandeja.webp", "alt": "Inbox", "caption": "The agency's submissions and their status"}, {"src": "/media/work-projects/images/gedims/gedims-validacion.webp", "alt": "Validation", "caption": "Field by field before approving"}, {"src": "/media/work-projects/images/gedims/gedims-formulario-publico-2.webp", "alt": "The published procedure", "caption": "What the citizen fills in"}] height="460px"::
The data doesn't rot in a drawer
Every procedure produces statistics: how many come in, where they get stuck and how long they take to resolve. That is what turns a form into something you can improve with data instead of hunches.
Every agency with its own face
Its logo, banner, contact details, footer and links. A Civil Registry procedure looks like the Civil Registry, not like a generic template.
::carousel images=[{"src": "/media/work-projects/images/gedims/gedims-portal.jpg", "alt": "The Civil Registry portal", "caption": "Carrying the institution's identity"}, {"src": "/media/work-projects/images/gedims/gedims-panel-dependencias.jpg", "alt": "Agencies panel", "caption": "Registered agencies and their forms"}, {"src": "/media/work-projects/images/gedims/gedims-dependencia-imagenes.jpg", "alt": "Institutional images", "caption": "Its logo and banner"}, {"src": "/media/work-projects/images/gedims/gedims-portal-oscuro.jpg", "alt": "The portal in dark theme", "caption": "Theming belongs to each agency too"}] height="420px"::
What I built
The whole frontend: the builder, the public portal, the admin panel and the per-agency theming.