@profullstack/builtindie 0.0.0-stage → 0.1.3

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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/OpenStack.md +74 -0
  3. package/README.md +63 -2
  4. package/bin/builtindie +3 -0
  5. package/package.json +35 -4
  6. package/public/app.js +35 -0
  7. package/public/favicon.svg +1 -0
  8. package/public/icon-192.png +0 -0
  9. package/public/icon-512.png +0 -0
  10. package/public/icons/openicon.json +574 -0
  11. package/public/icons/svg/apple.svg +1 -0
  12. package/public/icons/svg/arrow-up.svg +1 -0
  13. package/public/icons/svg/bluesky.svg +1 -0
  14. package/public/icons/svg/check.svg +1 -0
  15. package/public/icons/svg/chrome.svg +1 -0
  16. package/public/icons/svg/code.svg +1 -0
  17. package/public/icons/svg/discord.svg +1 -0
  18. package/public/icons/svg/dollar.svg +1 -0
  19. package/public/icons/svg/external-link.svg +1 -0
  20. package/public/icons/svg/github.svg +1 -0
  21. package/public/icons/svg/globe.svg +1 -0
  22. package/public/icons/svg/instagram.svg +1 -0
  23. package/public/icons/svg/layers.svg +1 -0
  24. package/public/icons/svg/link.svg +1 -0
  25. package/public/icons/svg/linkedin.svg +1 -0
  26. package/public/icons/svg/mail.svg +1 -0
  27. package/public/icons/svg/product-hunt.svg +1 -0
  28. package/public/icons/svg/reddit.svg +1 -0
  29. package/public/icons/svg/rocket.svg +1 -0
  30. package/public/icons/svg/search.svg +1 -0
  31. package/public/icons/svg/share.svg +1 -0
  32. package/public/icons/svg/star.svg +1 -0
  33. package/public/icons/svg/tag.svg +1 -0
  34. package/public/icons/svg/telegram.svg +1 -0
  35. package/public/icons/svg/terminal.svg +1 -0
  36. package/public/icons/svg/tiktok.svg +1 -0
  37. package/public/icons/svg/trophy.svg +1 -0
  38. package/public/icons/svg/user.svg +1 -0
  39. package/public/icons/svg/x.svg +1 -0
  40. package/public/icons/svg/youtube.svg +1 -0
  41. package/public/install.sh +44 -0
  42. package/public/manifest.webmanifest +20 -0
  43. package/public/moshpit-root-ca.crt +11 -0
  44. package/public/style.css +162 -0
  45. package/public/sw.js +30 -0
  46. package/src/auth.ts +96 -0
  47. package/src/cli.ts +203 -0
  48. package/src/client.ts +115 -0
  49. package/src/db.ts +412 -0
  50. package/src/fetch.ts +708 -0
  51. package/src/html.ts +525 -0
  52. package/src/icons.ts +56 -0
  53. package/src/mcp.ts +79 -0
  54. package/src/media.ts +160 -0
  55. package/src/ring.ts +86 -0
  56. package/src/server.ts +655 -0
  57. package/src/service.ts +369 -0
  58. package/src/tui.ts +127 -0
  59. package/src/version.ts +1 -0
