← all posts

MK Interior Design

This project was different from most of my previous work. I wasn't just handed a design and asked to implement it. I had to take a rough idea, turn it into a complete experience, build the frontend, create the admin tools, and connect everything.

Let's start with the design phase. I was given a rough overview and the client's vision, as well as a wireframe.

The process was hard. Luckily, even for a non-gifted "designer" like myself, some tools help you out. You just need to have an idea of what the result should look like.

So this is where the various design AI tools come in. I polished the color palette, searched the internet for inspiration, and off to the races.

All I can say from that experience is... AI is not a silver bullet. It's actually quite hard to get the EXACT thing you have envisioned in your head. It's always "close" or "fine," but I never get to the moment where it was "perfect". I will not get into how LLMs work, but it's a good tool to create options and create them quickly. But it doesn't have "sense" or "reason", so it needs a person guiding it, making the important decisions.

So after I got my design to look good enough, I went in and polished it by hand. Is it perfect? Heck no. But it will get better with time. Lots of things are coming up.

So, whether it's the timeline at the bottom of the page, or the hover effects, or the scroll effects, it's all a collaboration between the AI and my years of experience as a developer, and decades of experience on the internet, seeing different things, interactions, and whatnot.

After the design was finished, given how inexperienced I was with it, I thought the hardest part was behind me. It was not. There were some challenges as I set out to create an admin dashboard, a frontend for the website, and a little proprietary CMS. Why custom CMS when you can use the tons of other options? Because I could make it as lightweight and as easy to use as I want it to be. And I needed that for the project. What you see on the frontend, is a mirror of how the editor functions in the backend.

The biggest pain point for me was the backend part and wiring up the whole thing. I started my career as a frontend developer. I dabbled in backend, but never in great depth. I know my way around a backend and can handle easy-moderate tasks, but many things are a black box to me. Or at least they were more than they are now.

A couple of the pain points I faced.

One upload endpoint, two environments

In production, images go to blob storage (CDN-backed, no local disk on serverless). But you don't want to require a cloud blob token just to run the app locally. That kills the dev loop. The endpoint needs to behave correctly in both environments while validating untrusted file input.

So with the help of my robot companion, we came up with a solution that seemed right for me. Validate first (type allowlist + size cap), then branch on environment: real blob store if configured, local-filesystem fallback in dev, explicit error in prod-without-config (fail loud rather than silently dropping uploads).

This was one of the things. But the list goes on; it will be too long if I post everything here. Maybe in another blog, with code examples. But between making things easy for a non-technical client and also making it as hard as possible to fail epically, I had a lot of work on my hands.

At the end of the day, this project is only in its first version. Many features are coming up, such as multilingual support and 3D room showcases, among the bigger ones.

This project reminded me that while tools are there to speed up the process. The decision ultimately falls to the person using them.

Stay tuned, I will try to give examples in the next ones.

Tj out.

tjdev.iogithub · linkedin