Skip to main content

· 6 min read
Raluca Constanda

Definitions, principles, and how they can help you

Intro

Technical startups, by definition, aim to grow fast. The start is usually very accelerated and the focus is on product features, not on the quality of the code base. We can compare this phenomenon with fast food. They have the same urge to be ready and delicious to please all the clients in the shortest time possible. In the long run, this speed can become unhealthy. Successful projects grow fast and clients demand more and more functionalities. Developers’ focus is on implementing new features as fast as possible. That's the recipe for creating a monolithic, dinosaur project. It becomes too slow for the user experience and too big to improve in a competitive amount of time. Multiple applications Tech teams and founders can avoid this problem with a good start. Consider from the beginning all the possible parts or components of the application. Even though the business plan is long-term, it helps structure the technical part so it has a good base for future features. This means using technologies like containers, serverless applications, and Kubernetes. The architectural choices are essential. Such a choice represents structuring the technical product in micro-apps, micro-services, and micro-frontends.

In this article, we’ll talk about these concepts and you’ll see how they change the game of software development.

1. Microservices

This is an architectural approach that became popular in the last couple of years. The concept is to break the big and complex applications, known as monoliths, into small and independent services. From the outside, they are black boxes that hide all the unnecessary information and implementation details.

One microservice encapsulates one business functionality. Then it makes it accessible to other services via network endpoints. Microservices communicate and send messages using APIs, event triggers, or other channels. Being completely independent, we can change and release a microservice all alone. It needs to assure backward compatibility and not affect the current consumers. Monolith to microservices Let’s see a list of 4 key concepts of microservices as we can find them in “Building microservices” by Sam Newmann.

a. Independent deployability

A change in a microservice should not depend on or impact any other microservice. A microservice can be changed, deployed, and released every time is required. It’s a key that assures that the microservices are loosely coupled.

b. Built around a business logic

As said earlier, a microservice solves a single business scope. We prioritize the business scope over the technical one. It helps to recombine the microservices in different ways to deliver new functionality. In practice, it means moving from the 3-layer architecture (frontend, backend, and database team) to multiple independent microservices teams. Each of them takes care of a different business feature.

c. Owning their own state

It means avoiding or eliminating shared databases. Each microservice has full access to its database. In case it needs data from another microservice’s database it needs to request it explicitly. The reason behind this is to completely separate the data that can be shared from the data that cannot. It also reduces the need for backward-incompatible changes.

d. Size

There is no physical size recommended for microservices. Even though the name contains the term “micro”, it was not meant to impose any size restriction. The recommendation is to be easily understood and as small as possible.

There are 2 numbers that you can think of:

  • how many microservices you can handle
  • how strict you want to be in terms of their boundaries without letting them be too coupled

2. Micro-frontends

The same as microservices, micro-frontends represent an architectural concept recently developed. Before that, the norm was to build a single-page monolithic application that interacts with a set of microservices. To avoid code conflicts, usually, one single team was in charge of the development. Unfortunately, this type of architecture cannot be easily improved in the long term. Especially, it is not for products built to be used for many years with frequent releases made by distributed teams.

The new trend is to offer the best user experience and to provide an easy path to do what the users want to do—all without losing the quality of the services.

Micro-frontends break the monolithic frontend into separate frontend applications. These applications are owned by independent teams who take care of a single business aspect. The micro-frontend architecture follows the same principles as microservices. On top of that we can add 2 more:

a. The automation

A strong culture of automation eliminates a lot of problems. Each micro-frontend is a separate project that has hundreds of different parts. We need to assure continuous integration and deployment and fast response to feedback. The automation requires a lot of time but doing it from the beginning of the project it saves time later.

b. Decentralized governance

Each team working on a micro-frontend has the decision power over that micro-frontend. It allows them to choose which technologies and tools to use to do the job. The tech leadership can always offer the guidelines that align teams, but they should not be a blocker in the decision-making process. This approach empowers the teams and becomes essential for introducing new successful practicing.

3. Micro-apps

The architecture of decomposing a monolith into micro-apps

Putting together microservices and micro-frontends, we end up having the final concept of micro-apps.

A micro-app is a specialized application meant to serve a single, well-defined business task. It follows the principle of single responsibility that reduces the complexity of old fashion monolithic applications. A micro-app can include a frontend, a backend, or other services that serve a single scope.

Benefits

All three concepts follow one main principle of breaking down the big and complex applications. The scope is to make software applications easier to develop, maintain and scale.

The separation of code into micro projects splits the development across teams. It empowers them to take ownership of the project and to choose the right tools. It allows the automation of testing and individual releases without creating code dependencies.

