omnius 1.0.714 → 1.0.716

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/index.js +2 -2
  2. package/npm-shrinkwrap.json +24 -24
  3. package/package.json +2 -1
  4. package/skills/reference/flaviocopes/README.md +54 -0
  5. package/skills/reference/flaviocopes/manifest.json +1532 -0
  6. package/skills/reference/flaviocopes/skills/ai-agent-skills/SKILL.md +81 -0
  7. package/skills/reference/flaviocopes/skills/ai-fundamentals/SKILL.md +81 -0
  8. package/skills/reference/flaviocopes/skills/alpinejs/SKILL.md +82 -0
  9. package/skills/reference/flaviocopes/skills/api-security/SKILL.md +81 -0
  10. package/skills/reference/flaviocopes/skills/astro/SKILL.md +82 -0
  11. package/skills/reference/flaviocopes/skills/astro-handbook/SKILL.md +82 -0
  12. package/skills/reference/flaviocopes/skills/automate-macos/SKILL.md +82 -0
  13. package/skills/reference/flaviocopes/skills/backup-and-restore/SKILL.md +81 -0
  14. package/skills/reference/flaviocopes/skills/browser-extensions/SKILL.md +82 -0
  15. package/skills/reference/flaviocopes/skills/browser-internals/SKILL.md +82 -0
  16. package/skills/reference/flaviocopes/skills/browser-storage/SKILL.md +82 -0
  17. package/skills/reference/flaviocopes/skills/build-macos-apps-swiftui/SKILL.md +82 -0
  18. package/skills/reference/flaviocopes/skills/build-with-mcp/SKILL.md +81 -0
  19. package/skills/reference/flaviocopes/skills/bun/SKILL.md +82 -0
  20. package/skills/reference/flaviocopes/skills/c-handbook/SKILL.md +80 -0
  21. package/skills/reference/flaviocopes/skills/caddy/SKILL.md +81 -0
  22. package/skills/reference/flaviocopes/skills/cli-commands-handbook/SKILL.md +80 -0
  23. package/skills/reference/flaviocopes/skills/clickhouse/SKILL.md +82 -0
  24. package/skills/reference/flaviocopes/skills/cloudflare/SKILL.md +82 -0
  25. package/skills/reference/flaviocopes/skills/cloudflare-d1/SKILL.md +82 -0
  26. package/skills/reference/flaviocopes/skills/cloudflare-domains/SKILL.md +43 -0
  27. package/skills/reference/flaviocopes/skills/cloudflare-workers/SKILL.md +82 -0
  28. package/skills/reference/flaviocopes/skills/cryptography-for-developers/SKILL.md +82 -0
  29. package/skills/reference/flaviocopes/skills/css/SKILL.md +82 -0
  30. package/skills/reference/flaviocopes/skills/css-handbook/SKILL.md +82 -0
  31. package/skills/reference/flaviocopes/skills/curl/SKILL.md +81 -0
  32. package/skills/reference/flaviocopes/skills/dns/SKILL.md +81 -0
  33. package/skills/reference/flaviocopes/skills/docker/SKILL.md +82 -0
  34. package/skills/reference/flaviocopes/skills/drizzle/SKILL.md +82 -0
  35. package/skills/reference/flaviocopes/skills/electron/SKILL.md +82 -0
  36. package/skills/reference/flaviocopes/skills/email-protocols/SKILL.md +82 -0
  37. package/skills/reference/flaviocopes/skills/events-logger/SKILL.md +41 -0
  38. package/skills/reference/flaviocopes/skills/express/SKILL.md +82 -0
  39. package/skills/reference/flaviocopes/skills/express-handbook/SKILL.md +80 -0
  40. package/skills/reference/flaviocopes/skills/forms/SKILL.md +82 -0
  41. package/skills/reference/flaviocopes/skills/ftp/SKILL.md +81 -0
  42. package/skills/reference/flaviocopes/skills/git/SKILL.md +79 -0
  43. package/skills/reference/flaviocopes/skills/git-cheat-sheet/SKILL.md +77 -0
  44. package/skills/reference/flaviocopes/skills/github-actions-cicd/SKILL.md +82 -0
  45. package/skills/reference/flaviocopes/skills/go-handbook/SKILL.md +80 -0
  46. package/skills/reference/flaviocopes/skills/home-server/SKILL.md +81 -0
  47. package/skills/reference/flaviocopes/skills/hono/SKILL.md +82 -0
  48. package/skills/reference/flaviocopes/skills/html/SKILL.md +81 -0
  49. package/skills/reference/flaviocopes/skills/html-handbook/SKILL.md +82 -0
  50. package/skills/reference/flaviocopes/skills/htmx/SKILL.md +82 -0
  51. package/skills/reference/flaviocopes/skills/http/SKILL.md +82 -0
  52. package/skills/reference/flaviocopes/skills/javascript/SKILL.md +82 -0
  53. package/skills/reference/flaviocopes/skills/js-handbook/SKILL.md +82 -0
  54. package/skills/reference/flaviocopes/skills/language-model-builder/SKILL.md +80 -0
  55. package/skills/reference/flaviocopes/skills/laravel-handbook/SKILL.md +80 -0
  56. package/skills/reference/flaviocopes/skills/linux-basics/SKILL.md +82 -0
  57. package/skills/reference/flaviocopes/skills/linux-server-security/SKILL.md +81 -0
  58. package/skills/reference/flaviocopes/skills/linux-storage-backups/SKILL.md +81 -0
  59. package/skills/reference/flaviocopes/skills/linux-troubleshooting/SKILL.md +81 -0
  60. package/skills/reference/flaviocopes/skills/livestream-recorder/SKILL.md +37 -0
  61. package/skills/reference/flaviocopes/skills/local-ai-models/SKILL.md +81 -0
  62. package/skills/reference/flaviocopes/skills/local-hoster/SKILL.md +43 -0
  63. package/skills/reference/flaviocopes/skills/macos-basics/SKILL.md +81 -0
  64. package/skills/reference/flaviocopes/skills/macos-for-developers/SKILL.md +82 -0
  65. package/skills/reference/flaviocopes/skills/macos-internals-troubleshooting/SKILL.md +81 -0
  66. package/skills/reference/flaviocopes/skills/mcp/SKILL.md +80 -0
  67. package/skills/reference/flaviocopes/skills/mongodb/SKILL.md +82 -0
  68. package/skills/reference/flaviocopes/skills/mysql/SKILL.md +82 -0
  69. package/skills/reference/flaviocopes/skills/native-web-interfaces/SKILL.md +82 -0
  70. package/skills/reference/flaviocopes/skills/networking-foundations/SKILL.md +81 -0
  71. package/skills/reference/flaviocopes/skills/nextjs/SKILL.md +82 -0
  72. package/skills/reference/flaviocopes/skills/nextjs-pages-router-handbook/SKILL.md +77 -0
  73. package/skills/reference/flaviocopes/skills/nginx/SKILL.md +81 -0
  74. package/skills/reference/flaviocopes/skills/node-handbook/SKILL.md +82 -0
  75. package/skills/reference/flaviocopes/skills/nodejs/SKILL.md +82 -0
  76. package/skills/reference/flaviocopes/skills/npm-package-publishing/SKILL.md +82 -0
  77. package/skills/reference/flaviocopes/skills/php-handbook/SKILL.md +80 -0
  78. package/skills/reference/flaviocopes/skills/plausible-automation/SKILL.md +43 -0
  79. package/skills/reference/flaviocopes/skills/port-pilot/SKILL.md +43 -0
  80. package/skills/reference/flaviocopes/skills/postgresql/SKILL.md +82 -0
  81. package/skills/reference/flaviocopes/skills/practical-debugging/SKILL.md +78 -0
  82. package/skills/reference/flaviocopes/skills/python-handbook/SKILL.md +80 -0
  83. package/skills/reference/flaviocopes/skills/react/SKILL.md +82 -0
  84. package/skills/reference/flaviocopes/skills/react-handbook/SKILL.md +82 -0
  85. package/skills/reference/flaviocopes/skills/real-time-web-applications/SKILL.md +82 -0
  86. package/skills/reference/flaviocopes/skills/reverse-proxies-load-balancers/SKILL.md +82 -0
  87. package/skills/reference/flaviocopes/skills/security-fundamentals/SKILL.md +80 -0
  88. package/skills/reference/flaviocopes/skills/shadcn-ui/SKILL.md +82 -0
  89. package/skills/reference/flaviocopes/skills/shell-scripting/SKILL.md +82 -0
  90. package/skills/reference/flaviocopes/skills/ship-macos-apps/SKILL.md +82 -0
  91. package/skills/reference/flaviocopes/skills/socket-programming/SKILL.md +82 -0
  92. package/skills/reference/flaviocopes/skills/software-supply-chain-security/SKILL.md +82 -0
  93. package/skills/reference/flaviocopes/skills/sql/SKILL.md +82 -0
  94. package/skills/reference/flaviocopes/skills/sql-handbook/SKILL.md +80 -0
  95. package/skills/reference/flaviocopes/skills/sqlite/SKILL.md +82 -0
  96. package/skills/reference/flaviocopes/skills/ssh/SKILL.md +81 -0
  97. package/skills/reference/flaviocopes/skills/supabase/SKILL.md +82 -0
  98. package/skills/reference/flaviocopes/skills/swift/SKILL.md +82 -0
  99. package/skills/reference/flaviocopes/skills/swift-handbook/SKILL.md +80 -0
  100. package/skills/reference/flaviocopes/skills/swiftui/SKILL.md +81 -0
  101. package/skills/reference/flaviocopes/skills/systemd/SKILL.md +82 -0
  102. package/skills/reference/flaviocopes/skills/tailscale/SKILL.md +82 -0
  103. package/skills/reference/flaviocopes/skills/tailwind/SKILL.md +82 -0
  104. package/skills/reference/flaviocopes/skills/telnet/SKILL.md +82 -0
  105. package/skills/reference/flaviocopes/skills/terminal/SKILL.md +82 -0
  106. package/skills/reference/flaviocopes/skills/testing/SKILL.md +79 -0
  107. package/skills/reference/flaviocopes/skills/tls-certificates/SKILL.md +81 -0
  108. package/skills/reference/flaviocopes/skills/tte-js/SKILL.md +37 -0
  109. package/skills/reference/flaviocopes/skills/typescript/SKILL.md +82 -0
  110. package/skills/reference/flaviocopes/skills/vercel/SKILL.md +82 -0
  111. package/skills/reference/flaviocopes/skills/vpn/SKILL.md +81 -0
  112. package/skills/reference/flaviocopes/skills/vps/SKILL.md +82 -0
  113. package/skills/reference/flaviocopes/skills/waiting-lists/SKILL.md +41 -0
  114. package/skills/reference/flaviocopes/skills/web-accessibility/SKILL.md +82 -0
  115. package/skills/reference/flaviocopes/skills/web-apis/SKILL.md +82 -0
  116. package/skills/reference/flaviocopes/skills/web-application-security/SKILL.md +82 -0
  117. package/skills/reference/flaviocopes/skills/web-authentication/SKILL.md +82 -0
