The Start of finstack.app

A two-man show that created a fintech SaaS enterprise with
diligence, sweat and tears — a story without sugar coating.

Thomas Reinecke
Entrepreneurship Handbook

--

cover by finstack.app

When my co-founder and I started finstack.app, we were two individuals with a visionary mindset, driven to achieve what was previously thought to be unrealistic.

We were pretty unimpressed by pre-existing solutions and focused on addressing a problem that we had personally encountered. We were both very passionate investors who believed in our own fortune and ability to make the right and independent decisions along the way to become financially solid, maybe independent — however we needed the right tools for this.

When we dove into the research of existing tools, data and offerings, we realized: even though financial data is mostly a commodity, the existing offerings for private investors and developers either provided a pretty poor and very distractive user experience, had incomplete or even wrong data, or were just way too expensive. We’ve been convinced…

…it must be much easier to find and analyze the right companies to invest in AND stay safe AND maximize outcomes. And if we can do this for us, we can do it for others.

However, that obvious gap alone wouldn’t have been the problem to go for, it can only be the starting point and a lever. Generally, if you are shooting for something big, riding a commodity train must have a very strong believe that you can differentiate in and transform the target market BY A LOT. Frankly, we wouldn’t have bothered if we thought we could just improve by 50% and you shouldn’t either if you’re about to start something. However, if you strongly believe you can improve by 10x, go for it. And that’s what we were doing, so we went in — heads down development in our spare time for more than a year — and went live December 2022.

Now, testing our hypothesis, creating product market fit and growing the user base is the order of the day for finstack.app

Creating the Foundation

My Co-founder and I are in professional software development since many years and based on this experience it was clear how important a solid foundation was. Starting from the desired User Experience and optimizing for operational costs, we defined the architecture for an upcoming multi-million user SaaS offering based on the following aspects:

  • UX design principles
  • Technology & Architecture
  • Data management
  • DevOps, service scalability and multi cloud
  • Instrumentation & metrics
  • Operational cost efficiency

UX Design principles

To create a strong affinity with the new Finstack brand, we knew from day one that we needed a unique and iconic design — a topic we’re both very passionate about. We expected our design to provide a simple, clutter-less, efficient, responsive, and international user experience. We would not accept compromises on that flank and we knew we needed to be in full control of the UX. So, we created our own design system and we’ve implemented a component library based on VueJS which allows us to create whatever experience we want.

The design system is the foundation of digital experiences, the component library is the technology that is used to create the UIs, but what actually is a good design? I would answer with two questions:

What do your users want to do?
And can you create an UX that allows to do it in 2–3 clicks?

It’s gotta be dead-simple, must look great, and navigation must be ⚡️fast, which also required the appropriate backend technology to serve the data artefacts through APIs at speed.

Company Report @ finstack.app

Technology

Fact is, Technology doesn’t matter and it matters a lot at the same time. At finstack.app, our general goal is to apply technologies to change the way people operate and work. User experience and business processes are in the center of any technology consideration, and the options nowadays are just overwhelming. We’ve never been biased about what to select, rather we tried a lot, learned a lot and finally picked carefully.

Development languages do not matter, simply pick the one you know and love — deployments will be containerized and abstracted later anyways. Infrastructure, data management, a solid construction of architecture and the communication technology between your services however need more attention. At Finstack, especially in the bootstrapping phase, we spent a significant amount of time and effort just on that. I have to admit though, when shooting for a rapid prototyping of an app, this may not be the most exciting phase of a project, but it’s clearly a make-it-or-break-it moment, so you wanna make sure you don’t rush this and do your due diligence. Significant changes on core architecture later could hit you really hard.

We landed on a micro-service architecture with dedicated layers for frontend, API orchestration, micro services and data — with the exception of the data layer all being docker-containerized and managed in a Kubernetes cluster.

high-level architecture @ finstack.app

Remember our main objective was to create the best possible user experience, so performance of our APIs were instrumental and we found the simplest and most effective way to get there by using GraphQL between frontend and API gateway and gRPC as transport technology between the services. This setup allows a highly efficient communication and data transport between the layers with minimal payloads + overheads and enables a great level of simplification and standardization on the API layer which also allows to delegate query definition to the frontend.

To give some more details on the technology choices — the gateway and services are based on NodeJs. We are using PostgreSQL as database and database connectivity was a mixture between the regular postgres drivers and Sequelize as ORM, which we also used to bootstrap, standardize and manage our data model. Identity access management is based on Keycloak, we use nginx for routing and load balancing, and DevOps is done through GitLab. All of these technology choices have in common that they’re open-source and with the right skill set can be used for free and provide an enterprise level of quality.

Data Management

We’re managing about 1.5 billion records just alone for market data related to >40K public companies on finstack, so one of the fundamental challenges was query performance. To be frank, we didn’t expect how great vanilla PostgreSQL was, as we felt the need to experiment with different products optimized for big timeseries data sets. We don’t need any of these, PostgreSQL is just enough and with proper indexing it place and with use of window functions it performs in the ranges of milliseconds on big datasets like our minute candle data with hundreds of millions of records in a single table — on a pretty average bare metal. For more expensive operations we’re using materialized views to provide the results of complex data aggregations to the frontend layer, for instance for our search, screening and benchmarking capabilities. Overall, if you need an enterprise-level database product — PostgreSQL and that’s it 🤩.

