Soykaf Blog covers Pleroma, a fediverse server written in Elixir, including ActivityPub, PostgreSQL, and privacy topics.
HN commenters link it as the explainer for what Pleroma is, how it works, and how cheaply it can run.
Your point a) is moot, this is not what this is about. When writing manual SQL nothing stops you from doing `SELECT * FROM persons WHERE age > 'eighteen'` (the `age` field is a number, obviously). Coming from Django I was often bitten by `Person.objects.filter(age__gt=trashhold) # boom!` (note the misspelled variable "threshold") or, if you prefer manual writin SQL: `Person.objects.raw("SELECT * FROM persons WHERE age > {}", trashhold) # boom! as well`. (Admittedly this is unrelated to type safety, just a disadvantage of Python being interpreted, but still something that Haskell/IHP protects me of.)
Regarding b), yes there are good reasons for prepared statements. I won't go into your argument "for scalability" (premature optimization cough) but cached query plans aren't perfect either: data and data typologies change, and so does the optimal query plan. See https://blog.soykaf.com/post/postgresql-elixir-troubles/ for a blog post about Elixir/Phoenix/Ecto users being bitten by that.
> I wonder if the person who wrote this understands SQL to sufficient depth. Not saying either way, just asking.
I did not write the IHP code, just the above comment. But I've read many of CJ Date's books and have a good grasp on the relational model, and of SQL too. I simply don't see things as black/white, there are certain queries where I do prefer prepared statements and functions, or PL/pgSQL even, then there are ones where I use an external .sql file to keep things tidy. But most of…
The owner of each instance pays the costs for hosting a given instance. So, basically, domain + hosting.
Note that these costs can be really low; Pleroma[0] can be run on a Raspberry Pi 3 or a $2.50 Vultr instance[1]
[0] https://pleroma.social/
[1] https://blog.soykaf.com/post/what-is-pleroma/
An older post might help you: https://blog.soykaf.com/post/what-is-pleroma/
Admittedly, this is dated, but is still valid, and should help you get a basic understanding of what pleroma is - including a few screenshots. I hope that helps!
Some background information on ActivityPub in Pleroma:
https://blog.soykaf.com/post/activity-pub-in-pleroma/
https://blog.soykaf.com/post/what-is-pleroma/
Right, benefits include performance gains.
From HN:
https://blog.soykaf.com/post/postgresql-elixir-troubles/
In addition to security.
Pleroma is written in Elixir
https://blog.soykaf.com/post/what-is-pleroma/#less-moving-parts