@@ -0,0 +1,574 @@
1
+ {
2
+ "openicon": "0.1",
3
+ "name": "OpenIcon (built.indie subset)",
4
+ "version": "2026-10-10",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/profullstack/openicon",
7
+ "made_by": "ai",
8
+ "disclosure": "ai-generated",
9
+ "ai_model": "claude-opus-5-5",
10
+ "ai_provider": "Anthropic",
11
+ "grid": {
12
+ "size": 24,
13
+ "stroke": 2,
14
+ "padding": 2
15
+ },
16
+ "source": "https://github.com/profullstack/openicon/blob/main/openicon.json",
17
+ "icons": [
18
+ {
19
+ "key": "check",
20
+ "name": "Check",
21
+ "category": "action",
22
+ "keywords": [
23
+ "done",
24
+ "ok",
25
+ "tick",
26
+ "confirm"
27
+ ],
28
+ "svg": "svg/check.svg",
29
+ "tui": {
30
+ "nerd": "󰄬",
31
+ "nerd_code": "f012c",
32
+ "nerd_name": "md-check",
33
+ "unicode": "✓",
34
+ "ascii": "v"
35
+ }
36
+ },
37
+ {
38
+ "key": "search",
39
+ "name": "Search",
40
+ "category": "action",
41
+ "aliases": [
42
+ "magnify",
43
+ "find"
44
+ ],
45
+ "keywords": [
46
+ "lookup"
47
+ ],
48
+ "svg": "svg/search.svg",
49
+ "tui": {
50
+ "nerd": "󰍉",
51
+ "nerd_code": "f0349",
52
+ "nerd_name": "md-magnify",
53
+ "unicode": "🔍",
54
+ "ascii": "?"
55
+ }
56
+ },
57
+ {
58
+ "key": "share",
59
+ "name": "Share",
60
+ "category": "action",
61
+ "svg": "svg/share.svg",
62
+ "tui": {
63
+ "nerd": "󱔔",
64
+ "nerd_code": "f1514",
65
+ "nerd_name": "md-share_variant_outline",
66
+ "unicode": "⤴",
67
+ "ascii": "<"
68
+ }
69
+ },
70
+ {
71
+ "key": "external-link",
72
+ "name": "External link",
73
+ "category": "action",
74
+ "aliases": [
75
+ "open-in-new"
76
+ ],
77
+ "keywords": [
78
+ "open-new",
79
+ "launch"
80
+ ],
81
+ "svg": "svg/external-link.svg",
82
+ "tui": {
83
+ "nerd": "󰏌",
84
+ "nerd_code": "f03cc",
85
+ "nerd_name": "md-open_in_new",
86
+ "unicode": "↗",
87
+ "ascii": "->]"
88
+ }
89
+ },
90
+ {
91
+ "key": "star",
92
+ "name": "Star",
93
+ "category": "action",
94
+ "aliases": [
95
+ "favorite"
96
+ ],
97
+ "keywords": [
98
+ "rating"
99
+ ],
100
+ "svg": "svg/star.svg",
101
+ "tui": {
102
+ "nerd": "󰓒",
103
+ "nerd_code": "f04d2",
104
+ "nerd_name": "md-star_outline",
105
+ "unicode": "★",
106
+ "ascii": "*"
107
+ }
108
+ },
109
+ {
110
+ "key": "tag",
111
+ "name": "Tag",
112
+ "category": "action",
113
+ "aliases": [
114
+ "label"
115
+ ],
116
+ "svg": "svg/tag.svg",
117
+ "tui": {
118
+ "nerd": "󰓼",
119
+ "nerd_code": "f04fc",
120
+ "nerd_name": "md-tag_outline",
121
+ "unicode": "🏷",
122
+ "ascii": "#"
123
+ }
124
+ },
125
+ {
126
+ "key": "link",
127
+ "name": "Link",
128
+ "category": "action",
129
+ "keywords": [
130
+ "url",
131
+ "hyperlink",
132
+ "chain"
133
+ ],
134
+ "svg": "svg/link.svg",
135
+ "tui": {
136
+ "nerd": "󰌹",
137
+ "nerd_code": "f0339",
138
+ "nerd_name": "md-link_variant",
139
+ "unicode": "🔗",
140
+ "ascii": "~"
141
+ }
142
+ },
143
+ {
144
+ "key": "arrow-up",
145
+ "name": "Arrow up",
146
+ "category": "navigation",
147
+ "svg": "svg/arrow-up.svg",
148
+ "tui": {
149
+ "nerd": "󰁝",
150
+ "nerd_code": "f005d",
151
+ "nerd_name": "md-arrow_up",
152
+ "unicode": "↑",
153
+ "ascii": "^"
154
+ }
155
+ },
156
+ {
157
+ "key": "globe",
158
+ "name": "Globe",
159
+ "category": "navigation",
160
+ "aliases": [
161
+ "world",
162
+ "web"
163
+ ],
164
+ "keywords": [
165
+ "website",
166
+ "internet"
167
+ ],
168
+ "svg": "svg/globe.svg",
169
+ "tui": {
170
+ "nerd": "󰖟",
171
+ "nerd_code": "f059f",
172
+ "nerd_name": "md-web",
173
+ "unicode": "🌐",
174
+ "ascii": "(#)"
175
+ }
176
+ },
177
+ {
178
+ "key": "layers",
179
+ "name": "Layers",
180
+ "category": "navigation",
181
+ "keywords": [
182
+ "stack"
183
+ ],
184
+ "svg": "svg/layers.svg",
185
+ "tui": {
186
+ "nerd": "󰧾",
187
+ "nerd_code": "f09fe",
188
+ "nerd_name": "md-layers_outline",
189
+ "unicode": "☰",
190
+ "ascii": "="
191
+ }
192
+ },
193
+ {
194
+ "key": "mail",
195
+ "name": "Mail",
196
+ "category": "communication",
197
+ "aliases": [
198
+ "email",
199
+ "envelope"
200
+ ],
201
+ "keywords": [
202
+ "message",
203
+ "inbox"
204
+ ],
205
+ "svg": "svg/mail.svg",
206
+ "tui": {
207
+ "nerd": "󰇰",
208
+ "nerd_code": "f01f0",
209
+ "nerd_name": "md-email_outline",
210
+ "unicode": "✉",
211
+ "ascii": "@"
212
+ }
213
+ },
214
+ {
215
+ "key": "user",
216
+ "name": "User",
217
+ "category": "communication",
218
+ "aliases": [
219
+ "person",
220
+ "account",
221
+ "profile"
222
+ ],
223
+ "svg": "svg/user.svg",
224
+ "tui": {
225
+ "nerd": "󰀓",
226
+ "nerd_code": "f0013",
227
+ "nerd_name": "md-account_outline",
228
+ "unicode": "👤",
229
+ "ascii": "@"
230
+ }
231
+ },
232
+ {
233
+ "key": "dollar",
234
+ "name": "Dollar",
235
+ "category": "commerce",
236
+ "aliases": [
237
+ "usd",
238
+ "currency"
239
+ ],
240
+ "keywords": [
241
+ "money",
242
+ "price"
243
+ ],
244
+ "svg": "svg/dollar.svg",
245
+ "tui": {
246
+ "nerd": "󰇁",
247
+ "nerd_code": "f01c1",
248
+ "nerd_name": "md-currency_usd",
249
+ "unicode": "$",
250
+ "ascii": "$"
251
+ }
252
+ },
253
+ {
254
+ "key": "terminal",
255
+ "name": "Terminal",
256
+ "category": "dev",
257
+ "aliases": [
258
+ "console",
259
+ "shell",
260
+ "cli"
261
+ ],
262
+ "keywords": [
263
+ "command-line"
264
+ ],
265
+ "svg": "svg/terminal.svg",
266
+ "tui": {
267
+ "nerd": "󰆍",
268
+ "nerd_code": "f018d",
269
+ "nerd_name": "md-console",
270
+ "unicode": "⌨",
271
+ "ascii": ">_"
272
+ }
273
+ },
274
+ {
275
+ "key": "code",
276
+ "name": "Code",
277
+ "category": "dev",
278
+ "aliases": [
279
+ "source-code"
280
+ ],
281
+ "keywords": [
282
+ "source",
283
+ "html",
284
+ "develop"
285
+ ],
286
+ "svg": "svg/code.svg",
287
+ "tui": {
288
+ "nerd": "󰅴",
289
+ "nerd_code": "f0174",
290
+ "nerd_name": "md-code_tags",
291
+ "unicode": "⟨⟩",
292
+ "ascii": "</>"
293
+ }
294
+ },
295
+ {
296
+ "key": "trophy",
297
+ "name": "Trophy",
298
+ "category": "misc",
299
+ "aliases": [
300
+ "prize"
301
+ ],
302
+ "keywords": [
303
+ "winner",
304
+ "leaderboard"
305
+ ],
306
+ "svg": "svg/trophy.svg",
307
+ "tui": {
308
+ "nerd": "󰔺",
309
+ "nerd_code": "f053a",
310
+ "nerd_name": "md-trophy_outline",
311
+ "unicode": "🏆",
312
+ "ascii": "\\_/"
313
+ }
314
+ },
315
+ {
316
+ "key": "rocket",
317
+ "name": "Rocket",
318
+ "category": "misc",
319
+ "aliases": [
320
+ "deploy"
321
+ ],
322
+ "keywords": [
323
+ "launch",
324
+ "ship",
325
+ "startup"
326
+ ],
327
+ "svg": "svg/rocket.svg",
328
+ "tui": {
329
+ "nerd": "󱓟",
330
+ "nerd_code": "f14df",
331
+ "nerd_name": "md-rocket_launch_outline",
332
+ "unicode": "🚀",
333
+ "ascii": "^"
334
+ }
335
+ },
336
+ {
337
+ "key": "github",
338
+ "name": "GitHub",
339
+ "category": "brand",
340
+ "brand": true,
341
+ "trademark": "GitHub and its logo are trademarks of their owner. Use them to refer to GitHub, not to imply endorsement.",
342
+ "source": "simple-icons:github",
343
+ "license": "CC0-1.0",
344
+ "made_by": "human",
345
+ "svg": "svg/github.svg",
346
+ "tui": {
347
+ "nerd": "󰊤",
348
+ "nerd_code": "f02a4",
349
+ "nerd_name": "md-github",
350
+ "unicode": "🐙",
351
+ "ascii": "gh"
352
+ }
353
+ },
354
+ {
355
+ "key": "x",
356
+ "name": "X",
357
+ "category": "brand",
358
+ "aliases": [
359
+ "twitter"
360
+ ],
361
+ "brand": true,
362
+ "trademark": "X and its logo are trademarks of their owner. Use them to refer to X, not to imply endorsement.",
363
+ "source": "simple-icons:x",
364
+ "license": "CC0-1.0",
365
+ "made_by": "human",
366
+ "svg": "svg/x.svg",
367
+ "tui": {
368
+ "nerd": "󰬅",
369
+ "nerd_code": "f0b05",
370
+ "nerd_name": "md-alpha_x",
371
+ "unicode": "𝕏",
372
+ "ascii": "x"
373
+ }
374
+ },
375
+ {
376
+ "key": "bluesky",
377
+ "name": "Bluesky",
378
+ "category": "brand",
379
+ "brand": true,
380
+ "trademark": "Bluesky and its logo are trademarks of their owner. Use them to refer to Bluesky, not to imply endorsement.",
381
+ "source": "simple-icons:bluesky",
382
+ "license": "CC0-1.0",
383
+ "made_by": "human",
384
+ "svg": "svg/bluesky.svg",
385
+ "tui": {
386
+ "nerd": "󱖉",
387
+ "nerd_code": "f1589",
388
+ "nerd_name": "md-butterfly",
389
+ "unicode": "🦋",
390
+ "ascii": "bsky"
391
+ }
392
+ },
393
+ {
394
+ "key": "instagram",
395
+ "name": "Instagram",
396
+ "category": "brand",
397
+ "brand": true,
398
+ "trademark": "Instagram and its logo are trademarks of their owner. Use them to refer to Instagram, not to imply endorsement.",
399
+ "source": "simple-icons:instagram",
400
+ "license": "CC0-1.0",
401
+ "made_by": "human",
402
+ "svg": "svg/instagram.svg",
403
+ "tui": {
404
+ "nerd": "󰋾",
405
+ "nerd_code": "f02fe",
406
+ "nerd_name": "md-instagram",
407
+ "unicode": "📷",
408
+ "ascii": "ig"
409
+ }
410
+ },
411
+ {
412
+ "key": "tiktok",
413
+ "name": "TikTok",
414
+ "category": "brand",
415
+ "brand": true,
416
+ "trademark": "TikTok and its logo are trademarks of their owner. Use them to refer to TikTok, not to imply endorsement.",
417
+ "source": "simple-icons:tiktok",
418
+ "license": "CC0-1.0",
419
+ "made_by": "human",
420
+ "svg": "svg/tiktok.svg",
421
+ "tui": {
422
+ "nerd": "󰎇",
423
+ "nerd_code": "f0387",
424
+ "nerd_name": "md-music_note",
425
+ "unicode": "♪",
426
+ "ascii": "tt"
427
+ }
428
+ },
429
+ {
430
+ "key": "youtube",
431
+ "name": "YouTube",
432
+ "category": "brand",
433
+ "brand": true,
434
+ "trademark": "YouTube and its logo are trademarks of their owner. Use them to refer to YouTube, not to imply endorsement.",
435
+ "source": "simple-icons:youtube",
436
+ "license": "CC0-1.0",
437
+ "made_by": "human",
438
+ "svg": "svg/youtube.svg",
439
+ "tui": {
440
+ "nerd": "󰗃",
441
+ "nerd_code": "f05c3",
442
+ "nerd_name": "md-youtube",
443
+ "unicode": "▶",
444
+ "ascii": "yt"
445
+ }
446
+ },
447
+ {
448
+ "key": "reddit",
449
+ "name": "Reddit",
450
+ "category": "brand",
451
+ "brand": true,
452
+ "trademark": "Reddit and its logo are trademarks of their owner. Use them to refer to Reddit, not to imply endorsement.",
453
+ "source": "simple-icons:reddit",
454
+ "license": "CC0-1.0",
455
+ "made_by": "human",
456
+ "svg": "svg/reddit.svg",
457
+ "tui": {
458
+ "nerd": "󰑍",
459
+ "nerd_code": "f044d",
460
+ "nerd_name": "md-reddit",
461
+ "unicode": "👽",
462
+ "ascii": "rd"
463
+ }
464
+ },
465
+ {
466
+ "key": "discord",
467
+ "name": "Discord",
468
+ "category": "brand",
469
+ "brand": true,
470
+ "trademark": "Discord and its logo are trademarks of their owner. Use them to refer to Discord, not to imply endorsement.",
471
+ "source": "simple-icons:discord",
472
+ "license": "CC0-1.0",
473
+ "made_by": "human",
474
+ "svg": "svg/discord.svg",
475
+ "tui": {
476
+ "nerd": "󰙯",
477
+ "nerd_code": "f066f",
478
+ "nerd_name": "md-discord",
479
+ "unicode": "🎮",
480
+ "ascii": "dc"
481
+ }
482
+ },
483
+ {
484
+ "key": "telegram",
485
+ "name": "Telegram",
486
+ "category": "brand",
487
+ "brand": true,
488
+ "trademark": "Telegram and its logo are trademarks of their owner. Use them to refer to Telegram, not to imply endorsement.",
489
+ "source": "simple-icons:telegram",
490
+ "license": "CC0-1.0",
491
+ "made_by": "human",
492
+ "svg": "svg/telegram.svg",
493
+ "tui": {
494
+ "nerd": "",
495
+ "nerd_code": "f2c6",
496
+ "nerd_name": "fa-telegram",
497
+ "unicode": "✈",
498
+ "ascii": "tg"
499
+ }
500
+ },
501
+ {
502
+ "key": "product-hunt",
503
+ "name": "Product Hunt",
504
+ "category": "brand",
505
+ "brand": true,
506
+ "trademark": "Product Hunt and its logo are trademarks of their owner. Use them to refer to Product Hunt, not to imply endorsement.",
507
+ "source": "simple-icons:producthunt",
508
+ "license": "CC0-1.0",
509
+ "made_by": "human",
510
+ "svg": "svg/product-hunt.svg",
511
+ "tui": {
512
+ "nerd": "",
513
+ "nerd_code": "f288",
514
+ "nerd_name": "fa-product_hunt",
515
+ "unicode": "Ⓟ",
516
+ "ascii": "ph"
517
+ }
518
+ },
519
+ {
520
+ "key": "apple",
521
+ "name": "Apple",
522
+ "category": "brand",
523
+ "brand": true,
524
+ "trademark": "Apple and its logo are trademarks of their owner. Use them to refer to Apple, not to imply endorsement.",
525
+ "source": "simple-icons:apple",
526
+ "license": "CC0-1.0",
527
+ "made_by": "human",
528
+ "svg": "svg/apple.svg",
529
+ "tui": {
530
+ "nerd": "󰀵",
531
+ "nerd_code": "f0035",
532
+ "nerd_name": "md-apple",
533
+ "unicode": "🍎",
534
+ "ascii": "mac"
535
+ }
536
+ },
537
+ {
538
+ "key": "chrome",
539
+ "name": "Chrome",
540
+ "category": "brand",
541
+ "brand": true,
542
+ "trademark": "Chrome and its logo are trademarks of their owner. Use them to refer to Chrome, not to imply endorsement.",
543
+ "source": "simple-icons:googlechrome",
544
+ "license": "CC0-1.0",
545
+ "made_by": "human",
546
+ "svg": "svg/chrome.svg",
547
+ "tui": {
548
+ "nerd": "󰊯",
549
+ "nerd_code": "f02af",
550
+ "nerd_name": "md-google_chrome",
551
+ "unicode": "◉",
552
+ "ascii": "chr"
553
+ }
554
+ },
555
+ {
556
+ "key": "linkedin",
557
+ "name": "LinkedIn",
558
+ "category": "brand",
559
+ "brand": true,
560
+ "trademark": "LinkedIn and its logo are trademarks of their owner. Use them to refer to LinkedIn, not to imply endorsement.",
561
+ "source": "font-awesome:linkedin",
562
+ "license": "CC-BY-4.0",
563
+ "made_by": "human",
564
+ "svg": "svg/linkedin.svg",
565
+ "tui": {
566
+ "nerd": "󰌻",
567
+ "nerd_code": "f033b",
568
+ "nerd_name": "md-linkedin",
569
+ "unicode": "ⓘ",
570
+ "ascii": "in"
571
+ }
572
+ }
573
+ ]
574
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Apple</title><g transform="translate(2 2) scale(0.83333)"><path d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Arrow up</title><path d="M12 19V5M5 12l7-7 7 7"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Bluesky</title><g transform="translate(2 2) scale(0.83333)"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Check</title><path d="M20 6 9 17l-5-5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Chrome</title><g transform="translate(2 2) scale(0.83333)"><path d="M12 0C8.21 0 4.831 1.757 2.632 4.501l3.953 6.848A5.454 5.454 0 0 1 12 6.545h10.691A12 12 0 0 0 12 0zM1.931 5.47A11.943 11.943 0 0 0 0 12c0 6.012 4.42 10.991 10.189 11.864l3.953-6.847a5.45 5.45 0 0 1-6.865-2.29zm13.342 2.166a5.446 5.446 0 0 1 1.45 7.09l.002.001h-.002l-5.344 9.257c.206.01.413.016.621.016 6.627 0 12-5.373 12-12 0-1.54-.29-3.011-.818-4.364zM12 16.364a4.364 4.364 0 1 1 0-8.728 4.364 4.364 0 0 1 0 8.728Z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Code</title><path d="m16 18 6-6-6-6M8 6l-6 6 6 6"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Discord</title><g transform="translate(2 2) scale(0.83333)"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Dollar</title><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>External link</title><path d="M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>GitHub</title><g transform="translate(2 2) scale(0.83333)"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Globe</title><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15 15 0 0 1 4 10 15 15 0 0 1-4 10 15 15 0 0 1-4-10 15 15 0 0 1 4-10z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Instagram</title><g transform="translate(2 2) scale(0.83333)"><path d="M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Layers</title><path d="m12 2 10 5-10 5L2 7z"/><path d="m2 17 10 5 10-5M2 12l10 5 10-5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Link</title><path d="M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7"/><path d="M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>LinkedIn</title><g transform="translate(3.25 2) scale(0.03906)"><path d="M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Mail</title><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-10 6L2 7"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Product Hunt</title><g transform="translate(2 2) scale(0.83333)"><path d="M13.604 8.4h-3.405V12h3.405c.995 0 1.801-.806 1.801-1.801 0-.993-.805-1.799-1.801-1.799zM12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zm1.604 14.4h-3.405V18H7.801V6h5.804c2.319 0 4.2 1.88 4.2 4.199 0 2.321-1.881 4.201-4.201 4.201z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><title>Reddit</title><g transform="translate(2 2) scale(0.83333)"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Rocket</title><path d="M4.5 16.5c-1.5 1.3-2 5-2 5s3.7-.5 5-2c.7-.8.7-2.1-.1-2.9a2.2 2.2 0 0 0-2.9-.1z"/><path d="m12 15-3-3a22 22 0 0 1 2-3.9A12.9 12.9 0 0 1 22 2c0 2.7-.8 7.5-6 11a22.4 22.4 0 0 1-4 2z"/><path d="M9 12H4s.6-3 2-4c1.6-1.1 5 0 5 0M12 15v5s3-.6 4-2c1.1-1.6 0-5 0-5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Search</title><circle cx="11" cy="11" r="7"/><path d="m21 21-5-5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Share</title><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.6 13.5 6.8 4M15.4 6.5l-6.8 4"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Star</title><path d="m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8-6.2-3.2-6.2 3.2L7 14.2 2 9.3l6.9-1z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Tag</title><path d="M12.6 2.6A2 2 0 0 0 11.2 2H4a2 2 0 0 0-2 2v7.2a2 2 0 0 0 .6 1.4l8.7 8.7a2.4 2.4 0 0 0 3.4 0l6.6-6.6a2.4 2.4 0 0 0 0-3.4z"/><circle cx="7.5" cy="7.5" r="1"/></svg>