A Closer Look at the Technology
The About page introduces RSocial's stack in four parts — a modern interface, open "natural language" data storage, layered security, and real-time updates. This page goes a level deeper into each one; open any section below for the technical detail.
Read more — the interface
RSocial's front end is a modern web app, so there's nothing to install — you reach it from a browser on any device. It adapts to phones, tablets, and desktops, offers both dark and light modes, supports drag-and-drop uploads for photos and videos, and ships in English and Dutch. Because it's a web app talking to your own instance, the same interface works whether you're at home on the same network or connecting to your device from elsewhere.
Under the hood, the interface is a single-page application: it loads once, then talks to your instance in the background and updates the parts of the page that change, rather than reloading whole pages. It's built with a modern component framework and reaches the backend through one gateway address, so the app doesn't need to know how many services sit behind it. That architecture is also part of why it's safe by default — the framework escapes user content as it renders, and the app holds your session in a token it attaches to requests deliberately rather than in an ambient cookie. Being "just a web app" is what lets a full social network run on a Raspberry Pi and still feel quick on your phone.
Read more — how your data is actually stored
In short: the phrase "natural language data" points to a real technical choice — your posts, comments, and likes are stored as RDF (open, standard subject–relationship–object statements) in a graph store, while account and media details live in SQLite. Both are open formats, which is exactly what makes your data portable. To avoid repeating it, the full breakdown — the vocabulary, example SPARQL queries, named graphs, and why none of it locks you in — lives on Your Data & Ownership, which is the canonical explanation of how your data is stored.
Read more — the layers of protection
Security in RSocial isn't a single wall but several working together: encrypted, tamper-checked backups; passwords stored only as irreversible hashes; short-lived, signed login sessions; encrypted connections via TLS; and permissions enforced on the server so restricted actions stay restricted. Each layer is explained in plain language, with the deep detail a click away, throughout the Security section.
The reason it's described as "layered" is that no single control is asked to do everything. If one layer were somehow bypassed, others still stand: even if someone reached the database, passwords are only irreversible hashes; even if they grabbed a login token, it expires in minutes and can be revoked; even if they intercepted the connection, TLS leaves them with scrambled bytes; even if they got hold of a backup, it's sealed with authenticated encryption. Security professionals call this "defence in depth," and it's a deliberate design choice rather than a marketing phrase — each of those layers has its own dedicated page under Security if you want to see exactly how it works.
Read more — why it feels live
Comments, likes, and activity show up the moment they happen, without you refreshing the page, and stay in sync if you're signed in on more than one device. That real-time feel is part of what makes RSocial feel like a proper social network rather than a static personal site — all while running on hardware small enough to sit on a shelf.
The way it works is that the app keeps a live connection open to your instance instead of asking "anything new?" over and over. When something happens — a like, a comment, a new post — the server pushes that update down the open connection, and the interface slots it into the page immediately. That's far lighter on a small device than constant polling would be, and it's what keeps multiple devices in sync: sign in on your phone and your laptop, and an action on one shows up on the other within moments, because both are listening on the same live channel to the same instance.