Back to work

CheckWise - REPSE Compliance Platform

A REPSE-compliance platform for Mexico. Vendors upload monthly, bimonthly, four-monthly, and annual evidence (SAT, IMSS, INFONAVIT, acuses, corporate file); LegalShelf reviewers approve, reject, or request clarifications; and client companies read a portfolio-wide risk view.

Role
Product direction, full-stack engineering, compliance domain modeling, design system
Type
Full-stack SaaS
Status
Live
Year
2026
CheckWise reviewer decision queue screenshot
Reviewer decision queue: documents awaiting human review, with possible-inconsistency flags per institution.

What this project solves

REPSE compliance in Mexico requires vendors to submit recurring, institution-specific evidence on different cycles. Tracking it manually across many vendors is error-prone and opaque, and clients have no clear portfolio-wide view of their exposure.

How I built it

CheckWise centralizes vendor evidence intake, the reviewer adjudication workflow (approve, reject, request clarification), and a portfolio-wide client risk view, with role-based access and an AI-assisted reports center that stays explainable.

System structure

  1. 01Next.js 15 / React 19 frontend with a locked design system applied across admin, client, and portal surfaces.
  2. 02FastAPI backend separates auth, RBAC, vendor expedientes, reviewer decisions, and reports.
  3. 03PostgreSQL via SQLAlchemy and Alembic models vendors, evidence, institutions, cycles, and audit logs.
  4. 04Reports layer adds an AI planner and streaming generator with per-block regenerate and explain, guarded by an AI-safety test suite.

Stack: FastAPI · Next.js 15 · React 19 · PostgreSQL · SQLAlchemy · JWT Auth · Tailwind CSS

Tradeoffs I made

One locked design system across every surface

Tradeoff

Shipping roughly twenty admin, client, and provider-portal surfaces quickly would have meant letting each one drift into its own layout and component conventions.

Outcome

Locked a single design system first and applied it everywhere, so the platform reads as one product instead of three tools stitched together.

Model REPSE cycles instead of a flat checklist

Tradeoff

A flat document checklist would have shipped sooner, but it breaks as soon as an institution's cadence differs: REPSE evidence arrives monthly, bimonthly, four-monthly, and annually depending on the institution.

Outcome

Modelled institution x cycle explicitly, so the operating calendar and the expediente gates derive from the data model rather than from hardcoded rules.

AI reports had to be testable, not just impressive

Tradeoff

A single free-form generator demos better, but in a compliance product an unexplainable report is a liability rather than a feature.

Outcome

Split it into a planner plus a streaming generator with per-block regenerate and explain, and guarded the whole path with an AI-safety suite inside 320+ backend tests.

What it looks like

What came out of it

  • 01In production for LegalShelf: three real client companies and more than fifteen vendors run their REPSE compliance through it, and it has processed close to 20,000 documents.
  • 02In production with 3 client companies and 15+ vendors
  • 03Close to 20,000 compliance documents processed
  • 04In production for 3 real client companies with 15+ vendors onboarded
  • 05320+ backend tests including an AI-safety suite
  • 06Role-aware reviewer queue with JWT auth and RBAC
  • 07REPSE calendar (institution x month) and expediente gates

Next iteration

  • 01Finish wiring the remaining dashboards from mock adapters to live backend endpoints.
  • 02Move storage from the local filesystem to an S3-compatible production backend.
  • 03Replace the provider portal's opaque workspace token with full JWT auth.

Open to internships, junior technical roles, and project collaborations.

jpss2004@icloud.com