January 31, 2022

From POC to V1.0: 4 Important Tech Decisions to get a Startup

4 Tech Decisions from getting a startup from Proof of Concept (POC) to V1.0


How do you select a tech stack for a new startup? How do you make the transition from proof of concept (POC) to a scalable, long-term application? In this article, we will go over the considerations of selecting and maintaining a design system for the application of a new startup.

Introduction – The “Quick and Dirty” Phase

Every startup has the “quick and dirty” phase.  You have to deliver a POC fast and be aware that your first piece of code will be used short term.

After joining impro.AI as a co-founder, I decided to create a POC in order to effectively demonstrate our project and experiment with real users. As a lean startup with tight financial constraints, we used my development skills. I spent a few weeks creating the POC.

Time was of the essence; we wanted to dive into the experiment, so we knew that the application would have to be built “quick and dirty”. We also knew that should the experiment be successful, we could create a more “fleshed-out” platform at a later date.

The Challenge – How to Build a POC Fast

We made the decision to create an application quickly and efficiently, even if that meant sacrificing some initial scalability. In such a case, there is no time for extensive research; the tech stack must be based on current knowledge. At that time it amounted to React for the front end and Node.js with Express for the backend. These libraries and languages are popular and up to date, making them natural picks for the project.

Many decisions still had to be made on the client-side. One such decision was whether to use a pre-made user interface (UI) library or create all the components from scratch. 

The question was should I reinvent the wheel or should I take the shortcut with a UI library.

What Material UI (MUI)

Naturally, I was looking to solve the problem with a UI library. It looked reasonable since the prospect of creating all the components from scratch looked far too time-consuming for a quickly approaching deadline. The first option was to use Material UI (MUI), a credited library by many experienced developers in Google and one recommended by my programming development mentors. 

MUI was initiated in 2014 in order to unify React and Google’s Material Design. Today it is used by more than 2 million developers. It has more than 2200 contributors

As a developer, you enjoy the design standards of Material Design working with React. This gives you out-of-the-box layouts, components, behaviours, icons and themes.  In case you need to customize it, you can do it easily, but the pre-made components and layouts are extensively tested in all Google products. 

MUI is not the only UI library, you can find also solutions like Tailwind, Bootstrap, and AntD, but MUI is the broadest UI library in terms of capabilities.

MUI – Love (not) from First Sight

Having stable foundations in programming, I figured it would be easy for me to implement MUI into my project. I dove into the documentation and began to research how to use it for my purposes. In the beginning, it was quite straightforward. Some code lines, and assembling the components like lego parts.

However, the complexity quickly escalated; I needed to customize components according to our design requirements. I tried to understand how to do it, but the lack of prior experience and peers to consult with was making my work next to impossible. I struggled… a lot. The days dragged on with little to no progress. 

The project reached a grinding halt for nearly two weeks. The deadline was approaching fast and the date of launch was nearly postponed. I am not ashamed to admit that after two hard weeks, I decided to abandon the idea of using MUI for our project. In retrospect, it is hard to determine the precise obstacle: the pressure to create a fast application, the documentation (which is one of the best I must admit), the fact that I was a relatively young developer with no one to consult with or the designs? The fact is that I just did not get it. 

I decided eventually to quit using MUI completely and create all the components from scratch. No special libraries, just plain CSS (Cascading Style Sheets is a stylesheet language used to describe the visual presentation of HTML) in my React/Node.js project.

Thankfully, the project was a staggering success. Our application served as a solid proof of concept for many months until a more fleshed-out version was launched.

Always Respect Your Team Leader’s Decisions

Down the road, we validated our POC; we decided to build our official application using a similar but upgraded stack: React, Typescript (instead of JavaScript) and Node.js/Nest.js. We discussed using a UI library. I decided to follow my team leader’s recommendations and implement MUI into our project after all. My thoughts were conflicted. I needed to make a reasonable decision, not only based on my personal experience, but also on my advisors and any future developers who would work on the project as the scale increased. MUI is a mainstream library that many developers know and appreciate; this increases the ease of introducing new team members to the platform as the company grows in scale.

The team went to work and implemented MUI brilliantly into our new app. It was easy to implement as well as teach new team members to dive into the front end of the app and learn how to customize the components and build layouts.

After a few months of hectic work on our startup, I finally had some free time to dive back into coding. I thought that it would be a good chance to explore our company’s technologies. As I love front-end development, the natural thing was to dive into MUI again, despite my previous experience. Surprisingly enough, I really enjoyed the process of learning and implementing it. 

Implementing MUI into our application proved itself gloriously time-efficient. We love the library and enjoy working with it. We also managed to create our own design systems based on the theme of the well-established structure of MUI. That will come soon, allowing us to customize our app.

This challenge taught me to step out of my personal experience when it comes to teamwork on a technology platform. It is a completely different decision-making process when you are working alone, and using your own abilities, versus the combined experiences and proficiency of a full team. This is even more important if you are new to development. If I had insisted on neglecting the use of MUI, it would likely have taken us much longer to complete the project. My personal biases and mental blocks could have been devastating for the rest of my team.

Final Thoughts

Here is a brief list of the insights I gained from the experience:

  1. When you are creating a POC, do it “quick and dirty” with the knowledge you have plus some external sources if need be. It will be clunky and have poor scalability, but will bring you effective results fast.
  2. Concentrate on the fundamental features that you need for the POC. Any additional features can be implemented later.
  3. Once your team is established, respect your team leader’s decisions about the stack. Since they are going to work with it daily, they should have the professional knowledge and satisfaction of creating code for your app.
  4. Different stages of your startups need different technological stack decisions. The stack that is correct for the POC will not necessarily work best for more advanced versions.

I would like to express my gratitude to Alex Pshul , Yonatan Kra and Ethan Blair who reviewed my post and shared with me their wise insights.

Maya Liberman

Thoughts about entrepreneurship and programming

COO and Co-Founder @impro.AI

Community Leader @JRDevs 

and an enthusiastic programmer

About the Author

In the two years before the establishment of our company, impro.AI Inc., I invested all my free time to learn how to code. My original plan was to become a web developer. As I did not have an official background in engineering or computer science, it was initially incredibly challenging and confusing. However, my enthusiasm and discipline, as well as the drive to learn encouraged me to continuously improve my development skills.

Recent Blogs

Latest News

Stay Tuned

Subscribe to our Newsletter

By subscribing, you agree to our Privacy Policy and provide consent to receive updates from our company.

Stay tuned

Subscribe to our Newsletter

By subscribing, you agree to our Privacy Policy and provide consent to receive updates from our company.