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
A minimal, fast, JSON-LD native Solid server.
Architecture
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 —
.aclfile-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:nostrkeys (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
- remoteStorage — draft-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 CLI —
jss passwdfor 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 --nostrCreating 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 --gitCLI 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 passwordsKey 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 testMaintainers
JSS is maintained by @melvincarvalho and @jjohare. See MAINTAINERS.md.
License
Licensed under AGPL-3.0. Commercial licensing also available — see LICENSING.md.