How I chose a technological stack with a foundation for the future

Start with a simple, but not at the expense of further growth.



image



Having started my career as a software engineer, later I became a technology entrepreneur and founded two SaaS companies that attracted more than $ 100 million of Silicon Valley venture capital.



The problem was that these companies required huge investments in order to create the complex, multi-tenant software systems that they were, which also required sales and implementation specialists to constantly promote and support their work. Therefore, in 2017, I founded 8base .



At the heart of 8base is the idea that there is a huge demand for platforms and tools that accelerate, improve and cheapen software development. 8base provides a ready-made and understandable software environment, and our architecture is incredibly important. Why? The technological stack is designed not only for us, but also for our customers.



Our team has extensive experience working in SaaS companies, and we have clear beliefs that guide us in choosing our architectural solutions. Here are some of them:



- First, the API (API-first) - computing infrastructure, data and business logic must be server-side and represented using a single dynamic API.



- Flexibility - Computing infrastructure should be a fully customizable service for a running application.



- Frontend development flexibility . Software is more an art these days than science and companies express themselves through technology. Developers should be able to design and create user interfaces in any style in combination with various form factors.



We put these ideas into the core of 8base.



8base Technology Stack



First of all, we chose Amazon Web Services (AWS) as the computing infrastructure because it is the market leader in cloud computing. We use many AWS services:



- AWS Lambda for serverless computing (Serverless). Applications built using 8base also use Lambda. Serverlessness is a relatively new computing model that executes code in response to events, automatically managing the necessary computing resources. Lambda addresses computing needs in the same way as an energy company: providing customizable and measurable services. This minimizes the need for DevOps engineers, which in turn leads to lower costs.



- AWS Aurora MySQL and MongoDB Atlas Databases. Each is a database-as-a-service, which makes them fast, reliable, fault tolerant, manageable, and scalable. 8base also offers dedicated Aurora MySQL for each developer workspace.



- Service for storing objects AWS S3 (Simple Storage Service) . 8base solves the problem of providing access to S3 for workspaces and client front-end applications. This makes it easy to store documents, images, voice and video files and much more. 8base also uses FileStack so developers can easily connect their cloud storage, social and other accounts. We chose S3 because it is inexpensive, fast, reliable and virtually unlimited in storage volume.



- AWS API Gateway is used by the 8base engine and is by default available for client applications built on 8base as a service for creating, publishing and securing the REST and WebSocket APIs.



8base has made the incredibly powerful GraphQL API engine part of the platform. GraphQL is a standard developed by Facebook and became open-source in 2015. It is a single endpoint that provides a dynamic connection between the frontend and backend. GraphQL allows front-end developers to work very fast, reducing dependency on back-end developers. This API technology helps the 8base team and teams using 8base develop faster.



We support any frontend framework, but 8base itself is made using React . React is an open-source JavaScript library maintained by Facebook and the developer community. It is optimal for fast-changing data. Today, React is incredibly popular, and also offers React Native, a framework for creating native applications on iOS and Android.



Finally, we chose the Auth0 platform for authentication. Developers can very easily integrate Auth0 into their client applications, while at the same time they have the opportunity to use other providers for authentication. Auth0 provides integration with more than 30 social and corporate services for authorization, in addition to multi-factor authentication and many other powerful features.



Advice



Design to scale



The lean startup approach is often practiced by quickly writing a software product so that the founders can immediately begin to search for their market niche. I urge the founders to think about what problems they may face when their products will need to be rewritten after finding a niche.



It is better to build on a solid foundation with the possibility of continuous iterations to improve the product, without sacrificing the possibility of further scaling. We did this with 8base, and now it is paying off, since we spend our time on constantly improving the product, and not on its technical updating or refactoring of the old code, which is essentially invisible to our customers.



Be careful with developers who make startup products without thinking of a data model.



Some of the backend solutions that exist today allow front-end developers, and especially mobile application developers, to simply upload data to them without regard to any data model or structure. And for some applications this is normal. But for most applications - alas, no. Be sure to choose an unstructured approach to data because it is the right choice, not the easiest. Otherwise, your data will look like spaghetti ... when it is cooked.



If you are a non-technical founder and involve an agency to help you with the development, ask them the following eight questions.



Agencies tend to provide professional services, and it is in their interest to do so for as long as possible. Their goals do not always match yours. To verify this, you can ask the following questions:



1. What is your approach to software development: first design (design-first) or first design (engeneering-first)?

2. What will the first obtained results look like: will it be finished designs or prototypes or both?

3. What startups did you help, did they find their market niche and became financially stable?

4. How will you design the application architecture so that I never have to change it?

5. Will other developers be able to work on the project?

6. Will I be able to scale my software when necessary?

7. What if we want to change the design based on new marketing data?

8. What will be necessary to support our product after its launch?



Creating technological products is a journey for an entrepreneur that never ends. Initial decisions about what , who and how , can separate success from failure. These decisions also include answers to questions about who decides what the product should do, who will design and develop it, and what basic technologies will be used.



The correct answers to these questions give the entrepreneur a chance to win, otherwise decisions will lead to loss of time, additional costs and, possibly, failure.

Thanks for reading! I will be glad to comment, or contact me with questions at albert@8base.com .



All Articles