← IndexNovember 2026

Reverse engineering Plata

Personal exploration

Banco Plata is the fastest-growing financial institution in Latin America and the largest private digital bank by number of customers. They offer an exceptional banking experience through their mobile app.

Why I did it


I wanted to open the app, explore it and understand how it works. But you can only create an account with a Mexican or Colombian phone number, so I couldn't get past sign-up.

While looking for a way around it, I found that someone had kindly uploaded 123 screenshots of the app to Mobbin, grouped into 35 flows. That gave me a plan: reverse engineer the app from those screenshots.

Rebuilt Plata screens laid out in rows, one flow per row
The starting point: 123 screenshots in 35 flows.

Rebuilding in Figma


I asked an agent to download all the screenshots and group them by flow in a new Figma file, then extract Plata's design system from them. A screenshot has no layers, so every colour, size and spacing value had to be measured from pixels. It did that really well.

For the components, I set up three agents with separate jobs: one planned what the design system needed, one built it, and one only reviewed, comparing every component to the screenshots until nothing was left to fix. That took eight rounds and produced 73 components, which were then used to rebuild all 123 screens.

Plata's measured colour, radius and spacing values as variables
Rebuilt components after the eighth review round
A grid of rebuilt Plata screens
Measured values, 73 components reviewed over eight rounds, and the 123 rebuilt screens.

Rebuilding in Compose


Then I rebuilt it again in Compose Multiplatform, so it would run on Android and iOS. Same order, same review loop, and every screen laid over its original screenshot to catch drift.

A transfer in the rebuilt app: card number, amount, done.

A screen that matches a screenshot doesn't feel right in your hand. Most of my time went here.

So I tuned how it moves, to feel like a native app. Fixed easing curves became springs that carry the speed of your gesture, going back follows your finger, any transition can be interrupted mid-way, and buttons press in under your finger, like real buttons do.

A sheet flicked closed on ease-out against a spring, a press, and an edge swipe that springs back.

To tune all of this, I ported DialKit to Compose: a drawer of live controls that opens over any screen. I could adjust springs, timings, colours and other values right on the phone, then copy them to the agent.

Tuning the glass tint live, copying it, then back to Version 1.

Experimenting with visualizations


Once the app worked, I used it as a place to try things.

A live chart. The investments screen had a static chart image. I replaced it with a live chart drawn in code, with time ranges, a loading state, a crosshair you can drag and haptics.

Live chart interaction.

An App Store–style card that expands into a full article and closes back into place. It failed several times before it worked. What fixed it was slowing down: getting one small part right at a time, and tuning spring values on the phone with live sliders instead of guessing in code.

App Store–style card expanding into an article and closing back.

3D icons. I built a Blender pipeline that turns any SVG icon into a silver 3D one in Plata's style, and made a set of animated state icons. To keep them lightweight in the app, I tried reverse engineering Airbnb's Lava format: it stores one full frame and a sheet of small tiles, then redraws only the tiles that change. I expected files much smaller than video. But a 3D icon spins and catches light, so almost every tile changes on every frame. The file came out only slightly smaller than the same animation as an animated WebP, and it took more memory once decoded. So I went back to plain animated WebP.

The bubble-heart icon in three steps: the flat SVG on its 24-unit grid, its traced outline, and the silver 3D render
The nine silver 3D state icons in a grid

plata-3d-icon

A skill for turning any SVG icon into a silver 3D icon in Blender, with an optional badge and animation.

Download

Packaging. I also modelled the card and its packaging in Blender and cut a short unboxing film.

The unboxing film where it lives: a story in the delivery flow.

Interactive demo


The rebuilt app also runs in the browser. Try it here, or open it in a new tab.
Source code

Notes


Plata was the subject, but most of my time went into learning what AI agents can do: which tasks they handle well on their own, where they need a second agent to check them, and when I had to slow down and steer.