A decentralized music tracking and discovery platform built on AT Protocol 馃幍
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
1{
2 "name": "@rocksky/web",
3 "private": true,
4 "version": "0.0.0",
5 "type": "module",
6 "scripts": {
7 "dev": "vite --port 5174",
8 "prod": "vite --mode prod",
9 "build": "tsc -b && vite build",
10 "build:prod": "tsc -b && vite build --mode prod",
11 "lint": "biome lint src",
12 "preview": "bun run build && wrangler pages dev ./dist",
13 "deploy": "bun run build && wrangler pages deploy ./dist",
14 "storybook": "storybook dev -p 6006",
15 "build-storybook": "storybook build",
16 "format": "biome format src"
17 },
18 "dependencies": {
19 "@emotion/react": "^11.14.0",
20 "@emotion/styled": "^11.14.0",
21 "@hookform/resolvers": "^4.0.0",
22 "@iconify-json/teenyicons": "^1.2.2",
23 "@styled-icons/bootstrap": "^10.47.0",
24 "@styled-icons/boxicons-logos": "^10.47.0",
25 "@styled-icons/boxicons-regular": "^10.47.0",
26 "@styled-icons/entypo": "^10.46.0",
27 "@styled-icons/evaicons-solid": "^10.46.0",
28 "@styled-icons/evil": "^10.46.0",
29 "@styled-icons/fa-solid": "^10.47.0",
30 "@styled-icons/feather": "^10.47.0",
31 "@styled-icons/fluentui-system-filled": "^10.47.0",
32 "@styled-icons/fluentui-system-regular": "^10.47.0",
33 "@styled-icons/ionicons-outline": "^10.46.0",
34 "@styled-icons/ionicons-sharp": "^10.46.0",
35 "@styled-icons/remix-fill": "^10.46.0",
36 "@styled-icons/simple-icons": "^10.46.0",
37 "@styled-icons/zondicons": "^10.46.0",
38 "@tailwindcss/vite": "^4.1.4",
39 "@tanstack/react-query": "^5.76.0",
40 "@tanstack/react-query-devtools": "^5.76.0",
41 "@tanstack/react-router": "^1.125.4",
42 "@tanstack/react-router-devtools": "^1.125.4",
43 "@tanstack/react-table": "^8.21.2",
44 "@tanstack/zod-adapter": "^1.125.4",
45 "@types/numeral": "^2.0.5",
46 "@vitest/ui": "^3.0.4",
47 "axios": "^1.7.9",
48 "baseui": "15.0.0",
49 "copy-to-clipboard": "^3.3.3",
50 "date-fns": "^4.1.0",
51 "dayjs": "^1.11.13",
52 "effect": "^3.14.22",
53 "i18next": "^24.2.2",
54 "jotai": "^2.11.3",
55 "jotai-effect": "^2.0.1",
56 "lodash": "^4.17.21",
57 "numeral": "^2.0.6",
58 "posthog-js": "^1.234.6",
59 "ramda": "^0.30.1",
60 "react": "^18.3.1",
61 "react-content-loader": "^7.0.2",
62 "react-dom": "^18.3.1",
63 "react-hook-form": "^7.54.2",
64 "react-i18next": "^15.4.0",
65 "recharts": "^2.15.1",
66 "styletron-engine-monolithic": "^1.0.0",
67 "styletron-react": "^6.1.1",
68 "swr": "^2.3.0",
69 "tailwindcss": "^4.1.4",
70 "vitest": "^3.0.4",
71 "zod": "^3.24.2"
72 },
73 "devDependencies": {
74 "@biomejs/biome": "^2.2.3",
75 "@chromatic-com/storybook": "^3.2.4",
76 "@cloudflare/workers-types": "^4.20250124.3",
77 "@eslint/js": "^9.17.0",
78 "@storybook/addon-essentials": "^8.5.2",
79 "@storybook/addon-interactions": "^8.5.2",
80 "@storybook/addon-onboarding": "^8.5.2",
81 "@storybook/blocks": "^8.5.2",
82 "@storybook/react": "^8.5.2",
83 "@storybook/react-vite": "^8.5.2",
84 "@storybook/test": "^8.5.2",
85 "@tanstack/router-plugin": "^1.125.4",
86 "@types/lodash": "^4.17.15",
87 "@types/ramda": "^0.30.2",
88 "@types/react": "^18.3.18",
89 "@types/react-dom": "^18.3.5",
90 "@vitejs/plugin-react-swc": "^3.5.0",
91 "eslint": "^9.17.0",
92 "eslint-plugin-react-hooks": "^5.0.0",
93 "eslint-plugin-react-refresh": "^0.4.16",
94 "eslint-plugin-storybook": "^0.11.2",
95 "globals": "^15.14.0",
96 "storybook": "^8.5.2",
97 "typescript": "~5.6.2",
98 "typescript-eslint": "^8.18.2",
99 "vite": "^6.0.5",
100 "wrangler": "^3.106.0"
101 },
102 "eslintConfig": {
103 "extends": [
104 "plugin:storybook/recommended"
105 ]
106 }
107}