I would interested in hearing examples of software that is a breeze to self host and terrible to self host. And most importantly, why? What can software devs do to make something a breeze? And what should they avoid? Thanks.
> I'm sure there are commercial (not even paid necessarily) apps that do all this, but this one is used only by us and it's built to perfectly interact with our lives
There is another factor you may not be aware of: shopping apps are juicy targets for acquisition by marketing/data mining company. I mean, there is no clearer indication of what you want to buy than what you put in your shopping list, so it's perfect source of data to mine.
Out of milk is such an example: it was a good app with 5 million users, then it got sold. Users became the subjects of data mining, or their account got deleted (if in Europe). Fun!
I'm hoping PWAs continue to get better so that app stores aren't the only way of having an app-like experience. App stores just aren't designed for this kind of use case, and hurdles like "We're dropping your app bc you only have 4 users"* take the joy out of home-coding.
* fictional quote but it wouldn't shock me if it became real
> The isolation aspect was interesting in the days before Firecracker...
I don't think Firecracker's existence makes WASM's isolation uninteresting. First, I think you are looking at way more resources running a full VM (even a "micro" VM) compared to a WASM runtime. I think startup times are not comparable either, so if that matters you'll find WASM to be the way to go.
Second, WASM's capability-based security model is wonderful for giving the untrusted code the things it needs to work with. With a VM, you have to stitch together with shared directories, virtual eth bridges or, linux capabilities, maybe some cgroups, and who knows what else. (Granted you may need to do some of that with WASM too, but less so).
Are you willing to talk a bit about how Deno Deploy works internally? I think you have an internal build of Deno that can run multiple isolates (unlike the CLI, which basically runs one). How do you limit the the blast radius in case of a vuln in Deno?
Kenton Varda did a pretty great writeup on CF worker security [0]. Would love to see Deno Deploy do something similar.
The "any language" advantage of WASM is theoretical. Each language is at a different level of support of WASM, libraries aren't all caught up and at the same point for all languages, etc...
I love the promise of WASM, but every time I look at it I get lost in a sea of acronyms, and my optimistic ideas of using language X with library Y on runtime Z are dashed because there is some missing piece somewhere.
If anything, the "any language" thing creates a giant matrix of potential pitfalls for the programmer.
In comparison, the combination of JS/TS, the browser API and a solid std lib looks pretty good for some problems.
Edge functions are typically run intermittently, with their runtime stopped to free up resources between runs. Therefore a big factor is startup and shutdown speed. Containers are pretty bad there. Deno is better, and WASM is unbeatable, especially with things like Wizer[0].
It's not just technical and marketing, it's legal too. And this article references emails from tesla legal team. So legal is telling dmv that it's L2 so it doesn't have to get permits, but that doesn't mean the tech isn't destined to be L3 when it's fully developed and they are ready to submit themselves to regulatory scrutiny.
Dang. It's really hard to put something online that lets anybody be creative without someone coming in, using to do bad things, and getting the whole site blocked by google.
I guess nothing is going to change too since this conveniently serves to entrench the big platforms.
> For that you'd have to open up network and file access pretty much right off the bat.
For the network access I have an issue[0] open that asks to separate permissions to listen on the network from permission to dial. Also, along the way I want to have the ability to let the OS pick the port as an option.
Permissions are meant to work by whitelisting. So you wouldn't open access to the whole system just to talk to your DB, or to operate on some files.
I wish it would show the number of tests. That metric is so important to understand why the number of cases move sometimes. I'm not sure if the original data source[1] includes this or not.