Skip to main content

Features Overview

JSS is a lightweight, fast Solid server for Node.js. It implements the Solid Protocol with additional features for development, federation, and personal pod hosting.

Current version: 0.0.86

Quick Start

npx servejss

A drop-in alternative to npx serve with REST write support, live reload, and Solid protocol underneath.


Core Solid Protocol

FeatureDescriptionDocs
LDP CRUDGET, PUT, POST, DELETE, HEAD on resources and containersDetails
Web Access ControlWAC with .acl files, agent/group/public permissionsDetails
Content NegotiationJSON-LD, Turtle, N3, N-Triples (--conneg)
PatchingN3 Patch + SPARQL Update for partial editsDetails
Conditional RequestsIf-Match / If-None-Match with ETag support (304, 412)
WebSocket NotificationsReal-time updates via solid-0.1 protocolDetails
Multi-user PodsPath-based or subdomain-based pod isolationDetails
Pod Discovery.well-known/openid-configuration, TypeIndex generation
HTTP Range RequestsPartial content delivery for streaming media
Storage QuotasPer-pod quota enforcement with CLI managementDetails
CORSFull cross-origin support with proper header exposure

Authentication & Identity

FeatureDescriptionDocs
Solid-OIDCToken validation with DPoP proof-of-possessionDetails
Built-in Identity ProviderFull OAuth2/OIDC login flows (--idp)
Passkey / WebAuthnPasswordless authentication using FIDO2
WebID-TLSClient certificate authentication with X.509 certs
Nostr NIP-98Schnorr signature-based HTTP auth, did:nostr identityDetails
Invite-only RegistrationRestrict signups with invite codes (--invite-only)Details
Token ManagementDPoP validation, jti replay prevention

Developer Tools

FeatureDescriptionDocs
Live ReloadEdit a file, browser refreshes automatically (--live-reload)Details
Public ModeSkip authentication for local development (--public)
Read-only ModeDisable PUT/DELETE/PATCH for safe viewing (--read-only)
Single-user ModePersonal pod server, no registration needed (--single-user)
File WatcherDetects filesystem changes and triggers WebSocket notifications
Mashlib / SolidOSData browser UI, local or CDN mode (--mashlib, --mashlib-cdn)Details
SolidOS UIModern Nextcloud-style interface (--solidos-ui)
Config SystemCLI args > env vars > config file > defaults
Print ConfigDebug configuration with --print-config

Federation & Social

FeatureDescriptionDocs
ActivityPubFull federation support with inbox, outbox, followers (--activitypub)Details
WebfingerStandard actor discovery for federation
Nostr RelayNIP-01 relay with configurable event limits (--nostr)Details
Nostr Event TypesReplaceable, ephemeral, parameterized replaceable kinds
Nostr-AP LinkingLink Nostr identity to ActivityPub actor (--ap-nostr-pubkey)Details

Security

FeatureDescriptionDocs
Inbox & Spam MitigationLayered defenses on LDP inboxesDetails
Rate LimitingGlobal (100/min), writes (60/min), pod creation (1/day)
SSL/TLSHTTPS with custom certificates (--ssl-key, --ssl-cert)
Dotfile ProtectionBlocks .git, .env, .htpasswd access
SSRF ProtectionURL validation for external fetches
Path Traversal ProtectionSanitization in all handlers
DPoP Replay Preventionjti cache prevents token reuse
Password Hashingbcryptjs with minimum length validation

Integrations

FeatureDescriptionDocs
Git HTTP BackendClone and push repos via HTTPS (--git)Details
servejssnpx serve alternative with write support and live reload
Cross-platformRuns on Android/Termux via sql.js and bcryptjs fallbacks

HTTP Methods

MethodSupport
GETFull
HEADFull
PUTFull
POSTFull
DELETEFull
PATCHN3 Patch + SPARQL Update
OPTIONSFull with CORS

CLI Commands

jss start [options]      # Start the server
jss init # Interactive configuration setup
jss invite create # Create invite code
jss invite list # List invite codes
jss invite revoke <code> # Revoke invite code
jss quota set <user> <size> # Set storage quota
jss quota show <user> # Show quota info
jss quota reconcile <user> # Recalculate from disk

What's New Since v0.0.42

VersionFeature
v0.0.59Nostr relay (NIP-01)
v0.0.61ActivityPub federation
v0.0.75WebID-TLS authentication
v0.0.76SolidOS modern UI
v0.0.77Single-user mode, Passkey/WebAuthn auth
v0.0.80Cross-platform support (Android/Termux)
v0.0.82Public mode, Read-only mode
v0.0.84Live reload with filesystem watcher
v0.0.85File watcher for external changes
v0.0.86WebSocket fix for public mode, port fix for file watcher