[...] a massively decentralized Internet, consisting of a huge number of small communities, requires database management systems that are built from the ground up for the purpose.

The systems available today are built to support massive, centralized, owned datasets, at immense complexity and cost, with intentions that go against the principles of a free and open Internet.

#asmalldbms

@chrisg I run plenty of mysql instances, including on a Raspberry Pi for development. If used on a small scale it just works and requires no management.

Android has SQLITE built in - that is what holds your text messages - and that just works too.

What do we need to fix specifically?

@mike805
The problem i am identifying is not technical, but political. It's about what are the intentions behind the infrastructure we develop, and my position is that we need to encourage a new wave of free software built specifically against centralization.

So yeah, we have the tech today to build small sites. SQLite is an excellent example of that. What we need is a widespread, explicit movement against big tech.

Shout out to @aral and @laura who (AFAIK) spoke about this idea first.

@chrisg ๐Ÿ’•

(And itโ€™s interesting that one of the first things I found I had to build was the simple in-process database in Kitten, JSDB. We need simpler tools, designed for one person โ€“ not for corporations to farm people โ€“ across the whole stack.)

@mike805 @laura

@aral
Why couldnโ€™t you use SQLite? It seems to be a simple, free, reliable database.

@chrisg @mike805 @laura

@railmeat Technically SQLite works fine. But the point i'm raising is political, not technical. We need software built from the ground up to support a decentralized internet, and that includes, for example, licensing that supports that goal.

@chrisg
I support the goal of an easy to use decentralized internet.

What problem is there with the SQLite licensing?

@railmeat I could have. But the ergonomics of a native, in-memory, append-only transition log fit my use case better and mean I can simplify the authoring and deployment of Small Web places.

Iโ€™m trying to get having your own place on the Small Web down to a 30 second process that requires zero technical knowledge to setup/maintain so every component thatโ€™s fully under my control and optimised for my needs helps. Complexity happens; simplicity you have to strive for :)

@chrisg @mike805 @laura

@aral
Aral, I think your goal is great. I have been following you and Laura for a while.

I usually prefer software that is already in production. Writing or re-writing everything yourself is a lot of work and create an ongoing maintenance burden.

@chrisg @mike805 @laura

@chrisg @aral @laura I've written a few projects based on "I don't like the way things are done so I am going to write a way I like the politics of" and while they worked technically, I couldn't get people to use them. Lesson learned. Now working on a project that will be just useful.

@mike805

Absolutely. I am not under any illusion that people will jump on a standalone piece of software just because of the morals it supports.

But a free, decentralized, anti capitalist software movement requires a lot of effort and moving pieces. And if we don't put in the work, then it will definitely not happen.

So i want to try, even if the odds are massively against me. At least i am having fun while doing it ๐Ÿ™‚

@aral @laura

@chrisg @aral @laura Sounds interesting. I am doing some Android dev now, and web projects, using nodejs in both cases. What are you working on?

It seems like the piracy ecosystem is the most successful and extensive software system with explicit anticapitalist goals.

It's really amazing that a lot of people are willing to work for free and at personal risk when they cannot even claim credit under their real names.

What are they doing right? Why does that work so well?

@chrisg Exactly. The goal must be that someone would use what you make because it is functional, usable, and maybe even delightful. Not because of its ethics. If we donโ€™t design for that, weโ€™ve already lost.

To put it another way, our ethics must include making sure that the experiences people have when using what we make are good ones. It all comes down to respect: for human rights, effort, and experience.

See:

- https://ind.ie/ethical-design/
- https://small-tech.org/about/#small-technology

@mike805 @laura

Ind.ie โ€” Ethical Design Manifesto

@chrisg @mike805 @aral Veilid framework project https://veilid.com/ from cDc has good goals. It should be available for developers in a few months.

"Veilid allows anyone to build a distributed, private app. Veilid will give users the privacy to opt out of data collection, and online tracking."

Launch party will be at Defcon 31:
https://cultdeadcow.com/news/veilidparty20230622.html

Veilid

Veilid is an open-source, distributed application framework.

Veilid

@chrisg @mike805 @aral @laura

This is what #OMN #4opens etc are about, we are far into mess on this subject.

@witchescauldron

Apologies, but i don't know what 4opens or OMN are.

@mike805 @aral @laura

jsdb

A zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to a JavaScript transaction log.

Codeberg.org
@chrisg When developing LibreServer I encountered this a lot. Most internet systems and databases are designed for "massive massive" scale. They are not designed to be administered efficiently on a system with ten or fewer users. So they're incredibly complex and top heavy.

In almost all cases the best systems for self-hosting do not have a database. They just save directly to files, which can then be easily copied to different locations as needed. You can use a bit of memory buffering to speed things along, such that I/O bandwidth isn't always a hard constraint. That's what I did with #Epicyon. No database means no catastrophic failures due to database corruption, no assumptions about infinite storage space, and removes a large amount of complexity.