daffl
Especially in combination with content addressed file systems like IPFS (which gives you additional features like built-in checksums, immutability, de-duplication and storage resilience) you can have a Deno instance running and as the deployment step simply send it a file hash or URL to execute (of course with the appropriate security precautions like a signature or encryption on top). I built a prototype to see how it could work and a full Deno app deployment to my own VPS took less than 2 seconds. No git pushes, no container build pipelines, no proprietary cloud services.
I'm just not sure if this is something all open source projects - many of which don't have a lot of resources available - can handle. The very large open projects that already have a lot of contributors that can put in the additional time are definitely at an advantage here.
In my experience it unfortunately often hasn't been a net benefit for the projects I worked on. A "good first issues" takes up a lot of time to write and often never get addressed at all or it takes even more time to review and give feedback ultimately causing more work than addressing it directly since most "first issue" contributors do not come back to contribute again.
GitHub has done a lot to streamline the process of contributing to an open source project. I think what is still missing (or I don't know about) is an overall resource where you can learn about open source best practises (or just "Best Practises" since you should be using them everywhere) like writing tests, writing good docs, using conventional commits etc. outside of individual projects - and then in addition to the "Good first issue" label also indicate which one of those best practises apply to that issue, e.g. "This is a good first issue if you know about NodeJS, Mocha tests and Markdown".
The design is taken from the Chat guide for https://feathersjs.com. Feathers is a JS library that allows to architect APIs in a way that they are protocol independent. Which worked great in this case because I just had to swap out the existing REST/websocket Feathers adapter for a DAT/Beaker API Feathers adapter.
What I realized is that this technology ticks a lot of the boxes of what we right now think only the big cloud providers can do. By using a more decentralized protocol it is by design
- Actually Serverless
- Offline-first
- Real-time
- Auto-deploying
- Live-updating
- 100% uptime
I really think there is something there from both, a developer and user experience perspective. The problem is that a lot of it is still very experimental and far from the usability and maturity of e.g. a Firebase or Heroku.
This is a very good question. We're definitely planning on adding a section about performance and scaling to the documentation very soon.
Feathers 2.0 – a minimalist real-time JavaScript framework
I think part of it is a philosophy difference. If you want a one-stop solution you will very likely always end up more locked in and might be happy with Meteor. But, as cool and advanced as the technology is, eventually investors do want a return on their investment and it is really hard to do that without compromising the identity of an open source project. With so much cash in the bank it is also easy to become over-ambitious instead of focussing on doing one thing well. That is tricky in a field that is changing as quickly as web development. The more you add to the project and the more you try to do yourself the harder it will be to react to the ever-changing landscape and you can see that with the challenges of the Meteor package system.
We wanted to explore an approach that doesn't hide complexity by adding more and then putting some generators and configuration files in front of it to be able to say "look it's super easy". The Node ecosystem thrives on tiny modules that do one thing well and Feathers - as a very small extension to Express - does exactly that: Providing a pattern that allows you to create REST and real-time APIs without trying to tell you how to do everything else.