We can also add the reuse of the same functionality in different places. Think of how you need a blog app added to each of your projects. You create a micro-app for the blog and reuse it in all projects.

How to apply?

It can be difficult and time-consuming to create the initial setup that takes advantage of micro-components. Fortunately, there are tools on the market that can help you set up quickly your app using the best practices.

One such tool is getwebstack.com.

Getwebstack.com uses composable components to build your full-stack web app. It offers a range of pre-configured stack templates that include popular technologies such as React, Angular, ExpressJs, and more. You don't need to manually configure servers, infrastructure or local environment. Additionally, you can easily manage the responsibilities inside one or more teams.

· 5 min read
Vlad Nistorica

7 key aspects to look at before starting your business

Intro

A SaaS business is an exciting and rewarding venture that comes with its own set of challenges. Choosing the right tech stack technologies is one of the biggest challenges. A tech stack is a set of technologies that you will use to create and deliver web-based products or services. It includes everything from the programming languages and frameworks used for building the application, to the infrastructure that hosts and delivers it.

Nowadays, there are many different web stack technologies to choose from. It is overwhelming to try to figure out which ones are the best fit for your business. In this post, we’ll show you 7 key factors to consider when choosing your web stack. You'll also find some tips for making the right decision for your business.

SAAS technologies

1. Business needs

Before looking at specific technologies, take a step back and look at the needs of your business. What type of product or service you’re offering, what is your target audience, and what are the unique requirements or constraints?

For example, if you’re building a consumer-facing SaaS product, you focus on technologies that are easy to use and have a good user experience. A complex business product requires technologies that are scalable and able to handle large amounts of data.

2. Team’s skills and Resources

Once you defined the business needs, the next step is to check the skills and resources of your team. This means technical skills and available resources for development and maintenance.

If your team has senior developers in a particular technology, it makes sense to keep that stack. But, if your team is smaller or less experienced, you focus on technologies that are easier to learn. Also, consider the technologies that have a larger community of users and developers.

3. Ecosystem and Community Support

A large ecosystem and a big community around it is a proof of a good technology stack. In the beginning, a good tutorial helps you put your application up and running fast. Later, detailed documentation can help you develop faster and fix tricky problems. Look at the size and activity of the developer community. A large community can be an invaluable resource for finding solutions to problems. It also provides feedback on your product and keeps you up to date on the latest developments in the field. Popular technologies pass the test of time. It’s worth considering them for better long-term support and easiness to hire.

4. Scalability and Performance

Scalable

We go now into the critical factors. It means that they can determine the level of success and cannot be easily changed in the future. Always focus on technologies able to handle the demands of your business as it grows. This helps you to avoid experiencing significant performance issues.

Evaluate the scalability and performance of different technologies by checking the following benchmarks:

  • the number of requests they can handle at once
  • the speed at which they can process those requests
  • the resources required to process those requests

5. Integration and Extensibility

As your SaaS business is likely to evolve over time, you’ll want to choose flexible technologies. You need them to adapt to any business challenge.

Look for technologies that have APIs or integration points that allow you to connect with other systems and services. Consider the technologies that can be extended or customized. For instance, the integration with third-party tools and services.

6. Cost and Maintenance

There are 2 types of costs:

  • the upfront cost of implementing the technologies
  • the ongoing cost of maintenance and support

When evaluating the cost of different technologies, consider factors such as:

  • the cost of licenses or subscriptions
  • the cost of hosting and infrastructure
  • the cost of hiring developers with the necessary skills

Add on top of this the ongoing maintenance and support costs. It is the time and resources required to keep the technologies working and up-to-date.

7. Security and Data Privacy

Another critical aspect of a SAAS business is security and data privacy. The technologies must protect against known security threats like hacking or data breaches. Also, they need to be compliant with relevant data privacy regulations, such as GDPR.

When evaluating the security and data privacy of different technologies, consider these factors:

  • the security measures built into the technologies
  • the track record of the technologies' security vulnerabilities
  • the resources and support available for addressing security issues

Test it

It can be overwhelming and time-consuming to test and compare all the possible web stacks. There are tools on the market that can help you set up and test different web stacks for your SaaS business. One such tool is getwebstack.com.

Getwebstack.com is a tool that allows you to set up and test different web stack technologies. You don't need to manually configure servers or infrastructure. It offers a range of pre-configured stack templates that include popular technologies such as React, Angular, ExpressJs, and more.

Using getwebstack., you pick the best technologies for the needs of your business and team. It accompanies you from testing different web stack options to creating an MVP. It saves you significant time and resources in set-up and configuration.

Getwebstack.com is a useful tool to set up a web stack for a SaaS business. It is worth considering it as part of your web stack evaluation process.

Conclusion

