Skip to content

solid-social/timeline

 
 

Repository files navigation

Solid Timeline

A decentralized Facebook-style social feed where you own your data

Live Demo License Solid

Live Demo | Solid Project


What is this?

Solid Timeline is a Facebook-style social feed built on Solid - Tim Berners-Lee's project to re-decentralize the web. Your posts, likes, and comments are stored on your Solid pod, not a corporate server.

Your Data → Your Pod → Your Control

Features

  • Decentralized - Posts stored on your Solid pod, not our servers
  • Facebook-style UI - Familiar feed with posts, likes, and comments
  • No build step - Pure HTML/JS, just open and use
  • Solid OIDC auth - Login with any Solid identity provider
  • Real RDF data - Uses SIOC vocabulary for semantic interoperability
  • Works offline - Static files, host anywhere

Quick Start

Use it now

  1. Go to solid-social.github.io/timeline
  2. Click Login and enter your Solid IDP (e.g., solidweb.org)
  3. Start posting!

Self-host

# Clone and serve
git clone https://github.com/solid-social/timeline.git
cd timeline
npx serve .
# Open http://localhost:3000

No npm install. No build. Just files.

How It Works

Architecture

┌─────────────────┐     ┌─────────────────┐
│   Your Browser  │────▶│   Your Pod      │
│                 │     │                 │
│  Solid Timeline │     │  /public/       │
│  (static HTML)  │     │    timeline/    │
│                 │     │      2024-01-03.ttl
└─────────────────┘     └─────────────────┘
        │
        ▼
┌─────────────────┐
│  Solid IDP      │
│  (auth only)    │
└─────────────────┘

Data Storage

Posts are stored as RDF in daily files on your pod:

https://you.solidweb.org/public/timeline/
├── 2024-01-01.ttl
├── 2024-01-02.ttl
└── 2024-01-03.ttl   ← Today's posts

Data Format

Posts use the SIOC vocabulary:

@prefix sioc: <http://rdfs.org/sioc/ns#>.
@prefix dct: <http://purl.org/dc/terms/>.

<#post-1704307200000> a sioc:Post ;
    sioc:content "Hello, decentralized world!" ;
    dct:created "2024-01-03T12:00:00Z"^^xsd:dateTime ;
    dct:creator <https://you.solidweb.org/profile/card#me> .

This means your posts are:

  • Portable - Move to any Solid pod
  • Interoperable - Other apps can read them
  • Queryable - Use SPARQL to search
  • Yours - Delete anytime, no trace left behind

Tech Stack

Layer Technology
UI Preact + htm
Auth solid-oidc
RDF rdflib.js
Build None (ESM imports from esm.sh)

Zero build step. Everything loads from CDN via ES modules.

Configuration

The app auto-discovers your timeline from your WebID profile:

  1. Looks for solid:timeline predicate
  2. Falls back to {pim:storage}/public/timeline/

To set a custom location, add to your WebID:

<#me> <http://www.w3.org/ns/solid/terms#timeline>
      <https://you.pod/custom/timeline/> .

Get a Solid Pod

Don't have a pod? Get one free:

Contributing

PRs welcome! Some ideas:

  • Image/media uploads
  • Real-time updates via WebSocket
  • Following other timelines
  • End-to-end encryption
  • Mobile PWA

Related Projects

License

MIT - Do whatever you want.


Your data. Your pod. Your timeline.

Releases

No releases published

Packages

No packages published

Languages

  • HTML 54.6%
  • JavaScript 39.2%
  • CSS 6.0%
  • Shell 0.2%