@@ -0,0 +1,1532 @@
1
+ {
2
+ "pack": "flaviocopes",
3
+ "generatedFrom": "reference-library/flaviocopes",
4
+ "skills": {
5
+ "js-handbook": {
6
+ "title": "JavaScript Handbook",
7
+ "kind": "book",
8
+ "domain": "frontend",
9
+ "sections": 48,
10
+ "codeSamples": 150,
11
+ "languages": [
12
+ "jsx",
13
+ "javascriptreact",
14
+ "js",
15
+ "javascript"
16
+ ],
17
+ "epub": "https://downloads.flaviocopes.com/books/js-handbook.epub",
18
+ "pdf": "https://downloads.flaviocopes.com/books/js-handbook.pdf"
19
+ },
20
+ "css-handbook": {
21
+ "title": "CSS Handbook",
22
+ "kind": "book",
23
+ "domain": "frontend",
24
+ "sections": 118,
25
+ "codeSamples": 316,
26
+ "languages": [
27
+ "css",
28
+ "html",
29
+ "jsx",
30
+ "javascriptreact"
31
+ ],
32
+ "epub": "https://downloads.flaviocopes.com/books/css-handbook.epub",
33
+ "pdf": "https://downloads.flaviocopes.com/books/css-handbook.pdf"
34
+ },
35
+ "node-handbook": {
36
+ "title": "Node.js Handbook",
37
+ "kind": "book",
38
+ "domain": "backend",
39
+ "sections": 52,
40
+ "codeSamples": 191,
41
+ "languages": [
42
+ "javascript",
43
+ "bash"
44
+ ],
45
+ "epub": "https://downloads.flaviocopes.com/books/node-handbook.epub",
46
+ "pdf": "https://downloads.flaviocopes.com/books/node-handbook.pdf"
47
+ },
48
+ "astro-handbook": {
49
+ "title": "Astro Handbook",
50
+ "kind": "book",
51
+ "domain": "frontend",
52
+ "sections": 17,
53
+ "codeSamples": 45,
54
+ "languages": [
55
+ "jsx",
56
+ "javascriptreact",
57
+ "html"
58
+ ],
59
+ "epub": "https://downloads.flaviocopes.com/books/astro-handbook.epub",
60
+ "pdf": "https://downloads.flaviocopes.com/books/astro-handbook.pdf"
61
+ },
62
+ "html-handbook": {
63
+ "title": "HTML Handbook",
64
+ "kind": "book",
65
+ "domain": "frontend",
66
+ "sections": 65,
67
+ "codeSamples": 155,
68
+ "languages": [
69
+ "html",
70
+ "css",
71
+ "jsx",
72
+ "javascriptreact"
73
+ ],
74
+ "epub": "https://downloads.flaviocopes.com/books/html-handbook.epub",
75
+ "pdf": "https://downloads.flaviocopes.com/books/html-handbook.pdf"
76
+ },
77
+ "nextjs-pages-router-handbook": {
78
+ "title": "Next.js Pages Router Handbook",
79
+ "kind": "book",
80
+ "domain": "frontend",
81
+ "sections": 15,
82
+ "codeSamples": 33,
83
+ "languages": [
84
+ "jsx",
85
+ "javascriptreact",
86
+ "json"
87
+ ],
88
+ "epub": "https://downloads.flaviocopes.com/books/nextjs-pages-router-handbook.epub",
89
+ "pdf": "https://downloads.flaviocopes.com/books/nextjs-pages-router-handbook.pdf"
90
+ },
91
+ "react-handbook": {
92
+ "title": "React Handbook",
93
+ "kind": "book",
94
+ "domain": "frontend",
95
+ "sections": 23,
96
+ "codeSamples": 44,
97
+ "languages": [
98
+ "jsx",
99
+ "javascriptreact",
100
+ "html"
101
+ ],
102
+ "epub": "https://downloads.flaviocopes.com/books/react-handbook.epub",
103
+ "pdf": "https://downloads.flaviocopes.com/books/react-handbook.pdf"
104
+ },
105
+ "sql-handbook": {
106
+ "title": "SQL Handbook",
107
+ "kind": "book",
108
+ "domain": "data",
109
+ "sections": 27,
110
+ "codeSamples": 69,
111
+ "languages": [],
112
+ "epub": "https://downloads.flaviocopes.com/books/sql-handbook.epub",
113
+ "pdf": "https://downloads.flaviocopes.com/books/sql-handbook.pdf"
114
+ },
115
+ "git-cheat-sheet": {
116
+ "title": "Git Cheat Sheet",
117
+ "kind": "book",
118
+ "domain": "quality",
119
+ "sections": 45,
120
+ "codeSamples": 0,
121
+ "languages": [],
122
+ "epub": "https://downloads.flaviocopes.com/books/git-cheat-sheet.epub",
123
+ "pdf": "https://downloads.flaviocopes.com/books/git-cheat-sheet.pdf"
124
+ },
125
+ "laravel-handbook": {
126
+ "title": "Laravel Handbook",
127
+ "kind": "book",
128
+ "domain": "backend",
129
+ "sections": 25,
130
+ "codeSamples": 91,
131
+ "languages": [],
132
+ "epub": "https://downloads.flaviocopes.com/books/laravel-handbook.epub",
133
+ "pdf": "https://downloads.flaviocopes.com/books/laravel-handbook.pdf"
134
+ },
135
+ "express-handbook": {
136
+ "title": "Express Handbook",
137
+ "kind": "book",
138
+ "domain": "backend",
139
+ "sections": 25,
140
+ "codeSamples": 71,
141
+ "languages": [],
142
+ "epub": "https://downloads.flaviocopes.com/books/express-handbook.epub",
143
+ "pdf": "https://downloads.flaviocopes.com/books/express-handbook.pdf"
144
+ },
145
+ "swift-handbook": {
146
+ "title": "Swift Handbook",
147
+ "kind": "book",
148
+ "domain": "apple",
149
+ "sections": 28,
150
+ "codeSamples": 144,
151
+ "languages": [],
152
+ "epub": "https://downloads.flaviocopes.com/books/swift-handbook.epub",
153
+ "pdf": "https://downloads.flaviocopes.com/books/swift-handbook.pdf"
154
+ },
155
+ "go-handbook": {
156
+ "title": "Go Handbook",
157
+ "kind": "book",
158
+ "domain": "backend",
159
+ "sections": 29,
160
+ "codeSamples": 94,
161
+ "languages": [],
162
+ "epub": "https://downloads.flaviocopes.com/books/go-handbook.epub",
163
+ "pdf": "https://downloads.flaviocopes.com/books/go-handbook.pdf"
164
+ },
165
+ "php-handbook": {
166
+ "title": "PHP Handbook",
167
+ "kind": "book",
168
+ "domain": "backend",
169
+ "sections": 30,
170
+ "codeSamples": 156,
171
+ "languages": [],
172
+ "epub": "https://downloads.flaviocopes.com/books/php-handbook.epub",
173
+ "pdf": "https://downloads.flaviocopes.com/books/php-handbook.pdf"
174
+ },
175
+ "python-handbook": {
176
+ "title": "Python Handbook",
177
+ "kind": "book",
178
+ "domain": "backend",
179
+ "sections": 50,
180
+ "codeSamples": 252,
181
+ "languages": [],
182
+ "epub": "https://downloads.flaviocopes.com/books/python-handbook.epub",
183
+ "pdf": "https://downloads.flaviocopes.com/books/python-handbook.pdf"
184
+ },
185
+ "cli-commands-handbook": {
186
+ "title": "CLI Handbook",
187
+ "kind": "book",
188
+ "domain": "infra",
189
+ "sections": 67,
190
+ "codeSamples": 144,
191
+ "languages": [],
192
+ "epub": "https://downloads.flaviocopes.com/books/cli-commands-handbook.epub",
193
+ "pdf": "https://downloads.flaviocopes.com/books/cli-commands-handbook.pdf"
194
+ },
195
+ "c-handbook": {
196
+ "title": "C Handbook",
197
+ "kind": "book",
198
+ "domain": "backend",
199
+ "sections": 26,
200
+ "codeSamples": 127,
201
+ "languages": [],
202
+ "epub": "https://downloads.flaviocopes.com/books/c-handbook.epub",
203
+ "pdf": "https://downloads.flaviocopes.com/books/c-handbook.pdf"
204
+ },
205
+ "html": {
206
+ "title": "HTML Course",
207
+ "kind": "course",
208
+ "domain": "frontend",
209
+ "sections": 63,
210
+ "codeSamples": 107,
211
+ "languages": [
212
+ "html"
213
+ ],
214
+ "epub": "https://downloads.flaviocopes.com/course-downloads/html.epub",
215
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/html.pdf"
216
+ },
217
+ "css": {
218
+ "title": "CSS Course",
219
+ "kind": "course",
220
+ "domain": "frontend",
221
+ "sections": 51,
222
+ "codeSamples": 75,
223
+ "languages": [
224
+ "css",
225
+ "html"
226
+ ],
227
+ "epub": "https://downloads.flaviocopes.com/course-downloads/css.epub",
228
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/css.pdf"
229
+ },
230
+ "javascript": {
231
+ "title": "JavaScript Course",
232
+ "kind": "course",
233
+ "domain": "frontend",
234
+ "sections": 78,
235
+ "codeSamples": 532,
236
+ "languages": [
237
+ "js",
238
+ "javascript",
239
+ "html",
240
+ "bash",
241
+ "json"
242
+ ],
243
+ "epub": "https://downloads.flaviocopes.com/course-downloads/javascript.epub",
244
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/javascript.pdf"
245
+ },
246
+ "typescript": {
247
+ "title": "TypeScript Course",
248
+ "kind": "course",
249
+ "domain": "frontend",
250
+ "sections": 51,
251
+ "codeSamples": 179,
252
+ "languages": [
253
+ "typescript",
254
+ "ts",
255
+ "bash",
256
+ "json",
257
+ "js"
258
+ ],
259
+ "epub": "https://downloads.flaviocopes.com/course-downloads/typescript.epub",
260
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/typescript.pdf"
261
+ },
262
+ "react": {
263
+ "title": "React Course",
264
+ "kind": "course",
265
+ "domain": "frontend",
266
+ "sections": 55,
267
+ "codeSamples": 82,
268
+ "languages": [
269
+ "jsx",
270
+ "javascriptreact",
271
+ "bash",
272
+ "html"
273
+ ],
274
+ "epub": "https://downloads.flaviocopes.com/course-downloads/react.epub",
275
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/react.pdf"
276
+ },
277
+ "nextjs": {
278
+ "title": "Next.js Course",
279
+ "kind": "course",
280
+ "domain": "frontend",
281
+ "sections": 33,
282
+ "codeSamples": 17,
283
+ "languages": [
284
+ "bash",
285
+ "ts",
286
+ "typescript"
287
+ ],
288
+ "epub": "https://downloads.flaviocopes.com/course-downloads/nextjs.epub",
289
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/nextjs.pdf"
290
+ },
291
+ "shadcn-ui": {
292
+ "title": "shadcn/ui Course",
293
+ "kind": "course",
294
+ "domain": "frontend",
295
+ "sections": 33,
296
+ "codeSamples": 26,
297
+ "languages": [
298
+ "bash",
299
+ "css"
300
+ ],
301
+ "epub": "https://downloads.flaviocopes.com/course-downloads/shadcn-ui.epub",
302
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/shadcn-ui.pdf"
303
+ },
304
+ "forms": {
305
+ "title": "Web Forms Course",
306
+ "kind": "course",
307
+ "domain": "frontend",
308
+ "sections": 44,
309
+ "codeSamples": 72,
310
+ "languages": [
311
+ "html",
312
+ "js",
313
+ "javascript",
314
+ "json",
315
+ "css"
316
+ ],
317
+ "epub": "https://downloads.flaviocopes.com/course-downloads/forms.epub",
318
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/forms.pdf"
319
+ },
320
+ "native-web-interfaces": {
321
+ "title": "Native Web Interfaces Course",
322
+ "kind": "course",
323
+ "domain": "frontend",
324
+ "sections": 33,
325
+ "codeSamples": 20,
326
+ "languages": [
327
+ "html",
328
+ "js",
329
+ "javascript"
330
+ ],
331
+ "epub": "https://downloads.flaviocopes.com/course-downloads/native-web-interfaces.epub",
332
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/native-web-interfaces.pdf"
333
+ },
334
+ "networking-foundations": {
335
+ "title": "Networking Foundations Course",
336
+ "kind": "course",
337
+ "domain": "network",
338
+ "sections": 45,
339
+ "codeSamples": 96,
340
+ "languages": [
341
+ "bash"
342
+ ],
343
+ "epub": "https://downloads.flaviocopes.com/course-downloads/networking-foundations.epub",
344
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/networking-foundations.pdf"
345
+ },
346
+ "http": {
347
+ "title": "HTTP Course",
348
+ "kind": "course",
349
+ "domain": "network",
350
+ "sections": 41,
351
+ "codeSamples": 69,
352
+ "languages": [
353
+ "sh",
354
+ "bash",
355
+ "json"
356
+ ],
357
+ "epub": "https://downloads.flaviocopes.com/course-downloads/http.epub",
358
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/http.pdf"
359
+ },
360
+ "dns": {
361
+ "title": "DNS Course",
362
+ "kind": "course",
363
+ "domain": "network",
364
+ "sections": 39,
365
+ "codeSamples": 45,
366
+ "languages": [
367
+ "bash"
368
+ ],
369
+ "epub": "https://downloads.flaviocopes.com/course-downloads/dns.epub",
370
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/dns.pdf"
371
+ },
372
+ "email-protocols": {
373
+ "title": "Email Protocols Course",
374
+ "kind": "course",
375
+ "domain": "network",
376
+ "sections": 45,
377
+ "codeSamples": 41,
378
+ "languages": [
379
+ "bash",
380
+ "json",
381
+ "js",
382
+ "javascript"
383
+ ],
384
+ "epub": "https://downloads.flaviocopes.com/course-downloads/email-protocols.epub",
385
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/email-protocols.pdf"
386
+ },
387
+ "ftp": {
388
+ "title": "FTP Course",
389
+ "kind": "course",
390
+ "domain": "network",
391
+ "sections": 39,
392
+ "codeSamples": 55,
393
+ "languages": [
394
+ "bash"
395
+ ],
396
+ "epub": "https://downloads.flaviocopes.com/course-downloads/ftp.epub",
397
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/ftp.pdf"
398
+ },
399
+ "telnet": {
400
+ "title": "Telnet Course",
401
+ "kind": "course",
402
+ "domain": "network",
403
+ "sections": 33,
404
+ "codeSamples": 55,
405
+ "languages": [
406
+ "bash",
407
+ "js",
408
+ "javascript"
409
+ ],
410
+ "epub": "https://downloads.flaviocopes.com/course-downloads/telnet.epub",
411
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/telnet.pdf"
412
+ },
413
+ "curl": {
414
+ "title": "curl Course",
415
+ "kind": "course",
416
+ "domain": "network",
417
+ "sections": 33,
418
+ "codeSamples": 70,
419
+ "languages": [
420
+ "bash",
421
+ "json"
422
+ ],
423
+ "epub": "https://downloads.flaviocopes.com/course-downloads/curl.epub",
424
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/curl.pdf"
425
+ },
426
+ "tls-certificates": {
427
+ "title": "TLS and Certificates Course",
428
+ "kind": "course",
429
+ "domain": "network",
430
+ "sections": 33,
431
+ "codeSamples": 61,
432
+ "languages": [
433
+ "bash",
434
+ "js",
435
+ "javascript"
436
+ ],
437
+ "epub": "https://downloads.flaviocopes.com/course-downloads/tls-certificates.epub",
438
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/tls-certificates.pdf"
439
+ },
440
+ "socket-programming": {
441
+ "title": "Socket Programming with Node.js",
442
+ "kind": "course",
443
+ "domain": "backend",
444
+ "sections": 33,
445
+ "codeSamples": 60,
446
+ "languages": [
447
+ "js",
448
+ "javascript",
449
+ "bash"
450
+ ],
451
+ "epub": "https://downloads.flaviocopes.com/course-downloads/socket-programming.epub",
452
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/socket-programming.pdf"
453
+ },
454
+ "reverse-proxies-load-balancers": {
455
+ "title": "Reverse Proxies and Load Balancers Course",
456
+ "kind": "course",
457
+ "domain": "infra",
458
+ "sections": 33,
459
+ "codeSamples": 61,
460
+ "languages": [
461
+ "bash",
462
+ "js",
463
+ "javascript"
464
+ ],
465
+ "epub": "https://downloads.flaviocopes.com/course-downloads/reverse-proxies-load-balancers.epub",
466
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/reverse-proxies-load-balancers.pdf"
467
+ },
468
+ "swift": {
469
+ "title": "Swift Course",
470
+ "kind": "course",
471
+ "domain": "apple",
472
+ "sections": 33,
473
+ "codeSamples": 178,
474
+ "languages": [
475
+ "swift",
476
+ "bash"
477
+ ],
478
+ "epub": "https://downloads.flaviocopes.com/course-downloads/swift.epub",
479
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/swift.pdf"
480
+ },
481
+ "swiftui": {
482
+ "title": "SwiftUI Course",
483
+ "kind": "course",
484
+ "domain": "apple",
485
+ "sections": 33,
486
+ "codeSamples": 100,
487
+ "languages": [
488
+ "swift"
489
+ ],
490
+ "epub": "https://downloads.flaviocopes.com/course-downloads/swiftui.epub",
491
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/swiftui.pdf"
492
+ },
493
+ "macos-basics": {
494
+ "title": "macOS Basics Course",
495
+ "kind": "course",
496
+ "domain": "apple",
497
+ "sections": 33,
498
+ "codeSamples": 25,
499
+ "languages": [
500
+ "bash"
501
+ ],
502
+ "epub": "https://downloads.flaviocopes.com/course-downloads/macos-basics.epub",
503
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/macos-basics.pdf"
504
+ },
505
+ "macos-for-developers": {
506
+ "title": "macOS for Developers Course",
507
+ "kind": "course",
508
+ "domain": "apple",
509
+ "sections": 33,
510
+ "codeSamples": 59,
511
+ "languages": [
512
+ "bash",
513
+ "markdown",
514
+ "ini",
515
+ "ruby"
516
+ ],
517
+ "epub": "https://downloads.flaviocopes.com/course-downloads/macos-for-developers.epub",
518
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/macos-for-developers.pdf"
519
+ },
520
+ "automate-macos": {
521
+ "title": "Automate macOS Course",
522
+ "kind": "course",
523
+ "domain": "apple",
524
+ "sections": 33,
525
+ "codeSamples": 46,
526
+ "languages": [
527
+ "bash",
528
+ "xml"
529
+ ],
530
+ "epub": "https://downloads.flaviocopes.com/course-downloads/automate-macos.epub",
531
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/automate-macos.pdf"
532
+ },
533
+ "build-macos-apps-swiftui": {
534
+ "title": "Build macOS Apps with SwiftUI Course",
535
+ "kind": "course",
536
+ "domain": "apple",
537
+ "sections": 33,
538
+ "codeSamples": 47,
539
+ "languages": [
540
+ "swift",
541
+ "bash",
542
+ "json"
543
+ ],
544
+ "epub": "https://downloads.flaviocopes.com/course-downloads/build-macos-apps-swiftui.epub",
545
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/build-macos-apps-swiftui.pdf"
546
+ },
547
+ "ship-macos-apps": {
548
+ "title": "Ship macOS Apps Course",
549
+ "kind": "course",
550
+ "domain": "apple",
551
+ "sections": 33,
552
+ "codeSamples": 45,
553
+ "languages": [
554
+ "bash",
555
+ "xml"
556
+ ],
557
+ "epub": "https://downloads.flaviocopes.com/course-downloads/ship-macos-apps.epub",
558
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/ship-macos-apps.pdf"
559
+ },
560
+ "macos-internals-troubleshooting": {
561
+ "title": "macOS Internals and Troubleshooting Course",
562
+ "kind": "course",
563
+ "domain": "apple",
564
+ "sections": 33,
565
+ "codeSamples": 50,
566
+ "languages": [
567
+ "bash"
568
+ ],
569
+ "epub": "https://downloads.flaviocopes.com/course-downloads/macos-internals-troubleshooting.epub",
570
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/macos-internals-troubleshooting.pdf"
571
+ },
572
+ "terminal": {
573
+ "title": "Shell Commands Course",
574
+ "kind": "course",
575
+ "domain": "infra",
576
+ "sections": 81,
577
+ "codeSamples": 384,
578
+ "languages": [
579
+ "bash",
580
+ "js",
581
+ "javascript"
582
+ ],
583
+ "epub": "https://downloads.flaviocopes.com/course-downloads/terminal.epub",
584
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/terminal.pdf"
585
+ },
586
+ "shell-scripting": {
587
+ "title": "Shell Scripting and Automation Course",
588
+ "kind": "course",
589
+ "domain": "infra",
590
+ "sections": 33,
591
+ "codeSamples": 66,
592
+ "languages": [
593
+ "bash",
594
+ "json"
595
+ ],
596
+ "epub": "https://downloads.flaviocopes.com/course-downloads/shell-scripting.epub",
597
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/shell-scripting.pdf"
598
+ },
599
+ "linux-basics": {
600
+ "title": "Linux Basics Course",
601
+ "kind": "course",
602
+ "domain": "infra",
603
+ "sections": 33,
604
+ "codeSamples": 84,
605
+ "languages": [
606
+ "bash",
607
+ "ini"
608
+ ],
609
+ "epub": "https://downloads.flaviocopes.com/course-downloads/linux-basics.epub",
610
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/linux-basics.pdf"
611
+ },
612
+ "home-server": {
613
+ "title": "Build a Home Server Course",
614
+ "kind": "course",
615
+ "domain": "infra",
616
+ "sections": 33,
617
+ "codeSamples": 60,
618
+ "languages": [
619
+ "bash",
620
+ "yaml"
621
+ ],
622
+ "epub": "https://downloads.flaviocopes.com/course-downloads/home-server.epub",
623
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/home-server.pdf"
624
+ },
625
+ "backup-and-restore": {
626
+ "title": "Backup and Restore Course",
627
+ "kind": "course",
628
+ "domain": "infra",
629
+ "sections": 33,
630
+ "codeSamples": 58,
631
+ "languages": [
632
+ "bash"
633
+ ],
634
+ "epub": "https://downloads.flaviocopes.com/course-downloads/backup-and-restore.epub",
635
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/backup-and-restore.pdf"
636
+ },
637
+ "systemd": {
638
+ "title": "systemd Course",
639
+ "kind": "course",
640
+ "domain": "infra",
641
+ "sections": 33,
642
+ "codeSamples": 97,
643
+ "languages": [
644
+ "bash",
645
+ "ini",
646
+ "js",
647
+ "javascript"
648
+ ],
649
+ "epub": "https://downloads.flaviocopes.com/course-downloads/systemd.epub",
650
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/systemd.pdf"
651
+ },
652
+ "nginx": {
653
+ "title": "Nginx Course",
654
+ "kind": "course",
655
+ "domain": "infra",
656
+ "sections": 33,
657
+ "codeSamples": 57,
658
+ "languages": [
659
+ "bash"
660
+ ],
661
+ "epub": "https://downloads.flaviocopes.com/course-downloads/nginx.epub",
662
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/nginx.pdf"
663
+ },
664
+ "caddy": {
665
+ "title": "Caddy Course",
666
+ "kind": "course",
667
+ "domain": "infra",
668
+ "sections": 33,
669
+ "codeSamples": 68,
670
+ "languages": [
671
+ "bash"
672
+ ],
673
+ "epub": "https://downloads.flaviocopes.com/course-downloads/caddy.epub",
674
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/caddy.pdf"
675
+ },
676
+ "linux-storage-backups": {
677
+ "title": "Linux Storage and Backups Course",
678
+ "kind": "course",
679
+ "domain": "infra",
680
+ "sections": 33,
681
+ "codeSamples": 63,
682
+ "languages": [
683
+ "bash"
684
+ ],
685
+ "epub": "https://downloads.flaviocopes.com/course-downloads/linux-storage-backups.epub",
686
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/linux-storage-backups.pdf"
687
+ },
688
+ "linux-troubleshooting": {
689
+ "title": "Linux Server Troubleshooting Course",
690
+ "kind": "course",
691
+ "domain": "infra",
692
+ "sections": 33,
693
+ "codeSamples": 79,
694
+ "languages": [
695
+ "bash",
696
+ "ini",
697
+ "md",
698
+ "markdown"
699
+ ],
700
+ "epub": "https://downloads.flaviocopes.com/course-downloads/linux-troubleshooting.epub",
701
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/linux-troubleshooting.pdf"
702
+ },
703
+ "vps": {
704
+ "title": "Ubuntu VPS Course",
705
+ "kind": "course",
706
+ "domain": "infra",
707
+ "sections": 33,
708
+ "codeSamples": 65,
709
+ "languages": [
710
+ "bash",
711
+ "ini"
712
+ ],
713
+ "epub": "https://downloads.flaviocopes.com/course-downloads/vps.epub",
714
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/vps.pdf"
715
+ },
716
+ "git": {
717
+ "title": "Git Course",
718
+ "kind": "course",
719
+ "domain": "quality",
720
+ "sections": 50,
721
+ "codeSamples": 151,
722
+ "languages": [
723
+ "bash",
724
+ "yaml"
725
+ ],
726
+ "epub": "https://downloads.flaviocopes.com/course-downloads/git.epub",
727
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/git.pdf"
728
+ },
729
+ "sql": {
730
+ "title": "SQL Course",
731
+ "kind": "course",
732
+ "domain": "data",
733
+ "sections": 48,
734
+ "codeSamples": 113,
735
+ "languages": [
736
+ "sql",
737
+ "javascript",
738
+ "js",
739
+ "bash",
740
+ "json"
741
+ ],
742
+ "epub": "https://downloads.flaviocopes.com/course-downloads/sql.epub",
743
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/sql.pdf"
744
+ },
745
+ "sqlite": {
746
+ "title": "SQLite Course",
747
+ "kind": "course",
748
+ "domain": "data",
749
+ "sections": 33,
750
+ "codeSamples": 74,
751
+ "languages": [
752
+ "sql",
753
+ "bash",
754
+ "js",
755
+ "javascript"
756
+ ],
757
+ "epub": "https://downloads.flaviocopes.com/course-downloads/sqlite.epub",
758
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/sqlite.pdf"
759
+ },
760
+ "mysql": {
761
+ "title": "MySQL Course",
762
+ "kind": "course",
763
+ "domain": "data",
764
+ "sections": 34,
765
+ "codeSamples": 74,
766
+ "languages": [
767
+ "sql",
768
+ "bash",
769
+ "js",
770
+ "javascript",
771
+ "sh"
772
+ ],
773
+ "epub": "https://downloads.flaviocopes.com/course-downloads/mysql.epub",
774
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/mysql.pdf"
775
+ },
776
+ "postgresql": {
777
+ "title": "PostgreSQL Course",
778
+ "kind": "course",
779
+ "domain": "data",
780
+ "sections": 45,
781
+ "codeSamples": 112,
782
+ "languages": [
783
+ "sql",
784
+ "bash",
785
+ "js",
786
+ "javascript"
787
+ ],
788
+ "epub": "https://downloads.flaviocopes.com/course-downloads/postgresql.epub",
789
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/postgresql.pdf"
790
+ },
791
+ "drizzle": {
792
+ "title": "Drizzle ORM Course",
793
+ "kind": "course",
794
+ "domain": "data",
795
+ "sections": 33,
796
+ "codeSamples": 56,
797
+ "languages": [
798
+ "ts",
799
+ "typescript",
800
+ "bash",
801
+ "sql",
802
+ "js"
803
+ ],
804
+ "epub": "https://downloads.flaviocopes.com/course-downloads/drizzle.epub",
805
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/drizzle.pdf"
806
+ },
807
+ "mongodb": {
808
+ "title": "MongoDB Course",
809
+ "kind": "course",
810
+ "domain": "data",
811
+ "sections": 28,
812
+ "codeSamples": 45,
813
+ "languages": [
814
+ "js",
815
+ "javascript",
816
+ "bash",
817
+ "yaml"
818
+ ],
819
+ "epub": "https://downloads.flaviocopes.com/course-downloads/mongodb.epub",
820
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/mongodb.pdf"
821
+ },
822
+ "supabase": {
823
+ "title": "Supabase Course",
824
+ "kind": "course",
825
+ "domain": "data",
826
+ "sections": 28,
827
+ "codeSamples": 51,
828
+ "languages": [
829
+ "bash",
830
+ "sql",
831
+ "js",
832
+ "javascript",
833
+ "ts"
834
+ ],
835
+ "epub": "https://downloads.flaviocopes.com/course-downloads/supabase.epub",
836
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/supabase.pdf"
837
+ },
838
+ "clickhouse": {
839
+ "title": "ClickHouse Course",
840
+ "kind": "course",
841
+ "domain": "data",
842
+ "sections": 28,
843
+ "codeSamples": 42,
844
+ "languages": [
845
+ "sql",
846
+ "bash"
847
+ ],
848
+ "epub": "https://downloads.flaviocopes.com/course-downloads/clickhouse.epub",
849
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/clickhouse.pdf"
850
+ },
851
+ "nodejs": {
852
+ "title": "Node.js Course",
853
+ "kind": "course",
854
+ "domain": "backend",
855
+ "sections": 59,
856
+ "codeSamples": 235,
857
+ "languages": [
858
+ "js",
859
+ "javascript",
860
+ "bash",
861
+ "json",
862
+ "ini"
863
+ ],
864
+ "epub": "https://downloads.flaviocopes.com/course-downloads/nodejs.epub",
865
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/nodejs.pdf"
866
+ },
867
+ "bun": {
868
+ "title": "Bun Course",
869
+ "kind": "course",
870
+ "domain": "backend",
871
+ "sections": 33,
872
+ "codeSamples": 102,
873
+ "languages": [
874
+ "bash",
875
+ "ts",
876
+ "typescript",
877
+ "json",
878
+ "powershell"
879
+ ],
880
+ "epub": "https://downloads.flaviocopes.com/course-downloads/bun.epub",
881
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/bun.pdf"
882
+ },
883
+ "electron": {
884
+ "title": "Electron Course",
885
+ "kind": "course",
886
+ "domain": "backend",
887
+ "sections": 45,
888
+ "codeSamples": 50,
889
+ "languages": [
890
+ "js",
891
+ "javascript",
892
+ "bash",
893
+ "html"
894
+ ],
895
+ "epub": "https://downloads.flaviocopes.com/course-downloads/electron.epub",
896
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/electron.pdf"
897
+ },
898
+ "docker": {
899
+ "title": "Docker Course",
900
+ "kind": "course",
901
+ "domain": "infra",
902
+ "sections": 33,
903
+ "codeSamples": 48,
904
+ "languages": [
905
+ "bash",
906
+ "dockerfile",
907
+ "yaml",
908
+ "json",
909
+ "js"
910
+ ],
911
+ "epub": "https://downloads.flaviocopes.com/course-downloads/docker.epub",
912
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/docker.pdf"
913
+ },
914
+ "web-apis": {
915
+ "title": "Web APIs Course",
916
+ "kind": "course",
917
+ "domain": "frontend",
918
+ "sections": 33,
919
+ "codeSamples": 55,
920
+ "languages": [
921
+ "ts",
922
+ "typescript",
923
+ "bash",
924
+ "sql",
925
+ "json"
926
+ ],
927
+ "epub": "https://downloads.flaviocopes.com/course-downloads/web-apis.epub",
928
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/web-apis.pdf"
929
+ },
930
+ "testing": {
931
+ "title": "Testing JavaScript Applications",
932
+ "kind": "course",
933
+ "domain": "quality",
934
+ "sections": 33,
935
+ "codeSamples": 38,
936
+ "languages": [
937
+ "js",
938
+ "javascript",
939
+ "bash",
940
+ "ts",
941
+ "typescript"
942
+ ],
943
+ "epub": "https://downloads.flaviocopes.com/course-downloads/testing.epub",
944
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/testing.pdf"
945
+ },
946
+ "practical-debugging": {
947
+ "title": "Practical Debugging Course",
948
+ "kind": "course",
949
+ "domain": "quality",
950
+ "sections": 33,
951
+ "codeSamples": 40,
952
+ "languages": [
953
+ "bash",
954
+ "js",
955
+ "javascript"
956
+ ],
957
+ "epub": "https://downloads.flaviocopes.com/course-downloads/practical-debugging.epub",
958
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/practical-debugging.pdf"
959
+ },
960
+ "browser-extensions": {
961
+ "title": "Browser Extensions Course",
962
+ "kind": "course",
963
+ "domain": "frontend",
964
+ "sections": 33,
965
+ "codeSamples": 27,
966
+ "languages": [
967
+ "js",
968
+ "javascript",
969
+ "json",
970
+ "bash",
971
+ "html"
972
+ ],
973
+ "epub": "https://downloads.flaviocopes.com/course-downloads/browser-extensions.epub",
974
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/browser-extensions.pdf"
975
+ },
976
+ "cloudflare": {
977
+ "title": "Cloudflare Course",
978
+ "kind": "course",
979
+ "domain": "infra",
980
+ "sections": 183,
981
+ "codeSamples": 213,
982
+ "languages": [
983
+ "bash",
984
+ "js",
985
+ "javascript",
986
+ "sql",
987
+ "html"
988
+ ],
989
+ "epub": "https://downloads.flaviocopes.com/course-downloads/cloudflare.epub",
990
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/cloudflare.pdf"
991
+ },
992
+ "cloudflare-workers": {
993
+ "title": "Cloudflare Workers Course",
994
+ "kind": "course",
995
+ "domain": "infra",
996
+ "sections": 33,
997
+ "codeSamples": 46,
998
+ "languages": [
999
+ "bash",
1000
+ "ts",
1001
+ "typescript",
1002
+ "sql"
1003
+ ],
1004
+ "epub": "https://downloads.flaviocopes.com/course-downloads/cloudflare-workers.epub",
1005
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/cloudflare-workers.pdf"
1006
+ },
1007
+ "cloudflare-d1": {
1008
+ "title": "Cloudflare D1 Course",
1009
+ "kind": "course",
1010
+ "domain": "data",
1011
+ "sections": 23,
1012
+ "codeSamples": 31,
1013
+ "languages": [
1014
+ "bash",
1015
+ "sql",
1016
+ "js",
1017
+ "javascript",
1018
+ "ts"
1019
+ ],
1020
+ "epub": "https://downloads.flaviocopes.com/course-downloads/cloudflare-d1.epub",
1021
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/cloudflare-d1.pdf"
1022
+ },
1023
+ "vercel": {
1024
+ "title": "Vercel Course",
1025
+ "kind": "course",
1026
+ "domain": "infra",
1027
+ "sections": 33,
1028
+ "codeSamples": 33,
1029
+ "languages": [
1030
+ "bash",
1031
+ "json",
1032
+ "ts",
1033
+ "typescript"
1034
+ ],
1035
+ "epub": "https://downloads.flaviocopes.com/course-downloads/vercel.epub",
1036
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/vercel.pdf"
1037
+ },
1038
+ "security-fundamentals": {
1039
+ "title": "Security Fundamentals Course",
1040
+ "kind": "course",
1041
+ "domain": "security",
1042
+ "sections": 33,
1043
+ "codeSamples": 41,
1044
+ "languages": [
1045
+ "bash",
1046
+ "js",
1047
+ "javascript",
1048
+ "sql",
1049
+ "json"
1050
+ ],
1051
+ "epub": "https://downloads.flaviocopes.com/course-downloads/security-fundamentals.epub",
1052
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/security-fundamentals.pdf"
1053
+ },
1054
+ "web-application-security": {
1055
+ "title": "Web Application Security Course",
1056
+ "kind": "course",
1057
+ "domain": "security",
1058
+ "sections": 33,
1059
+ "codeSamples": 66,
1060
+ "languages": [
1061
+ "js",
1062
+ "javascript",
1063
+ "bash",
1064
+ "html",
1065
+ "json"
1066
+ ],
1067
+ "epub": "https://downloads.flaviocopes.com/course-downloads/web-application-security.epub",
1068
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/web-application-security.pdf"
1069
+ },
1070
+ "web-authentication": {
1071
+ "title": "Web Authentication Course",
1072
+ "kind": "course",
1073
+ "domain": "security",
1074
+ "sections": 33,
1075
+ "codeSamples": 15,
1076
+ "languages": [
1077
+ "sql",
1078
+ "json",
1079
+ "ts",
1080
+ "typescript",
1081
+ "html"
1082
+ ],
1083
+ "epub": "https://downloads.flaviocopes.com/course-downloads/web-authentication.epub",
1084
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/web-authentication.pdf"
1085
+ },
1086
+ "api-security": {
1087
+ "title": "API Security Course",
1088
+ "kind": "course",
1089
+ "domain": "security",
1090
+ "sections": 33,
1091
+ "codeSamples": 55,
1092
+ "languages": [
1093
+ "bash",
1094
+ "sql",
1095
+ "js",
1096
+ "javascript",
1097
+ "json"
1098
+ ],
1099
+ "epub": "https://downloads.flaviocopes.com/course-downloads/api-security.epub",
1100
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/api-security.pdf"
1101
+ },
1102
+ "linux-server-security": {
1103
+ "title": "Linux Server Security Course",
1104
+ "kind": "course",
1105
+ "domain": "security",
1106
+ "sections": 33,
1107
+ "codeSamples": 62,
1108
+ "languages": [
1109
+ "bash",
1110
+ "ini"
1111
+ ],
1112
+ "epub": "https://downloads.flaviocopes.com/course-downloads/linux-server-security.epub",
1113
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/linux-server-security.pdf"
1114
+ },
1115
+ "software-supply-chain-security": {
1116
+ "title": "Software Supply Chain Security Course",
1117
+ "kind": "course",
1118
+ "domain": "security",
1119
+ "sections": 33,
1120
+ "codeSamples": 46,
1121
+ "languages": [
1122
+ "bash",
1123
+ "yaml",
1124
+ "dockerfile",
1125
+ "json",
1126
+ "markdown"
1127
+ ],
1128
+ "epub": "https://downloads.flaviocopes.com/course-downloads/software-supply-chain-security.epub",
1129
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/software-supply-chain-security.pdf"
1130
+ },
1131
+ "cryptography-for-developers": {
1132
+ "title": "Cryptography for Developers Course",
1133
+ "kind": "course",
1134
+ "domain": "security",
1135
+ "sections": 33,
1136
+ "codeSamples": 40,
1137
+ "languages": [
1138
+ "js",
1139
+ "javascript",
1140
+ "bash",
1141
+ "json"
1142
+ ],
1143
+ "epub": "https://downloads.flaviocopes.com/course-downloads/cryptography-for-developers.epub",
1144
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/cryptography-for-developers.pdf"
1145
+ },
1146
+ "astro": {
1147
+ "title": "Astro Course",
1148
+ "kind": "course",
1149
+ "domain": "frontend",
1150
+ "sections": 53,
1151
+ "codeSamples": 95,
1152
+ "languages": [
1153
+ "bash",
1154
+ "html",
1155
+ "markdown",
1156
+ "js",
1157
+ "javascript"
1158
+ ],
1159
+ "epub": "https://downloads.flaviocopes.com/course-downloads/astro.epub",
1160
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/astro.pdf"
1161
+ },
1162
+ "htmx": {
1163
+ "title": "HTMX Course",
1164
+ "kind": "course",
1165
+ "domain": "frontend",
1166
+ "sections": 53,
1167
+ "codeSamples": 55,
1168
+ "languages": [
1169
+ "html",
1170
+ "js",
1171
+ "javascript",
1172
+ "bash"
1173
+ ],
1174
+ "epub": "https://downloads.flaviocopes.com/course-downloads/htmx.epub",
1175
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/htmx.pdf"
1176
+ },
1177
+ "browser-internals": {
1178
+ "title": "Browser Internals Course",
1179
+ "kind": "course",
1180
+ "domain": "frontend",
1181
+ "sections": 63,
1182
+ "codeSamples": 133,
1183
+ "languages": [
1184
+ "js",
1185
+ "javascript",
1186
+ "html",
1187
+ "css",
1188
+ "bash"
1189
+ ],
1190
+ "epub": "https://downloads.flaviocopes.com/course-downloads/browser-internals.epub",
1191
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/browser-internals.pdf"
1192
+ },
1193
+ "browser-storage": {
1194
+ "title": "Browser Storage Course",
1195
+ "kind": "course",
1196
+ "domain": "frontend",
1197
+ "sections": 33,
1198
+ "codeSamples": 33,
1199
+ "languages": [
1200
+ "js",
1201
+ "javascript"
1202
+ ],
1203
+ "epub": "https://downloads.flaviocopes.com/course-downloads/browser-storage.epub",
1204
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/browser-storage.pdf"
1205
+ },
1206
+ "tailwind": {
1207
+ "title": "Tailwind CSS Course",
1208
+ "kind": "course",
1209
+ "domain": "frontend",
1210
+ "sections": 44,
1211
+ "codeSamples": 67,
1212
+ "languages": [
1213
+ "html",
1214
+ "css",
1215
+ "bash",
1216
+ "js",
1217
+ "javascript"
1218
+ ],
1219
+ "epub": "https://downloads.flaviocopes.com/course-downloads/tailwind.epub",
1220
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/tailwind.pdf"
1221
+ },
1222
+ "real-time-web-applications": {
1223
+ "title": "Real-time Web Applications Course",
1224
+ "kind": "course",
1225
+ "domain": "backend",
1226
+ "sections": 33,
1227
+ "codeSamples": 58,
1228
+ "languages": [
1229
+ "js",
1230
+ "javascript",
1231
+ "json",
1232
+ "bash"
1233
+ ],
1234
+ "epub": "https://downloads.flaviocopes.com/course-downloads/real-time-web-applications.epub",
1235
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/real-time-web-applications.pdf"
1236
+ },
1237
+ "npm-package-publishing": {
1238
+ "title": "npm and Package Publishing Course",
1239
+ "kind": "course",
1240
+ "domain": "backend",
1241
+ "sections": 33,
1242
+ "codeSamples": 65,
1243
+ "languages": [
1244
+ "bash",
1245
+ "json",
1246
+ "js",
1247
+ "javascript",
1248
+ "markdown"
1249
+ ],
1250
+ "epub": "https://downloads.flaviocopes.com/course-downloads/npm-package-publishing.epub",
1251
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/npm-package-publishing.pdf"
1252
+ },
1253
+ "express": {
1254
+ "title": "Express Course",
1255
+ "kind": "course",
1256
+ "domain": "backend",
1257
+ "sections": 33,
1258
+ "codeSamples": 87,
1259
+ "languages": [
1260
+ "js",
1261
+ "javascript",
1262
+ "bash",
1263
+ "json"
1264
+ ],
1265
+ "epub": "https://downloads.flaviocopes.com/course-downloads/express.epub",
1266
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/express.pdf"
1267
+ },
1268
+ "hono": {
1269
+ "title": "Hono Course",
1270
+ "kind": "course",
1271
+ "domain": "backend",
1272
+ "sections": 33,
1273
+ "codeSamples": 78,
1274
+ "languages": [
1275
+ "bash",
1276
+ "js",
1277
+ "javascript",
1278
+ "markdown",
1279
+ "ts"
1280
+ ],
1281
+ "epub": "https://downloads.flaviocopes.com/course-downloads/hono.epub",
1282
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/hono.pdf"
1283
+ },
1284
+ "alpinejs": {
1285
+ "title": "Alpine.js Course",
1286
+ "kind": "course",
1287
+ "domain": "frontend",
1288
+ "sections": 33,
1289
+ "codeSamples": 58,
1290
+ "languages": [
1291
+ "html",
1292
+ "js",
1293
+ "javascript",
1294
+ "css"
1295
+ ],
1296
+ "epub": "https://downloads.flaviocopes.com/course-downloads/alpinejs.epub",
1297
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/alpinejs.pdf"
1298
+ },
1299
+ "web-accessibility": {
1300
+ "title": "Web Accessibility Course",
1301
+ "kind": "course",
1302
+ "domain": "frontend",
1303
+ "sections": 33,
1304
+ "codeSamples": 72,
1305
+ "languages": [
1306
+ "html",
1307
+ "css",
1308
+ "js",
1309
+ "javascript",
1310
+ "bash"
1311
+ ],
1312
+ "epub": "https://downloads.flaviocopes.com/course-downloads/web-accessibility.epub",
1313
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/web-accessibility.pdf"
1314
+ },
1315
+ "ssh": {
1316
+ "title": "SSH Course",
1317
+ "kind": "course",
1318
+ "domain": "network",
1319
+ "sections": 33,
1320
+ "codeSamples": 141,
1321
+ "languages": [
1322
+ "bash"
1323
+ ],
1324
+ "epub": "https://downloads.flaviocopes.com/course-downloads/ssh.epub",
1325
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/ssh.pdf"
1326
+ },
1327
+ "vpn": {
1328
+ "title": "VPN Course",
1329
+ "kind": "course",
1330
+ "domain": "network",
1331
+ "sections": 45,
1332
+ "codeSamples": 63,
1333
+ "languages": [
1334
+ "bash",
1335
+ "ini"
1336
+ ],
1337
+ "epub": "https://downloads.flaviocopes.com/course-downloads/vpn.epub",
1338
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/vpn.pdf"
1339
+ },
1340
+ "tailscale": {
1341
+ "title": "Tailscale Course",
1342
+ "kind": "course",
1343
+ "domain": "network",
1344
+ "sections": 45,
1345
+ "codeSamples": 74,
1346
+ "languages": [
1347
+ "bash",
1348
+ "json"
1349
+ ],
1350
+ "epub": "https://downloads.flaviocopes.com/course-downloads/tailscale.epub",
1351
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/tailscale.pdf"
1352
+ },
1353
+ "github-actions-cicd": {
1354
+ "title": "GitHub Actions and CI/CD Course",
1355
+ "kind": "course",
1356
+ "domain": "infra",
1357
+ "sections": 33,
1358
+ "codeSamples": 39,
1359
+ "languages": [
1360
+ "yaml",
1361
+ "json",
1362
+ "bash",
1363
+ "js",
1364
+ "javascript"
1365
+ ],
1366
+ "epub": "https://downloads.flaviocopes.com/course-downloads/github-actions-cicd.epub",
1367
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/github-actions-cicd.pdf"
1368
+ },
1369
+ "ai-fundamentals": {
1370
+ "title": "AI Fundamentals Course",
1371
+ "kind": "course",
1372
+ "domain": "ai",
1373
+ "sections": 40,
1374
+ "codeSamples": 14,
1375
+ "languages": [
1376
+ "js",
1377
+ "javascript"
1378
+ ],
1379
+ "epub": "https://downloads.flaviocopes.com/course-downloads/ai-fundamentals.epub",
1380
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/ai-fundamentals.pdf"
1381
+ },
1382
+ "local-ai-models": {
1383
+ "title": "Local AI Models Course",
1384
+ "kind": "course",
1385
+ "domain": "ai",
1386
+ "sections": 42,
1387
+ "codeSamples": 37,
1388
+ "languages": [
1389
+ "bash",
1390
+ "js",
1391
+ "javascript",
1392
+ "json",
1393
+ "ts"
1394
+ ],
1395
+ "epub": "https://downloads.flaviocopes.com/course-downloads/local-ai-models.epub",
1396
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/local-ai-models.pdf"
1397
+ },
1398
+ "ai-agent-skills": {
1399
+ "title": "AI Agent Skills Course",
1400
+ "kind": "course",
1401
+ "domain": "ai",
1402
+ "sections": 33,
1403
+ "codeSamples": 32,
1404
+ "languages": [
1405
+ "bash",
1406
+ "markdown",
1407
+ "yaml",
1408
+ "js",
1409
+ "javascript"
1410
+ ],
1411
+ "epub": "https://downloads.flaviocopes.com/course-downloads/ai-agent-skills.epub",
1412
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/ai-agent-skills.pdf"
1413
+ },
1414
+ "language-model-builder": {
1415
+ "title": "Build a Language Model on Your Mac",
1416
+ "kind": "course",
1417
+ "domain": "ai",
1418
+ "sections": 38,
1419
+ "codeSamples": 25,
1420
+ "languages": [
1421
+ "markdown"
1422
+ ],
1423
+ "epub": "https://downloads.flaviocopes.com/course-downloads/language-model-builder.epub",
1424
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/language-model-builder.pdf"
1425
+ },
1426
+ "mcp": {
1427
+ "title": "MCP Course",
1428
+ "kind": "course",
1429
+ "domain": "ai",
1430
+ "sections": 17,
1431
+ "codeSamples": 1,
1432
+ "languages": [
1433
+ "json"
1434
+ ],
1435
+ "epub": "https://downloads.flaviocopes.com/course-downloads/mcp.epub",
1436
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/mcp.pdf"
1437
+ },
1438
+ "build-with-mcp": {
1439
+ "title": "Build with MCP",
1440
+ "kind": "course",
1441
+ "domain": "ai",
1442
+ "sections": 33,
1443
+ "codeSamples": 40,
1444
+ "languages": [
1445
+ "bash",
1446
+ "ts",
1447
+ "typescript",
1448
+ "json"
1449
+ ],
1450
+ "epub": "https://downloads.flaviocopes.com/course-downloads/build-with-mcp.epub",
1451
+ "pdf": "https://downloads.flaviocopes.com/course-downloads/build-with-mcp.pdf"
1452
+ },
1453
+ "cloudflare-domains": {
1454
+ "title": "Cloudflare Domains MCP + DNS CLI",
1455
+ "kind": "software",
1456
+ "domain": "infra",
1457
+ "license": "MIT",
1458
+ "language": "TypeScript",
1459
+ "repo": "https://github.com/flaviocopes/cloudflare-domains",
1460
+ "zip": "https://github.com/flaviocopes/cloudflare-domains/archive/refs/heads/main.zip"
1461
+ },
1462
+ "events-logger": {
1463
+ "title": "Events Logger",
1464
+ "kind": "software",
1465
+ "domain": "backend",
1466
+ "license": "MIT",
1467
+ "language": "Astro",
1468
+ "repo": "https://github.com/flaviocopes/events-logger",
1469
+ "zip": "https://github.com/flaviocopes/events-logger/archive/refs/heads/main.zip"
1470
+ },
1471
+ "livestream-recorder": {
1472
+ "title": "Livestream Recorder",
1473
+ "kind": "software",
1474
+ "domain": "apple",
1475
+ "license": "MIT",
1476
+ "language": "Swift",
1477
+ "repo": "https://github.com/flaviocopes/livestream-recorder",
1478
+ "zip": "https://github.com/flaviocopes/livestream-recorder/archive/refs/heads/main.zip"
1479
+ },
1480
+ "local-hoster": {
1481
+ "title": "Local Hoster",
1482
+ "kind": "software",
1483
+ "domain": "infra",
1484
+ "license": "MIT",
1485
+ "language": "JavaScript",
1486
+ "repo": "https://github.com/flaviocopes/local-hoster",
1487
+ "zip": "https://github.com/flaviocopes/local-hoster/archive/refs/heads/main.zip"
1488
+ },
1489
+ "plausible-automation": {
1490
+ "title": "Plausible Automation",
1491
+ "kind": "software",
1492
+ "domain": "infra",
1493
+ "license": "MIT",
1494
+ "language": "Python",
1495
+ "repo": "https://github.com/flaviocopes/plausible-automation",
1496
+ "zip": "https://github.com/flaviocopes/plausible-automation/archive/refs/heads/main.zip"
1497
+ },
1498
+ "port-pilot": {
1499
+ "title": "Port Pilot",
1500
+ "kind": "software",
1501
+ "domain": "infra",
1502
+ "license": "MIT",
1503
+ "language": "TypeScript",
1504
+ "repo": "https://github.com/flaviocopes/port-pilot",
1505
+ "zip": "https://github.com/flaviocopes/port-pilot/archive/refs/heads/main.zip"
1506
+ },
1507
+ "tte-js": {
1508
+ "title": "tte-js Terminal Text Effects",
1509
+ "kind": "software",
1510
+ "domain": "frontend",
1511
+ "license": "MIT",
1512
+ "language": "JavaScript",
1513
+ "repo": "https://github.com/flaviocopes/tte-js",
1514
+ "zip": "https://github.com/flaviocopes/tte-js/archive/refs/heads/main.zip"
1515
+ },
1516
+ "waiting-lists": {
1517
+ "title": "Waiting Lists",
1518
+ "kind": "software",
1519
+ "domain": "backend",
1520
+ "license": "MIT",
1521
+ "language": "TypeScript",
1522
+ "repo": "https://github.com/flaviocopes/waiting-lists",
1523
+ "zip": "https://github.com/flaviocopes/waiting-lists/archive/refs/heads/main.zip"
1524
+ }
1525
+ },
1526
+ "counts": {
1527
+ "total": 112,
1528
+ "books": 17,
1529
+ "courses": 87,
1530
+ "software": 8
1531
+ }
1532
+ }