Okay, maybe not the last one, but I'm working on a prototype of the "idiomatic" OpenAPI schema generator.
I wasn't happy with the well-known options:
swaggo requires magic comments that I cannot take.
goa introduces custom DSL and forces you to either use it's generated structures or continuously hook in your own structures, trying to match those in sync.
I decided to give a try for my own vision and this project was born. It is currently at the PoC stage, but I plan to use it for my other tiny startup (it's live, but runs on the MVP version with React Server Actions under the hood).
This is the tool I am developing for myself, but it already handles some production workloads for my other projects. It runs on top of Docker Swarm, so there are no issues running hundreds of services on hundreds of nodes.
The link you gave is to the Functional Source License. Did you mean to use a different link? If you were referring to the Functional Source License, it's worth noting that it is explicitly not open source.
However, it solves problems the author mentions in his article: you can freely contribute and use the software as you wish, just don't create a competitive company using the recent versions of the sources.
And in 2 years the code becomes true OSS - either MIT or Apache 2.0 (or anything else you want - the FSL itself is pretty short so you can easily adjust it to your needs without spending hours on lawyer consultations).
BTW, the FSL is driven by Sentry, and they have created an org to cover the fair usage licensing: https://fair.io (that's why I have mistyped the FSL name in the original comment).
This is the core part of FSL-1.1-Apache-2.0. For MIT it is the same, just the "Grant of Future License" paragraph mentions the corresponding license.
---
License Grant
Subject to your compliance with this License Grant and the Patents, Redistribution and Trademark clauses below, we hereby grant you the right to use, copy, modify, create derivative works, publicly perform, publicly display and redistribute the Software for any Permitted Purpose identified below.
Permitted Purpose
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use means making the Software available to others in a commercial product or service that:
substitutes for the Software;
substitutes for any other product or service we offer using the Software that exists as of the date we make the Software available; or
offers the same or substantially similar functionality as the Software.
Permitted Purposes specifically include using the Software:
for your internal use and access;
for non-commercial education;
for non-commercial research; and
in connection with professional services that you provide to a licensee using the Software in accordance with these Terms and Conditions.
It's worth noting that using the name "Apache" in the license FSL-1.1-Apache-2.0 is opposed by the ASF. That's not to say they're opposed to the license as a whole, but in general, the position of the ASF is that using "Apache" in any other license is not permissible.
Who are your target audience? There are so many components in this system, so it would require a dev-ops team member just to keep it healthy.
What are the advantages over the (free) managed k8s provided by DigitalOcean?
---
Gosh, I'm so happy I was able to jump of the k8s hype train. This is not something SMBs should be using. Now I happily manage my fleet of services without large infra overhead via my own paas over Docker Swarm. :)
> What are the advantages over the (free) managed k8s provided by DigitalOcean?
You can run the platform on top of any Kubernetes deployment. So you can run it on top of DigitalOcean kubernetes if you wish. But you'll get more bang for the buck using Hetzner dedicated servers.
It is a fair source (future Apache 2.0 License) PaaS. I provide a cloud option if you want to manage less and get extra features (soon - included backup space, uptime monitoring from multiple locations, etc) and, of course, you are free to self-host it for free and without any limitations by using a single installation script. ;)
> Gosh, I'm so happy I was able to jump of the k8s hype train. This is not something SMBs should be using. Now I happily manage my fleet of services without large infra overhead via my own paas over Docker Swarm. :)
I mean, I also use Docker Swarm and it's pretty good, especially with Portainer.
To me, the logical order of tools goes with scale a bit like this: Docker Compose --> Docker Swarm --> Hashicorp Nomad / Kubernetes
(with maybe Podman variety of tools where needed)
I've yet to see a company that really needs the latter group of options, but maybe that's because I work in a country that's on the smaller side of things.
All that being said, however, both Nomad and some K8s distributions like K3s https://k3s.io/ can be a fairly okay experience nowadays. It's just that it's also easy to end up with more complexity than you need. I wonder if it's going to be the meme about going full circle and me eventually just using shared hosting with PHP or something again, though so far containers feel like the "right" choice for shipping things reasonably quickly, while being in control of how resources are distributed.
While k3s make k8s easier for sure, it still comes with lots of complexity on board just because it is k8s. :)
Nowaday I prefer simple tooling over "flexible" for my needs.
Enterprises, however, should stick to k8s-alike solutions, as there are just too many variables everywhere: starting from security, and ending the software architecture itself.
Okay, maybe not the last one, but I'm working on a prototype of the "idiomatic" OpenAPI schema generator.
I wasn't happy with the well-known options:
swaggo requires magic comments that I cannot take.
goa introduces custom DSL and forces you to either use it's generated structures or continuously hook in your own structures, trying to match those in sync.
I decided to give a try for my own vision and this project was born. It is currently at the PoC stage, but I plan to use it for my other tiny startup (it's live, but runs on the MVP version with React Server Actions under the hood).
Please let me know what you think!