My Journey to a Web App Platform | EP.2 Development phase

Pongsatorn Manusopit
3 min readAug 15, 2024

--

My development phase has been quite frustrating because I started without a complete system design. The flow and technical aspects are still not solid. This lack of preparation means that I often have to go back and forth, refining and tweaking until everything fits together just right.

TL;DR

In this blog, I detail my journey of developing a web app platform, from initial frustrations due to inadequate planning to overcoming challenges and refining my approach.

First POC

The first proof of concept (POC) I created was to show that I could swap textures in a Blender scene and render the image. For this prototype, I utilized NestJS and Python. I also integrated a Discord bot, so users could submit textures and request renders directly through Discord.

It took me 2 weeks of working only on the weekends and after working hours.

First attempt

React Admin Template (not my web app)

After confirming that I could successfully swap textures and render images, I proceeded to create a full-stack web application using NestJS and Next.js. At this point, I didn’t have much experience with frontend and UX/UI development, so I decided to use a template to help me get started with the UI. I chose Horizon UI Pro because it initially looked appealing to me. However, I soon realized that it was more suited for dashboards rather than the type of web application I wanted to develop.

It took me a month of working only on the weekends and after working hours.

Secound attempt

I decided to start from scratch with an empty project, using TailwindCSS, Chakra UI, and Radix-UI. This time, the web app looked significantly better compared to my first attempt. However, without strong frontend experience, the project’s structure ended up being quite messy. The features were imperfect — some were not crucial, while others were poorly designed due to changes made during the development process.

It took me almost two months of working full time.

Final attempt

Overall, the second attempt was satisfactory, but I knew it could be better. Since I still had some time before the planned launch of my web app, I decided to start again. This time, I had a clear vision and a better understanding of what I needed, allowing me to code everything quickly. I also reused components from the previous project. Remarkably, it took me only one week to complete this final version.

It took a week of working full time.

What I Learned

Throughout this journey of developing a web app platform. Starting without a complete system design taught me the importance of planning and having a solid workflow and technical foundation. While a company should ideally start with a complete system design, for me, it felt like I was developing the business alongside developing the web app. This dual approach made the process more fluid but also more challenging.

Creating the initial proof of concept helped build my confidence and proved that I could implement critical functionalities like texture swapping and rendering through Blender, NestJS, and Python.

The second attempt, despite its structural issues, was an essential stepping stone. It helped me realize the importance of choosing the right tools and frameworks that align with my project goals. While I made significant progress with TailwindCSS, Chakra UI, and Radix-UI, the messy project structure and imperfect features highlighted the need for thoughtful design and planning.

Finally, the quick turnaround on my final web app iteration taught me the power of experience and iteration. Having a clear understanding of what I needed allowed me to work efficiently, reuse previous work, and rapidly build a more polished final product.

In essence, this experience has not only expanded my technical skills but also deepened my understanding of project management, design principles, and the importance of iterative development. Each challenge was an opportunity to learn and improve, setting a solid foundation for future projects.

In total, the entire process took around three months of working man-days, showcasing the significant time investment necessary to develop a robust and functional web application.

--

--

No responses yet