Inside Open Source #3
All things Open Source: Interesting reads, startup news, trivia and views from Europe
Welcome to issue #3 of the Inside Open Source Newsletter
Every month I write about interesting developments in the European Open Source ecosystem and related topics that I come across. Check out the April issue below and subscribe if you like :)
This month’s topics:
📊Commercial Open Source Software Company Index
💰European funding rounds
👩💻JAMstack —> Future of web development?
💡Thoughts from the Inside
“Most computer programmers begin their careers doing software maintenance, and many never do anything but.”
Nathan Ensmenger - Professor of Informatics and Computing at Indiana University (source)
📊COSSI: Commercial Open Source Software Company Index for $100M+ revenue companies
Ever wondered what the biggest Open Source Software companies are? Well, I did and I could not find a comprehensive overview until I recently came across Joseph Jack’s COSSI: Commercial Open Source Software Company Index for $100M+ revenue companies.
COSS Definition:
If a company fundamentally depends on a largely singular Open-Source core technology to justify its existence.
Via this link, you can see all Commercial Open Source companies with more than $100M revenue: https://docs.google.com/spreadsheets/d/17nKMpi_Dh5slCqzLSFBoWMxNvWiwt2R-t4e_l7LPLhU/edit#gid=0
💰European Funding Rounds
Aiven - 100M Series C (Finland)
Management of open-source data infrastructure in the cloud
Investors: Atomico, Salesforce Ventures, IVP, Earlybird
Gitpod - 13M Series A (Germany)
Developer platform for automating the provisioning of ready-to-code development environments
Investors: General Catalyst, Vertex Ventures, Speedinvest, Crane Venture Partners
Camunda - 82M Series B (Germany)
Business process automation platform
Investors: Insight Partners, Highland Europe
Soda - 12M Series A (Belgium)
Data monitoring platform
Investors: Singular, Point Nine Capital, Hummingbird Ventures
TerminusDB - 3.6M Seed (Ireland)
In-memory graph database management system
Investors: Volta Ventures, Enterprise Ireland, Acequia Capital
Saleor - 2.5M Seed (Poland)
headless e-commerce platform
Investors: Cherry Ventures, CEO of Vercel, former CMO of Contentful, CO-Founder of Lookout
Nhost - 3M Seed (Sweden)
serverless backend for web and mobile applications
Investors: Nauta Capital, Antler and Angel Investors
👩💻JAMstack
In the last couple of weeks, I looked at some dev tools for web developers and one buzzword frequently emerged: JAMstack. So I made a deep dive to understand what's behind this mysterious new (for me at least) architecture. Here is what I learned:
What is JAMstack?
Matt Biilmann took the concept of JAMstack mainstream with his presentation at Smashing Conf 2016. The name "JAMstack" came about because as Matt Biilmann and Chris Bach were creating modern web development workflows and capabilities at Netlify, they found there was no easy way to refer to the architectural approach in conversation.
JAMstack basically describes a modern web development architecture that is based on the combination of client-side JavaScript, reusable APIs, and prebuilt Markup.
JavaScript—Any dynamic programming is handled by client-side JavaScript. This could be any frontend framework, library, or even vanilla JavaScript (e.g. React, Vue, Angular, etc.)
Reusable APIs—Any complex business logic such as user databases and content management are processed server-side and served as APIs to the frontend
Markup—The HTML markup is prebuilt at deploy
The general idea behind JAMstack is to pre-generate HTML files, deploy them to a CDN and then enrich these statically generated pages with dynamic content fetched from APIs.
Although this appears focused on the technology stack, the underlying core principles behind this web development architecture are the driving force behind the rise of JAMstack.
The central element of the JAMstack is the pre-rendering of the markup during the build process. The code is versioned and managed in a central location, usually with Git, and built from there. The final built files are usually deployed to a content distribution network (CDN). The global distribution to different servers and the pages pre-rendered during the build improves the performance significantly. With the markup and other user interface assets of Jamstack sites served directly from a CDN, they can be delivered very quickly and securely. In particular, the key figure "time to interactive", i.e. the time until the user can interact with the page, decreases. This can not only influence the extent to which the user stays on the page, but also affects search engine rankings.
On this foundation, JAMstack sites can use JavaScript and APIs to talk to backend services, allowing experiences to be enhanced and personalized. A JAMstack application does not have a central, large server on which the entire backend runs and on which the architecture of the frontend is also dependent. Rather, many independent but self-contained APIs are used. Some of these are commercial APIs that offer services such as user administration, payment processing, or even weather data. Other APIs are so-called serverless functions; API endpoints that fulfill exactly one function. This specialization results in very small, easily maintainable modules that are often paid for per execution and are therefore usually cheaper than running everything in a large server application. And the clean decoupling of these services allows for greater portability and flexibility, as well as significantly reduced risk.
It is also important to know that the JAMstack frontend framework is agnostic: whether vanilla JavaScript, React, Angular, Vue, or a more exotic framework, anything is possible. Any dynamic features that require data through a request/response cycle are done by javascript that is running 100% on the client.
Benefits of JAMstack
Performance
The most important advantage: The pages load noticeably faster. By delivering small, pre-rendered files directly from the CDN, the page can be displayed very quickly by the client while the dynamic data is reloaded at the same time. Most of the display effort is shifted to the build time.
Simplicity
With the help of so-called static site generators such as Jekyll or Gatsby, the development effort for many scenarios with ready-made components and already integrated API services is reduced immensely. In addition, there are frameworks for various front-end technologies that can now also generate static pages (e.g. Next.js for React or Nuxt.js for Vue). Many of the hosting providers also allow direct integration with various technologies, with which a page can be created and deployed within minutes. If custom APIs are still needed, they are quickly realized using Serverless Functions, independent of other components of the application, and thus easy to develop or replace. In some platforms, a content management system (CMS) is integrated for easy updating of the page content without knowledge of the technology. These are also headless, i.e. without their own server in the background, but only a frontend for the underlying version management.
Scalability
By avoiding one or more monoliths in the backend and splitting it into different, modular and independent APIs, the whole application becomes much more scalable. External APIs should normally already be developed in a scalable manner by the provider. Internal APIs as serverless functions can usually be scaled automatically. Since the main effort in the frontend comes from the build (or the client), performance in the JAMStack is much less dependent on the number of calls than in other types of frontend development. At the same time, any load peaks that may arise can be absorbed well by using CDNs.
Cost
Since most components (APIs) are billed on-demand, it is no longer necessary to pay for the infrastructure for individual load peaks. In most cases, where load peaks previously determined the cost of the overall infrastructure, costs can be significantly reduced.
Security
The JAMstack removes multiple moving parts and systems from the hosting infrastructure resulting in fewer servers and systems to harden against attack. Meanwhile dynamic tools and services can be provided by vendors with teams dedicated to securing their specific systems and providing high levels of service.
JAMstack Ecosystem
Take a look at Astasia Myers ecosystem overview below to get a nice overview of the companies operating and fueling the JAMstack universe:
Sources:
https://medium.com/memory-leak/the-jamstack-its-pretty-sweet-e0834e4e6bb7
https://jamstack.org/
https://snipcart.com/blog/jamstack
https://www.prisma.io/blog/jamstack-with-nextjs-prisma-jamstackN3XT#the-server-client-spectrum
https://jamstack.wtf/