A design file is a promise, not a product. It shows what the perfect version of a screen looks like, with placeholder text that fits perfectly, a fast connection assumed by default, and no loading state because nobody bothered to design one. My job, and the job of every frontend engineer at Abango, is to take that promise and turn it into something that survives contact with a real user, a real network, and real, messy data. That gap between the design file and the live product is where most of the actual engineering work happens.
We build with components, not one-off screens
The first thing we do with a new design file is not start coding the homepage. It is identifying the repeating pieces: buttons, cards, form fields, the small elements that appear in different combinations across the whole product. We build these once, properly, as reusable components, instead of recreating slightly different versions of the same button on every screen. This is not just neat engineering, it is what makes a product feel consistent, and it is what lets us move fast later without breaking things that were already working.

The states nobody designs, but every product needs
A design file almost always shows the happy path: the screen full of data, looking exactly as intended. What it rarely shows is what that same screen looks like with zero data, with an error, while something is loading, or when a user's name is unusually long and breaks the layout. Those states are not edge cases, they are things every real user will encounter regularly. Part of our job is asking the design team, before we ever write code, what each screen should do in every one of those situations, so we are not improvising it under deadline pressure later.
"If a design file only shows the perfect version of a screen, the engineer's job is to design the other three versions nobody thought about yet."
Pixel-perfect matters less than behaviour-perfect
There is a temptation to chase pixel-perfect matches to a design file, measuring exact spacing down to the last pixel, while ignoring whether the screen actually behaves correctly. We care more about whether a form gives useful feedback when something is wrong, whether a button clearly shows it is loading after a tap, whether the layout still works on a smaller or larger phone than the one used in the design mockup. A screen that is 98 percent visually identical but behaves correctly under real conditions is a better outcome than a pixel-perfect screen that breaks the moment a user does something unexpected.
Design and engineering review the build together, not after
The worst version of this process is one where design hands off a file, disappears for three weeks, then reappears at the end to point out everything that does not match. We avoid that by reviewing the build together as it comes together, catching mismatches and awkward real-world behaviour early, while they are still cheap to fix. It slows down the first few days slightly. It saves weeks later. That trade-off is always worth it, and it is why the products we ship tend to feel like one coherent thing, not a design file and a codebase that grew apart from each other along the way.
