+61
flake.lock
+61
flake.lock
···
1
+
{
2
+
"nodes": {
3
+
"flake-utils": {
4
+
"inputs": {
5
+
"systems": "systems"
6
+
},
7
+
"locked": {
8
+
"lastModified": 1731533236,
9
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
10
+
"owner": "numtide",
11
+
"repo": "flake-utils",
12
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
13
+
"type": "github"
14
+
},
15
+
"original": {
16
+
"owner": "numtide",
17
+
"repo": "flake-utils",
18
+
"type": "github"
19
+
}
20
+
},
21
+
"nixpkgs": {
22
+
"locked": {
23
+
"lastModified": 1757487488,
24
+
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
25
+
"owner": "NixOS",
26
+
"repo": "nixpkgs",
27
+
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
28
+
"type": "github"
29
+
},
30
+
"original": {
31
+
"owner": "NixOS",
32
+
"ref": "nixos-unstable",
33
+
"repo": "nixpkgs",
34
+
"type": "github"
35
+
}
36
+
},
37
+
"root": {
38
+
"inputs": {
39
+
"flake-utils": "flake-utils",
40
+
"nixpkgs": "nixpkgs"
41
+
}
42
+
},
43
+
"systems": {
44
+
"locked": {
45
+
"lastModified": 1681028828,
46
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
47
+
"owner": "nix-systems",
48
+
"repo": "default",
49
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
50
+
"type": "github"
51
+
},
52
+
"original": {
53
+
"owner": "nix-systems",
54
+
"repo": "default",
55
+
"type": "github"
56
+
}
57
+
}
58
+
},
59
+
"root": "root",
60
+
"version": 7
61
+
}
+39
flake.nix
+39
flake.nix
···
1
+
{
2
+
description = "woomarks development environment";
3
+
4
+
inputs = {
5
+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
+
flake-utils.url = "github:numtide/flake-utils";
7
+
};
8
+
9
+
outputs = { self, nixpkgs, flake-utils }:
10
+
flake-utils.lib.eachDefaultSystem (system:
11
+
let
12
+
pkgs = nixpkgs.legacyPackages.${system};
13
+
in
14
+
{
15
+
devShells.default = pkgs.mkShell {
16
+
buildInputs = with pkgs; [
17
+
python3
18
+
nodejs_20
19
+
http-server
20
+
];
21
+
22
+
shellHook = ''
23
+
echo "🔖 woomarks development environment"
24
+
echo ""
25
+
echo "Available commands:"
26
+
echo " serve-python - Start Python HTTP server on port 8000"
27
+
echo " serve-node - Start Node.js HTTP server on port 3000"
28
+
echo " serve-http - Start http-server on port 8080"
29
+
echo ""
30
+
echo "Then open http://localhost:<port> in your browser"
31
+
32
+
# Add convenience aliases
33
+
alias serve-python="python3 -m http.server 8000"
34
+
alias serve-node="npx http-server -p 3000 -c-1"
35
+
alias serve-http="http-server -p 8080 -c-1"
36
+
'';
37
+
};
38
+
});
39
+
}
+1
-1
index.html
+1
-1
index.html
···
125
125
</dialog>
126
126
</body>
127
127
<script type="module">
128
-
import { AtpAgent } from 'https://unpkg.com/@atproto/api@0.12.21/dist/index.js';
128
+
import { AtpAgent } from 'https://esm.sh/@atproto/api';
129
129
window.AtpAgent = AtpAgent;
130
130
</script>
131
131
<script async src="./script.js"></script>