JSPM

  • Created
  • Published
  • Downloads 733
  • Score
    100M100P100Q110608F
  • License AGPL-3.0-only

A minimal, fast Solid server

Package Exports

  • javascript-solid-server
  • javascript-solid-server/src/index.js
  • javascript-solid-server/src/server.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (javascript-solid-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

JavaScript Solid Server

npm version

A minimal, fast, JSON-LD native Solid server.

Documentation | GitHub

Architecture

JSS Architecture Diagram

Features

  • LDP CRUD — GET, PUT, POST, DELETE, HEAD, PATCH (N3 + SPARQL Update)
  • JSON-LD Native — Stores and serves JSON-LD by default, Turtle via --conneg
  • Web Access Control.acl file-based authorization
  • Solid-OIDC — Built-in Identity Provider with DPoP, passkeys, Schnorr SSO
  • WebSocket Notifications — Real-time updates (solid-0.1 protocol)
  • Content Negotiation — Turtle ↔ JSON-LD conversion (optional)
  • Multi-user Pods — Path-based (/alice/) or subdomain-based (alice.example.com)
  • Single-User Mode — Personal pod server with --single-user
  • Git HTTP Backend — Clone and push to pod containers
  • Nostr Relay — Integrated NIP-01 relay (wss://your.pod/relay)
  • Nostr Auth — NIP-98 signatures, did:nostr → WebID resolution
  • End-to-End Encryption — Encrypt pod content client-side via NIP-44 / NIP-04 using did:nostr keys (docs, zero server-side changes)
  • LWS / CID v1 profile shape — New pod profiles are structurally W3C Controlled Identifier documents, ready for LWS 1.0 auth (docs)
  • ActivityPub — Fediverse federation with Mastodon-compatible API
  • remoteStoragedraft-dejong-remotestorage-22 file sync
  • MongoDB Storage — Optional /db/ route for JSON-LD at scale
  • WebRTC Signaling — Peer-to-peer connections via WebID-authenticated signaling
  • Tunnel Proxy — Decentralized ngrok through your pod
  • Terminal — WebSocket shell access via --terminal
  • Password CLIjss passwd for user password management
  • MCP Server — Expose the pod as a tool surface for agents (Claude Desktop, Cursor, custom bots) via --mcp (docs)
  • HTTP 402 Payments — Monetize endpoints with per-request sat payments
  • Mashlib / SolidOS UI — Optional data browser (CDN, local, or ES module)
  • Storage Quotas — Per-user limits with CLI management
  • Invite-Only Mode — Controlled registration via invite codes
  • SSL/TLS, CORS, Range Requests, Conditional Requests

Quick Start

# Install
npm install -g javascript-solid-server

# Start
jss start

# With common options
jss start --port 8443 --idp --mashlib --conneg --git --nostr

Creating a Pod

curl -X POST http://localhost:4443/.pods \
  -H "Content-Type: application/json" \
  -d '{"name": "alice"}'

Using the Pod

# Read
curl http://localhost:4443/alice/public/

# Write
curl -X PUT http://localhost:4443/alice/public/data.json \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/ld+json" \
  -d '{"@id": "#data", "http://example.org/value": 42}'

Android/Termux

pkg install nodejs git
npm install -g javascript-solid-server
jss start --port 8080 --nostr --git

CLI Reference

jss start [options]    # Start the server
jss init [options]     # Initialize configuration
jss invite <cmd>       # Manage invite codes
jss quota <cmd>        # Manage storage quotas
jss passwd <username>  # Manage user passwords

Key options: --port, --idp, --conneg, --mashlib, --git, --nostr, --mcp, --activitypub, --webrtc, --tunnel, --terminal, --mongo, --pay, --public, --single-user

Full options: docs/configuration.md

Documentation

Topic Link
Configuration & Options docs/configuration.md
Authentication docs/authentication.md
Mashlib / SolidOS UI docs/mashlib.md
WebSocket Notifications docs/notifications.md
Git Support docs/git-support.md
Installing Apps docs/app-install.md
MCP (pod as agent tool surface) docs/mcp.md
Nostr Relay docs/nostr.md
ActivityPub & Mastodon API docs/activitypub.md
remoteStorage docs/remotestorage.md
WebRTC & Tunnel docs/webrtc.md
Terminal & Password CLI docs/terminal.md
MongoDB /db/ Route docs/mongodb.md
HTTP 402 Payments docs/payments.md
Storage Quotas docs/quotas.md
Invite-Only Registration docs/invites.md
Security & Subdomain Mode docs/security.md
Architecture & Structure docs/architecture.md

Comparison

Server Package Packages node_modules
JSS ~1 MB ~191 ~77 MB
CSS ~6 MB ~311 ~152 MB
Pivot ~6 MB ~311+ ~152 MB
NSS ~7 MB ~670 ~539 MB

Performance

Operation Requests/sec Avg Latency p99 Latency
GET resource 5,400+ 1.2ms 3ms
GET container 4,700+ 1.6ms 3ms
PUT (write) 5,700+ 1.1ms 2ms
POST (create) 5,200+ 1.3ms 3ms
OPTIONS 10,000+ 0.4ms 1ms

Running Tests

npm test

Maintainers

JSS is maintained by @melvincarvalho and @jjohare. See MAINTAINERS.md.

License

Licensed under AGPL-3.0. Commercial licensing also available — see LICENSING.md.