-
-
Notifications
You must be signed in to change notification settings - Fork 60
/
package.json
124 lines (124 loc) · 3.1 KB
/
package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
{
"name": "duolingo-clone",
"version": "1.0.1",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"format": "prettier --check --ignore-path .gitignore .",
"format:fix": "prettier --write --ignore-path .gitignore .",
"db:studio": "npx drizzle-kit studio",
"db:push": "npx drizzle-kit push:pg",
"db:prod": "tsx ./scripts/prod.ts"
},
"author": {
"name": "Sanidhya Kumar Verma",
"email": "[email protected]",
"url": "https://github.com/sanidhyy"
},
"description": "Interactive platform for language learning with lessons, quizzes, and progress tracking.",
"keywords": [
"reactjs",
"nextjs",
"vercel",
"react",
"duolingo-clone",
"learn-language",
"shadcn",
"shadcn-ui",
"radix-ui",
"cn",
"clsx",
"lingo",
"postgresql",
"sonner",
"drizzle",
"zustand",
"mysql",
"lucide-react",
"next-themes",
"clerk-themes",
"clerk",
"postcss",
"prettier",
"react-dom",
"tailwindcss",
"tailwindcss-animate",
"ui/ux",
"js",
"javascript",
"typescript",
"eslint",
"html",
"css"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/sanidhyy/duolingo-clone.git"
},
"homepage": "https://github.com/sanidhyy/duolingo-clone#readme",
"bugs": {
"url": "https://github.com/sanidhyy/duolingo-clone/issues",
"email": "[email protected]"
},
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/sanidhy"
},
{
"type": "Buy me a coffee",
"url": "https://www.buymeacoffee.com/sanidhy"
}
],
"dependencies": {
"@clerk/nextjs": "^4.31.5",
"@neondatabase/serverless": "^0.9.0",
"@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-progress": "^1.0.3",
"@radix-ui/react-separator": "^1.0.3",
"@radix-ui/react-slot": "^1.0.2",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"dotenv": "^16.4.5",
"drizzle-orm": "^0.30.4",
"lucide-react": "^0.359.0",
"next": "14.2.21",
"next-themes": "^0.3.0",
"ra-data-simple-rest": "^4.16.12",
"react": "^18",
"react-admin": "^4.16.13",
"react-circular-progressbar": "^2.1.0",
"react-confetti": "^6.1.0",
"react-dom": "^18",
"react-use": "^17.5.0",
"sonner": "^1.4.32",
"stripe": "^14.22.0",
"tailwind-merge": "^2.2.2",
"tailwindcss-animate": "^1.0.7",
"zustand": "^4.5.2"
},
"devDependencies": {
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"@typescript-eslint/eslint-plugin": "^7.3.1",
"@typescript-eslint/parser": "^7.3.1",
"autoprefixer": "^10.0.1",
"drizzle-kit": "^0.20.14",
"eslint": "^8.57.0",
"eslint-config-next": "14.1.4",
"eslint-config-prettier": "^9.1.0",
"pg": "^8.11.3",
"postcss": "^8",
"prettier": "^3.2.5",
"prettier-plugin-tailwindcss": "^0.5.12",
"tailwindcss": "^3.3.0",
"tsx": "^4.7.1",
"typescript": "^5"
}
}