DevOps, service scalability and multi cloud

As of today, we’re running finstack.app on just a few pretty average bare-metal servers. We installed them from the scratch and setup host abstraction via Linux Containers to enable the right level of isolation and granularity for the products we needed. The majority of virtualized machines gets used by our Kubernetes cluster, which is used to provision our Frontend-, API-, and Services-layers and as you would expect from K8S, the options to scale our services provide the right level of flexibility we needed to accommodate user growth also in future and it enables multi cloud compatibility. Our short-term plan for this year is to use multiple IaaS providers to run our infrastructure for even higher availability, but eventually we may also deploy dedicated services in any of the public clouds if price/performance is in good balance.

This setup also provided the highest possible level of automation on DevOps — using GitLabs built-in pipelines, any commit to our development branch on any of our projects gets auto-built and deployed to our development environment and we’re able to maintain average build times of a few minutes. This setup has turned out to be the highest standard, with highest efficiency and throughput I have ever seen — it’s really a dream of a developer experience, which obviously also helped to reduce unnecessary stress and stay on the sunny ☀️ side when we coded Finstack 😎

Instrumentation & metrics

To start and run a SaaS business, the right level of instrumentation that produces the financial KPIs and insights on your user base are essential to measure where you are, how you progress and optimize on product-market fit. Also here, we are not using any external service offering to do that, instead we baked custom API monitoring and UI events into our Frontend- and API-layers. This capability enables us to comprehend any action taken by a user on the frontend within the context of their complete journey through the digital experience, while ensuring compliance with relevant regulations. We developed internal dashboards that visualize the outcomes in realtime — for instance a funnel of the various user conversion stages, going from Guests, Returning Guests, Activated Guests, Registered Users, Activated Users to Paying Users. We also created a few dashboards that show the use of the various finstack capabilities, which helps to prioritize and concentrate on improvements on the most relevant features first.

Operational cost efficiency

Besides our focus on user experience, operational costs efficiency was the other highest priority — and by that I mean minimize until it hurts. We planned from the very first day to grow as we go, on our own pace, without over-expanding our private financial strength — even if it means we grow slower than we could. Our primary focus remains on minimizing costs by keeping almost all essential technologies in-house and under our complete control, with only a small number of critical service- and data- subscriptions. This approach enables us to maintain a remarkably low burn-rate of less than $200 per month for the entire enterprise at this time (we’re obviously not counting our time against this).

As a result, we are in the fortunate situation to not require Venture Capital, herewith we can stay completely independent and do what is right for our user community. For instance, we can offer a generous free plan right from the beginning and we can deliver exceptional value to our community. Furthermore, we do not require, nor do we intend to utilize ads on any of our pages. We seriously believe that flooding users with excessive ads, as most other financial market offerings do, is a major mistake, and we are deeply committed to rectifying this attitude.

Final thoughts — Keeping passion and motivation

We certainly went through a fun but also challenging time. Two smart guys, with a lot of passion, strong opinions on many topics, a lot of deep business and technical skills, with sometimes different assumptions, perspectives and priorities. Co-Founding a startup may seem to many like one of the best times you may have in your life, and maybe in retro-perspective it will be. As we went through though, we sweat, tried to find the right balance between our regular jobs, private life and this side hustle (if you wanna call it like that) and we tried to stay motivated and keep the focus on relentless execution.

Photo by Clark Tibbs on Unsplash

The blunt reality is, we’ve had tough challenges on pretty much any flank you could think of — sometimes endless debates about details, who’s making the call, who contributes more, how do we stay connected, how do we synchronize expectations, -timing, -throughput, who owns and touches what, how the heck can we stay calm, remain patient and at the same time keep the foot on the pedal ?

Our MVP definition felt like it took forever — so many ideas, so much feedback, so many options — very little time. When I look back, we’ve always been on the edge to be exhausted and burn out. Quite often I pushed so much and with all the other priorities in life and our regular jobs it felt like we don’t move the needle — frustrating… I remember at least three occasions where one of us was seriously just a millimeter far away from cancelling and running away. Oh, did I mention the full data loss that happened because I made a stupid mistake in an unconcentrated moment? We also had to take multiple weeks of full breaks to recover in between and get back on track.

When the launch date came closer, things did clear up a bit — we’ve been confident to have a great product, not just a MVP — it was far more than that, but still we’ve seen gaps pretty much anywhere. Accepting “good-enough” we’ve never been super good at, but this time we finally developed the courage to leave a gap instead of shooting for perfection. We finally felt confident enough to anticipate success and yet we didn’t try to force it. No big celebration, instead we went into xmas holidays with our families and recovered. It took easily two weeks to realize that did it and finally some pride and big smiles on our faces emerged.

I claim this is different to many other stories you may hear about Starting up — yes, we can confirm it’s pretty darn hard. Different though is that we set it up for relaxed continuation. We have no financial pressure, we have time, we don’t have to rush and we can listen to our community carefully and that sets finstack apart since we can focus on the one thing that really matters :

To create value for our users

Come and join us for free at finstack.app and I’d love to read your feedback here in the comments.

Thank you

--

--

Entrepreneur & Chief Architect at IBM, Personal Investor & Writer about entrepreneurship, finance, and technology. I am here to help you succeed.