Skip to content

Commit bdc3d2c

Browse files
feat: initial release of fastpod v0.0.1
fastpod - The fastest way to run a Solid pod server Features: - Zero configuration wrapper around jspod - Lightning fast to start - Simple, memorable name - Passes all arguments through to jspod - Clean signal forwarding
0 parents  commit bdc3d2c

5 files changed

Lines changed: 233 additions & 0 deletions

File tree

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules/
2+
pod-data/
3+
*.log
4+
.DS_Store
5+
.env

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Melvin Carvalho
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# fastpod
2+
3+
> The fastest way to run a Solid pod. Zero configuration, just works.
4+
5+
[![npm version](https://img.shields.io/npm/v/fastpod.svg)](https://www.npmjs.com/package/fastpod)
6+
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7+
8+
**fastpod** is the quickest way to get your own [Solid](https://solidproject.org) pod server running.
9+
10+
## 🚀 Quick Start
11+
12+
```bash
13+
# Run instantly with npx (no installation required!)
14+
npx fastpod
15+
16+
# That's it! Your Solid pod is running at http://localhost:5444
17+
```
18+
19+
## ⚡ Features
20+
21+
-**Zero configuration** - Just works
22+
-**Lightning fast** - Server starts in seconds
23+
-**Solid Protocol** - Full spec compliance
24+
-**WebID Authentication** - Decentralized identity
25+
-**Passkey Support** - Modern passwordless auth
26+
-**WebSocket Notifications** - Real-time updates
27+
-**JSON-LD Native** - First-class linked data support
28+
29+
## 📦 Installation
30+
31+
### No Installation (Recommended)
32+
33+
```bash
34+
npx fastpod
35+
```
36+
37+
### Global Installation
38+
39+
```bash
40+
npm install -g fastpod
41+
fastpod
42+
```
43+
44+
## 🎮 Usage
45+
46+
```bash
47+
# Start with defaults
48+
fastpod
49+
50+
# Custom port
51+
fastpod --port 8080
52+
53+
# Custom data directory
54+
fastpod --root /var/pods
55+
56+
# Multi-user mode
57+
fastpod --multiuser
58+
59+
# Disable authentication
60+
fastpod --no-auth
61+
62+
# Show help
63+
fastpod --help
64+
```
65+
66+
## 📖 How It Works
67+
68+
fastpod is a lightweight wrapper around [jspod](https://github.com/JavaScriptSolidServer/jspod), which provides a beautiful CLI for [JavaScriptSolidServer](https://github.com/JavaScriptSolidServer/JavaScriptSolidServer).
69+
70+
**Stack:**
71+
```
72+
fastpod → jspod → JavaScriptSolidServer
73+
```
74+
75+
Each layer adds value:
76+
- **JavaScriptSolidServer**: Full-featured Solid server implementation
77+
- **jspod**: Beautiful CLI with sensible defaults
78+
- **fastpod**: Fastest, easiest way to get started
79+
80+
## 🌟 First Run
81+
82+
**Step 1**: Run the command
83+
```bash
84+
npx fastpod
85+
```
86+
87+
**Step 2**: Open http://localhost:5444 in your browser
88+
89+
**Step 3**: Register with your device's passkey (fingerprint, Face ID, etc.)
90+
91+
**Step 4**: Start using your pod!
92+
93+
## 🎯 Why fastpod?
94+
95+
- **Fast to type**: Just 7 characters
96+
- **Fast to start**: Server running in seconds
97+
- **Fast to learn**: Zero configuration needed
98+
- **Fast to deploy**: One command and you're live
99+
100+
## 📚 Learn More
101+
102+
- **Solid Project**: https://solidproject.org
103+
- **Solid Protocol**: https://solidproject.org/TR/protocol
104+
- **WebID**: https://www.w3.org/2005/Incubator/webid/spec
105+
- **jspod**: https://github.com/JavaScriptSolidServer/jspod
106+
107+
## 🤝 Contributing
108+
109+
Contributions welcome! This package is intentionally minimal - just a friendly wrapper.
110+
111+
## 📄 License
112+
113+
MIT - see [LICENSE](./LICENSE)
114+
115+
## 🙏 Credits
116+
117+
Built on [jspod](https://github.com/JavaScriptSolidServer/jspod) and [JavaScriptSolidServer](https://github.com/JavaScriptSolidServer/JavaScriptSolidServer).
118+
119+
---
120+
121+
**Made with ❤️ for the Solid community**
122+
123+
*"Your pod, fast"*

index.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env node
2+
3+
/**
4+
* fastpod - Fast Solid Pod
5+
* The fastest way to run a Solid pod
6+
*/
7+
8+
import { spawn } from 'child_process';
9+
import { fileURLToPath } from 'url';
10+
import { dirname, join, delimiter } from 'path';
11+
12+
const __dirname = dirname(fileURLToPath(import.meta.url));
13+
14+
// Pass all arguments through to jspod
15+
const args = process.argv.slice(2);
16+
17+
// Start jspod with enhanced PATH
18+
const jspod = spawn('jspod', args, {
19+
stdio: 'inherit',
20+
env: {
21+
...process.env,
22+
PATH: `${join(__dirname, 'node_modules', '.bin')}${delimiter}${process.env.PATH}`
23+
}
24+
});
25+
26+
jspod.on('error', (error) => {
27+
console.error('Failed to start Solid pod server');
28+
console.error(error.message);
29+
process.exit(1);
30+
});
31+
32+
jspod.on('exit', (code) => {
33+
process.exit(code);
34+
});
35+
36+
// Forward signals
37+
process.on('SIGINT', () => {
38+
jspod.kill('SIGTERM');
39+
});
40+
41+
process.on('SIGTERM', () => {
42+
jspod.kill('SIGTERM');
43+
});

package.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"name": "fastpod",
3+
"version": "0.0.1",
4+
"description": "Fast Solid Pod - The fastest way to run a Solid pod",
5+
"type": "module",
6+
"main": "index.js",
7+
"bin": {
8+
"fastpod": "./index.js"
9+
},
10+
"scripts": {
11+
"start": "node index.js"
12+
},
13+
"repository": {
14+
"type": "git",
15+
"url": "git+https://github.com/JavaScriptSolidServer/fastpod.git"
16+
},
17+
"keywords": [
18+
"solid",
19+
"pod",
20+
"server",
21+
"fast",
22+
"linked-data",
23+
"webid",
24+
"semantic-web",
25+
"decentralized",
26+
"rdf",
27+
"ldp"
28+
],
29+
"author": "Melvin Carvalho",
30+
"license": "MIT",
31+
"bugs": {
32+
"url": "https://github.com/JavaScriptSolidServer/fastpod/issues"
33+
},
34+
"homepage": "https://github.com/JavaScriptSolidServer/fastpod#readme",
35+
"engines": {
36+
"node": ">=18.0.0"
37+
},
38+
"dependencies": {
39+
"jspod": "^0.0.3"
40+
}
41+
}

0 commit comments

Comments
 (0)