Choosing the right web stack technologies is a crucial step that has a huge impact on the success of a business. Work with good metrics and make well-informed decisions that set your business up for success.

· 6 min read
Raluca Constanda

Intro

Is an idea good or bad? Not even the most famous investor can say it from day 1. Everyone asks you to validate your saas idea as step -1 in your founding journey.

How can you do this without losing too much time analyzing your competition? Or spending a consistent amount of money in building an MVP? No one will say that validating an idea is a simple task. It is the most important and a difficult step in building a successful startup. Here are the first steps you need to take in your start-up journey.

Landing page and waitlist

1. Define the idea and the competition

Get the idea & identify the problem

Start with something that you like and is not far from your daily activities. You don’t need to be an expert in that area, but in time you should become one. Try to solve a problem that you have and you see yourself as a customer. Look around and see if it is a common problem.

To clarify the problem, you can:

For a successful interview, read “The mom test”. This book helps you to put the right questions and to avoid false positive answers.

Find and analyze the competition

Starting from the interviews and the keywords list, you should have an idea about your competition.

To understand your competitors, do the following:

  • put on paper all the solutions they bring to the market and try to find gaps.
  • check how they reach their audience. You can read “Traction” to better understand all the marketing channels and see which of them your competitors use.
  • look deeply into SEO and use the trial periods of platforms like Ahref or Semrush to see how they built authority.
  • follow them on social media, see how often they post, and what questions they receive from the customers.
  • use review platforms like Trustpilot, Capterra, and G2 to identify the pain points and see how you can do better.

Having competition means the problem is valid and there is a market for it. This is good news. Now you have to figure out how to differentiate. On the contrary, not finding competition or seeing low search volume for your keywords can be a red flag.

Do your homework and fill the knowledge gaps for yourself

Woman at laptop with books We are living in a time when being a specialist is the key to success. All corporate jobs require experts and specialists. But when building a start-up, you need to extend your knowledge area. Both technical and marketing skills are essential at the beginning.

Learn as much as possible from every domain that you interact with. No need to be an expert, but knowing the basics and having a good understanding of concepts make the difference. It not only helps you at this stage but also at the moment when you will need to hire or delegate.

2. Build a landing page, and a waitlist. Get some hype.

Build a simple website to create the hype

Don’t spend a year building a full technical solution. Focus on a good landing page that explains clearly what you plan to do. This is the front door to your business. Make sure it is well done, explicit, and scalable.

Don’t waste too much time on this and try to speed up the development. Getwebstack.com is your best friend! It creates a full-stack project with a landing page and waitlist in a few minutes. Using a serverless architecture cuts infrastructure costs and saves you money and time.

Add a pricing page to be transparent to your potential customers. By doing that, you test the intention to pay and confirm your pricing.

Measure. Measure. And measure. Always have a clear view of what is happening on your webpage. Use Google Analytics to see how many people open your pages and how many of them are converted to subscribe to the waitlist. “Lean analytics” is a book that helps you to understand how to link the data with your next actions.

Promote it

Start with a list of channels (you already have them from your competition analyzes) and measure the success rate of each of them. Focus on channels that can be used in the long term, and try to avoid social media groups where you are not the admin. Try Google Ads or other paid channels to be able to measure the acquisition cost.

A simple website with a good promotion can tell you from the first months if there is an interest in the market or not.

Use your waitlist as a mailing list

Don’t underestimate the power of a mailing list. It contains only the people who are truly interested in your solution. Keep them close and provide curated information without being too intrusive. Keep the interest alive until your full website is ready and give them periodic updates. Don’t be afraid to be sincere. Behind products, we are all humans. Making mistakes is a part of the learning process, as well as recognizing them in front of others.

3. Analyze the result, iterate or pivot if needed

Now you should have a waitlist and it’s time to take a look over the process. startup iteration process

Conversion rate

Divide the number of emails from the waitlist by the number of website visitors. You get the conversion rate. A common conversion rate is between 5% and 15%. A high rate means that you did a good job in presenting your solution and the idea got its validation.

Acquisition cost

Then take a look at how many people you have on the waitlist and divide the promotion cost by this number. That’s the acquisition cost for one user. Is your price higher? If it isn’t, it means that your business will not be profitable, or simply saying, you won’t make money. If you already have a good conversion rate, increasing the price can make it work.

Used free marketing channels? Then you should look at how many of them you can use in the long term. If they will not be able to bring new customers, then it’s better to exclude them.

Take a decision

At this point, you have a clear view of the success of your idea. If your acquisition cost is too high or the conversion rate too slow, don’t be disappointed and change the plan! Don’t be afraid to pivot and solve another problem or to try a new solution for the same issue.

Don’t start from the beginning, iterate.