Why Backend-for-Frontend for Solid is categorically wrong

I wouldn’t go as far as saying that it is “wrong”, because the point of Solid is that it can be used in many ways. But I agree with the sentiment, and I also think that this BFF approach should be minimized as much as possible.

I’ve read through the post, and I get the point. But one of the things I disagree with the most is the one on “Universal reach & accessibility”. If anything, following this pattern would make it less accessible (for one, because it’d be difficult to make alternative clients in the spirit of Bring Your Own Client).

Many of the advantages they point out are also a symptom of bad practices, like this part:

This pattern helps these organizations deploy Solid in a way that better fits their existing technology governance and security policies, and it allows for simpler integrations.

If you need this pattern to fit your existing governance, it’s probably not much in line with the vision of Solid. It reminds me a lot of what happened with the BBC Together+ app, and I already shared my gripes with that.

Though something I can really sympathize with is the need for server-side computing. I agree that something like storage-local compute would be great. Even better, it would be awesome if you could use the POD itself for computation (I raised a similar idea in the spec repo). But with the current state of the spec, this BFF architecture seems to be the best choice to solve that problem. Although I think it should be done as a 3rd party service used to augment the app’s capabilities, rather than making it a requirement for the app to work.

I don’t think this should be a problem if the data is modeled properly. But that’s a big if. I’m not seeing a lot of emphasis on interoperability, so in practice I agree that this type of BFF architecture would result in data being useless without the service.

For me, the line that separates a “real” Solid app from one that is just using Solid underneath is that it lets me store data in my own self-hosted POD. After all, that’s the point of Solid, to chose where to store your data and what to do with it. But this BFF architecture and many of the statements in the post smell to closed PODs.