@grove-dev/astro 0.2.20 → 0.3.2
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.
- package/LICENSE +21 -0
- package/README.md +9 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/display.d.ts +1 -26
- package/dist/lib/display.d.ts.map +1 -1
- package/dist/lib/display.js +1 -103
- package/dist/lib/display.js.map +1 -1
- package/dist/lib/format.d.ts +1 -28
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +1 -71
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/lenses.d.ts +1 -57
- package/dist/lib/lenses.d.ts.map +1 -1
- package/dist/lib/lenses.js +1 -198
- package/dist/lib/lenses.js.map +1 -1
- package/dist/lib/repo.d.ts +1 -19
- package/dist/lib/repo.d.ts.map +1 -1
- package/dist/lib/repo.js +1 -30
- package/dist/lib/repo.js.map +1 -1
- package/dist/lib/scores.d.ts +1 -36
- package/dist/lib/scores.d.ts.map +1 -1
- package/dist/lib/scores.js +1 -75
- package/dist/lib/scores.js.map +1 -1
- package/dist/lib/search.d.ts +1 -113
- package/dist/lib/search.d.ts.map +1 -1
- package/dist/lib/search.js +1 -379
- package/dist/lib/search.js.map +1 -1
- package/dist/lib/taxonomy-counts.d.ts +1 -10
- package/dist/lib/taxonomy-counts.d.ts.map +1 -1
- package/dist/lib/taxonomy-counts.js +1 -21
- package/dist/lib/taxonomy-counts.js.map +1 -1
- package/package.json +22 -10
- package/src/components/ContributorsGrid.astro +3 -3
- package/src/components/CurationGrid.astro +2 -2
- package/src/components/DirectoryIndexClient.astro +240 -0
- package/src/components/FilterGroupMenu.astro +8 -4
- package/src/components/FinalCta.astro +41 -0
- package/src/components/Hero.astro +15 -18
- package/src/components/Icon.astro +99 -27
- package/src/components/RefinePanel.astro +7 -7
- package/src/components/SmartLensTabs.astro +5 -4
- package/src/components/StackGrid.astro +1 -1
- package/src/components/SubmissionClient.astro +133 -0
- package/src/index.ts +11 -1
- package/src/layouts/BaseLayout.astro +19 -1
- package/src/layouts/Footer.astro +25 -56
- package/src/layouts/Header.astro +33 -15
- package/src/layouts/ThemeToggle.astro +7 -3
- package/src/lib/display.ts +1 -111
- package/src/lib/format.ts +1 -64
- package/src/lib/lenses.ts +1 -220
- package/src/lib/repo.ts +1 -32
- package/src/lib/scores.ts +1 -90
- package/src/lib/search.ts +1 -418
- package/src/lib/taxonomy-counts.ts +1 -26
- package/{templates/default/src/data/records.ts → src/server/directory.ts} +90 -8
- package/src/server/index.ts +2 -0
- package/src/server/models.ts +432 -0
- package/dist/theme.test.d.ts +0 -2
- package/dist/theme.test.d.ts.map +0 -1
- package/dist/theme.test.js +0 -55
- package/dist/theme.test.js.map +0 -1
- package/src/theme.test.ts +0 -67
- package/templates/default/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
- package/templates/default/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/templates/default/.github/ISSUE_TEMPLATE/record_submission.md +0 -48
- package/templates/default/.github/pull_request_template.md +0 -27
- package/templates/default/.github/workflows/build.yml +0 -55
- package/templates/default/.github/workflows/cleanup-stale-records.yml +0 -48
- package/templates/default/.github/workflows/daily-refresh.yml +0 -53
- package/templates/default/.github/workflows/sync-contributors.yml +0 -53
- package/templates/default/.github/workflows/sync-github-metadata.yml +0 -58
- package/templates/default/.github/workflows/validate-data.yml +0 -35
- package/templates/default/astro.config.mjs +0 -25
- package/templates/default/content/pages/about.md +0 -66
- package/templates/default/content/pages/methodology.md +0 -103
- package/templates/default/data/records/.gitkeep +0 -0
- package/templates/default/data/records/coolify.yml +0 -46
- package/templates/default/data/records/gitea.yml +0 -46
- package/templates/default/data/records/hoppscotch.yml +0 -47
- package/templates/default/data/records/inventree.yml +0 -47
- package/templates/default/data/records/label-studio.yml +0 -46
- package/templates/default/data/records/logseq.yml +0 -48
- package/templates/default/data/records/private-gpt.yml +0 -47
- package/templates/default/data/records/wakapi.yml +0 -44
- package/templates/default/data/taxonomy/categories.yml +0 -47
- package/templates/default/data/taxonomy/distribution-channels.yml +0 -43
- package/templates/default/data/taxonomy/platforms.yml +0 -27
- package/templates/default/data/taxonomy/stacks.yml +0 -41
- package/templates/default/grove.config.ts +0 -36
- package/templates/default/package.json +0 -38
- package/templates/default/public/icons/platforms/android.svg +0 -1
- package/templates/default/public/icons/platforms/apple-dark.svg +0 -1
- package/templates/default/public/icons/platforms/apple-light.svg +0 -1
- package/templates/default/public/icons/platforms/chrome.svg +0 -1
- package/templates/default/public/icons/platforms/chromeos.svg +0 -5
- package/templates/default/public/icons/platforms/desktop.svg +0 -4
- package/templates/default/public/icons/platforms/embedded.svg +0 -5
- package/templates/default/public/icons/platforms/ios.svg +0 -1
- package/templates/default/public/icons/platforms/linux.svg +0 -1
- package/templates/default/public/icons/platforms/macos.svg +0 -1
- package/templates/default/public/icons/platforms/ubuntu.svg +0 -1
- package/templates/default/public/icons/platforms/web.svg +0 -5
- package/templates/default/public/icons/platforms/windows.svg +0 -6
- package/templates/default/public/icons/stacks/android.svg +0 -1
- package/templates/default/public/icons/stacks/apple-dark.svg +0 -1
- package/templates/default/public/icons/stacks/apple-light.svg +0 -1
- package/templates/default/public/icons/stacks/bun.svg +0 -1
- package/templates/default/public/icons/stacks/capacitor.svg +0 -14
- package/templates/default/public/icons/stacks/clojure.svg +0 -1
- package/templates/default/public/icons/stacks/clojurescript.svg +0 -1
- package/templates/default/public/icons/stacks/dart.svg +0 -1
- package/templates/default/public/icons/stacks/deno.svg +0 -1
- package/templates/default/public/icons/stacks/django.svg +0 -1
- package/templates/default/public/icons/stacks/docker.svg +0 -1
- package/templates/default/public/icons/stacks/firebase.svg +0 -1
- package/templates/default/public/icons/stacks/flutter.svg +0 -1
- package/templates/default/public/icons/stacks/go.svg +0 -1
- package/templates/default/public/icons/stacks/graphql.svg +0 -1
- package/templates/default/public/icons/stacks/ionic.svg +0 -4
- package/templates/default/public/icons/stacks/java.svg +0 -1
- package/templates/default/public/icons/stacks/javascript.svg +0 -1
- package/templates/default/public/icons/stacks/kotlin.svg +0 -1
- package/templates/default/public/icons/stacks/llm.svg +0 -1
- package/templates/default/public/icons/stacks/mongodb.svg +0 -1
- package/templates/default/public/icons/stacks/node.js.svg +0 -1
- package/templates/default/public/icons/stacks/nodejs.svg +0 -1
- package/templates/default/public/icons/stacks/python.svg +0 -1
- package/templates/default/public/icons/stacks/rag.svg +0 -7
- package/templates/default/public/icons/stacks/react-native.svg +0 -1
- package/templates/default/public/icons/stacks/react.svg +0 -1
- package/templates/default/public/icons/stacks/rust.svg +0 -1
- package/templates/default/public/icons/stacks/solidity.svg +0 -1
- package/templates/default/public/icons/stacks/sveltekit.svg +0 -1
- package/templates/default/public/icons/stacks/swift.svg +0 -1
- package/templates/default/public/icons/stacks/tensorflow.svg +0 -1
- package/templates/default/public/icons/stacks/typescript.svg +0 -1
- package/templates/default/public/icons/stacks/vue.svg +0 -1
- package/templates/default/public/llms-full.txt +0 -206
- package/templates/default/public/llms.txt +0 -112
- package/templates/default/public/og-image.svg +0 -48
- package/templates/default/public/robots.txt +0 -53
- package/templates/default/public/sitemap.xml +0 -63
- package/templates/default/scripts/build-llms.mjs +0 -123
- package/templates/default/scripts/build-records-json.mjs +0 -27
- package/templates/default/scripts/build-sitemap.mjs +0 -20
- package/templates/default/scripts/cleanup-stale-records.mjs +0 -20
- package/templates/default/scripts/enrich-github-metadata.mjs +0 -99
- package/templates/default/scripts/fetch-icons.mjs +0 -137
- package/templates/default/scripts/migrate-legacy-to-schema-v1.mjs +0 -86
- package/templates/default/scripts/parse-legacy-readme.mjs +0 -59
- package/templates/default/scripts/refresh-records-activity.mjs +0 -24
- package/templates/default/scripts/repair-license-format.mjs +0 -72
- package/templates/default/scripts/report-cleanup-candidates.mjs +0 -21
- package/templates/default/scripts/seed-from-github.mjs +0 -62
- package/templates/default/scripts/sync-contributors.mjs +0 -145
- package/templates/default/scripts/sync-github-metadata.mjs +0 -28
- package/templates/default/scripts/validate-records.mjs +0 -27
- package/templates/default/src/pages/404.astro +0 -64
- package/templates/default/src/pages/[slug]/[recordSlug].astro +0 -689
- package/templates/default/src/pages/[slug]/index.astro +0 -278
- package/templates/default/src/pages/about.astro +0 -182
- package/templates/default/src/pages/apps/[recordSlug].astro +0 -33
- package/templates/default/src/pages/contributors.astro +0 -175
- package/templates/default/src/pages/index.astro +0 -225
- package/templates/default/src/pages/sitemap.xml.ts +0 -89
- package/templates/default/src/pages/submit.astro +0 -281
- package/templates/default/src/styles/global.css +0 -33
- package/templates/default/wrangler.jsonc +0 -28
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
kind: project
|
|
2
|
-
name: InvenTree
|
|
3
|
-
slug: inventree
|
|
4
|
-
description: Open-source inventory management system with parts, stock, and purchase orders.
|
|
5
|
-
category: Mobile
|
|
6
|
-
tags:
|
|
7
|
-
- inventory
|
|
8
|
-
- stock
|
|
9
|
-
- mobile
|
|
10
|
-
- dart
|
|
11
|
-
- flutter
|
|
12
|
-
stack: Flutter
|
|
13
|
-
stacks:
|
|
14
|
-
- Flutter
|
|
15
|
-
- Dart
|
|
16
|
-
platforms:
|
|
17
|
-
- ios
|
|
18
|
-
- android
|
|
19
|
-
- web
|
|
20
|
-
projectType: real-app
|
|
21
|
-
difficulty: intermediate
|
|
22
|
-
codebaseSize: large
|
|
23
|
-
repoUrl: https://github.com/inventree/InvenTree
|
|
24
|
-
links:
|
|
25
|
-
github: https://github.com/inventree/InvenTree
|
|
26
|
-
website: https://inventree.org
|
|
27
|
-
bestFor:
|
|
28
|
-
- Inventory tracking
|
|
29
|
-
- Manufacturing
|
|
30
|
-
- Hardware projects
|
|
31
|
-
whyListed:
|
|
32
|
-
- Production-grade mobile + web stack
|
|
33
|
-
- Strong community
|
|
34
|
-
- Cleanly factored Dart codebase
|
|
35
|
-
caveats: []
|
|
36
|
-
distribution:
|
|
37
|
-
channels: []
|
|
38
|
-
source:
|
|
39
|
-
type: manual
|
|
40
|
-
curation:
|
|
41
|
-
reviewed: true
|
|
42
|
-
reviewedBy: grove-bot
|
|
43
|
-
reviewedAt: "2026-06-13"
|
|
44
|
-
labels:
|
|
45
|
-
- mature
|
|
46
|
-
lenses: []
|
|
47
|
-
visibility: keep
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
kind: project
|
|
2
|
-
name: Label Studio
|
|
3
|
-
slug: label-studio
|
|
4
|
-
description: Open-source data labeling platform — annotate images, text, audio, video, and time series for ML training.
|
|
5
|
-
category: AI/ML
|
|
6
|
-
tags:
|
|
7
|
-
- labeling
|
|
8
|
-
- ml-ops
|
|
9
|
-
- annotation
|
|
10
|
-
- python
|
|
11
|
-
stack: Python
|
|
12
|
-
stacks:
|
|
13
|
-
- Python
|
|
14
|
-
- Django
|
|
15
|
-
- React
|
|
16
|
-
platforms:
|
|
17
|
-
- web
|
|
18
|
-
- self-host
|
|
19
|
-
projectType: real-app
|
|
20
|
-
difficulty: intermediate
|
|
21
|
-
codebaseSize: large
|
|
22
|
-
repoUrl: https://github.com/HumanSignal/label-studio
|
|
23
|
-
links:
|
|
24
|
-
github: https://github.com/HumanSignal/label-studio
|
|
25
|
-
website: https://labelstud.io
|
|
26
|
-
bestFor:
|
|
27
|
-
- ML dataset labeling
|
|
28
|
-
- Multi-modal annotation
|
|
29
|
-
- Active learning pipelines
|
|
30
|
-
whyListed:
|
|
31
|
-
- Mature, production-grade
|
|
32
|
-
- Strong ML backend
|
|
33
|
-
- Active commercial + community backing
|
|
34
|
-
caveats: []
|
|
35
|
-
distribution:
|
|
36
|
-
channels: []
|
|
37
|
-
source:
|
|
38
|
-
type: manual
|
|
39
|
-
curation:
|
|
40
|
-
reviewed: true
|
|
41
|
-
reviewedBy: grove-bot
|
|
42
|
-
reviewedAt: "2026-06-13"
|
|
43
|
-
labels:
|
|
44
|
-
- mature
|
|
45
|
-
lenses: []
|
|
46
|
-
visibility: keep
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
kind: project
|
|
2
|
-
name: Logseq
|
|
3
|
-
slug: logseq
|
|
4
|
-
description: Privacy-first, open-source knowledge base that works on top of plain text Markdown and Org-mode files.
|
|
5
|
-
category: Web
|
|
6
|
-
tags:
|
|
7
|
-
- notes
|
|
8
|
-
- knowledge-base
|
|
9
|
-
- productivity
|
|
10
|
-
- clojure
|
|
11
|
-
stack: ClojureScript
|
|
12
|
-
stacks:
|
|
13
|
-
- ClojureScript
|
|
14
|
-
- Clojure
|
|
15
|
-
- JavaScript
|
|
16
|
-
platforms:
|
|
17
|
-
- web
|
|
18
|
-
- desktop
|
|
19
|
-
projectType: real-app
|
|
20
|
-
difficulty: intermediate
|
|
21
|
-
codebaseSize: huge
|
|
22
|
-
repoUrl: https://github.com/logseq/logseq
|
|
23
|
-
links:
|
|
24
|
-
github: https://github.com/logseq/logseq
|
|
25
|
-
website: https://logseq.com
|
|
26
|
-
bestFor:
|
|
27
|
-
- PKM (personal knowledge management)
|
|
28
|
-
- Local-first note taking
|
|
29
|
-
- Graph-based outliner
|
|
30
|
-
whyListed:
|
|
31
|
-
- Local-first with sync
|
|
32
|
-
- Active community
|
|
33
|
-
- Strong plugin ecosystem
|
|
34
|
-
caveats:
|
|
35
|
-
- Mobile app still maturing
|
|
36
|
-
distribution:
|
|
37
|
-
channels: []
|
|
38
|
-
source:
|
|
39
|
-
type: manual
|
|
40
|
-
curation:
|
|
41
|
-
reviewed: true
|
|
42
|
-
reviewedBy: grove-bot
|
|
43
|
-
reviewedAt: "2026-06-13"
|
|
44
|
-
labels:
|
|
45
|
-
- hot
|
|
46
|
-
- mature
|
|
47
|
-
lenses: []
|
|
48
|
-
visibility: keep
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
kind: project
|
|
2
|
-
name: PrivateGPT
|
|
3
|
-
slug: private-gpt
|
|
4
|
-
description: Interact privately with your documents using LLMs — 100% private, no data leaves your execution environment.
|
|
5
|
-
category: AI/ML
|
|
6
|
-
tags:
|
|
7
|
-
- llm
|
|
8
|
-
- rag
|
|
9
|
-
- privacy
|
|
10
|
-
- python
|
|
11
|
-
stack: Python
|
|
12
|
-
stacks:
|
|
13
|
-
- Python
|
|
14
|
-
- LLM
|
|
15
|
-
- RAG
|
|
16
|
-
platforms:
|
|
17
|
-
- linux
|
|
18
|
-
- macos
|
|
19
|
-
- self-host
|
|
20
|
-
projectType: real-app
|
|
21
|
-
difficulty: intermediate
|
|
22
|
-
codebaseSize: medium
|
|
23
|
-
repoUrl: https://github.com/zylon-ai/private-gpt
|
|
24
|
-
links:
|
|
25
|
-
github: https://github.com/zylon-ai/private-gpt
|
|
26
|
-
bestFor:
|
|
27
|
-
- Private document Q&A
|
|
28
|
-
- Local LLM experimentation
|
|
29
|
-
- Enterprise privacy use cases
|
|
30
|
-
whyListed:
|
|
31
|
-
- Strict no-network mode
|
|
32
|
-
- Pluggable LLM providers
|
|
33
|
-
- Clean ingestion pipeline
|
|
34
|
-
caveats:
|
|
35
|
-
- GPU recommended for best results
|
|
36
|
-
distribution:
|
|
37
|
-
channels: []
|
|
38
|
-
source:
|
|
39
|
-
type: manual
|
|
40
|
-
curation:
|
|
41
|
-
reviewed: true
|
|
42
|
-
reviewedBy: grove-bot
|
|
43
|
-
reviewedAt: "2026-06-13"
|
|
44
|
-
labels:
|
|
45
|
-
- hot
|
|
46
|
-
lenses: []
|
|
47
|
-
visibility: keep
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
kind: project
|
|
2
|
-
name: Wakapi
|
|
3
|
-
slug: wakapi
|
|
4
|
-
description: Open-source time tracker for developers — coding stats, language breakdowns, and project-level metrics.
|
|
5
|
-
category: Mobile
|
|
6
|
-
tags:
|
|
7
|
-
- time-tracking
|
|
8
|
-
- analytics
|
|
9
|
-
- mobile
|
|
10
|
-
- kotlin
|
|
11
|
-
stack: Kotlin
|
|
12
|
-
stacks:
|
|
13
|
-
- Kotlin
|
|
14
|
-
- Android
|
|
15
|
-
platforms:
|
|
16
|
-
- android
|
|
17
|
-
projectType: real-app
|
|
18
|
-
difficulty: beginner
|
|
19
|
-
codebaseSize: medium
|
|
20
|
-
repoUrl: https://github.com/muety/wakapi
|
|
21
|
-
links:
|
|
22
|
-
github: https://github.com/muety/wakapi
|
|
23
|
-
website: https://wakapi.dev
|
|
24
|
-
bestFor:
|
|
25
|
-
- Personal coding stats
|
|
26
|
-
- WakaTime alternative
|
|
27
|
-
- Privacy-first telemetry
|
|
28
|
-
whyListed:
|
|
29
|
-
- Self-host friendly
|
|
30
|
-
- Companion mobile app
|
|
31
|
-
- Clean MVVM architecture
|
|
32
|
-
caveats: []
|
|
33
|
-
distribution:
|
|
34
|
-
channels: []
|
|
35
|
-
source:
|
|
36
|
-
type: manual
|
|
37
|
-
curation:
|
|
38
|
-
reviewed: true
|
|
39
|
-
reviewedBy: grove-bot
|
|
40
|
-
reviewedAt: "2026-06-13"
|
|
41
|
-
labels:
|
|
42
|
-
- new
|
|
43
|
-
lenses: []
|
|
44
|
-
visibility: keep
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
- id: productivity
|
|
2
|
-
name: Productivity
|
|
3
|
-
|
|
4
|
-
- id: finance
|
|
5
|
-
name: Finance
|
|
6
|
-
|
|
7
|
-
- id: education
|
|
8
|
-
name: Education
|
|
9
|
-
|
|
10
|
-
- id: tools
|
|
11
|
-
name: Tools
|
|
12
|
-
|
|
13
|
-
- id: communication
|
|
14
|
-
name: Communication
|
|
15
|
-
|
|
16
|
-
- id: health-and-fitness
|
|
17
|
-
name: Health and Fitness
|
|
18
|
-
|
|
19
|
-
- id: business
|
|
20
|
-
name: Business
|
|
21
|
-
|
|
22
|
-
- id: games
|
|
23
|
-
name: Games
|
|
24
|
-
|
|
25
|
-
- id: media
|
|
26
|
-
name: Media
|
|
27
|
-
|
|
28
|
-
- id: entertainment
|
|
29
|
-
name: Entertainment
|
|
30
|
-
|
|
31
|
-
- id: social-network
|
|
32
|
-
name: Social Network
|
|
33
|
-
|
|
34
|
-
- id: shopping
|
|
35
|
-
name: Shopping
|
|
36
|
-
|
|
37
|
-
- id: news
|
|
38
|
-
name: News and Magazine
|
|
39
|
-
|
|
40
|
-
- id: travel
|
|
41
|
-
name: Travel
|
|
42
|
-
|
|
43
|
-
- id: lifestyle
|
|
44
|
-
name: Lifestyle
|
|
45
|
-
|
|
46
|
-
- id: personalization
|
|
47
|
-
name: Personalization
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
- id: app-store
|
|
2
|
-
name: App Store
|
|
3
|
-
platforms: [ios, macos]
|
|
4
|
-
|
|
5
|
-
- id: play-store
|
|
6
|
-
name: Play Store
|
|
7
|
-
platforms: [android]
|
|
8
|
-
|
|
9
|
-
- id: fdroid
|
|
10
|
-
name: F-Droid
|
|
11
|
-
platforms: [android]
|
|
12
|
-
|
|
13
|
-
- id: github-releases
|
|
14
|
-
name: GitHub Releases
|
|
15
|
-
platforms: [android, ios, macos, windows, linux]
|
|
16
|
-
|
|
17
|
-
- id: apk
|
|
18
|
-
name: APK download
|
|
19
|
-
platforms: [android]
|
|
20
|
-
|
|
21
|
-
- id: testflight
|
|
22
|
-
name: TestFlight
|
|
23
|
-
platforms: [ios]
|
|
24
|
-
|
|
25
|
-
- id: website
|
|
26
|
-
name: Website download
|
|
27
|
-
platforms: [web, ios, android, macos, windows, linux]
|
|
28
|
-
|
|
29
|
-
- id: snapcraft
|
|
30
|
-
name: Snapcraft
|
|
31
|
-
platforms: [linux]
|
|
32
|
-
|
|
33
|
-
- id: flathub
|
|
34
|
-
name: Flathub
|
|
35
|
-
platforms: [linux]
|
|
36
|
-
|
|
37
|
-
- id: microsoft-store
|
|
38
|
-
name: Microsoft Store
|
|
39
|
-
platforms: [windows]
|
|
40
|
-
|
|
41
|
-
- id: other
|
|
42
|
-
name: Other
|
|
43
|
-
platforms: []
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
- id: ios
|
|
2
|
-
name: iOS
|
|
3
|
-
icon: ios
|
|
4
|
-
|
|
5
|
-
- id: android
|
|
6
|
-
name: Android
|
|
7
|
-
icon: android
|
|
8
|
-
|
|
9
|
-
- id: web
|
|
10
|
-
name: Web
|
|
11
|
-
icon: web
|
|
12
|
-
|
|
13
|
-
- id: macos
|
|
14
|
-
name: macOS
|
|
15
|
-
icon: macos
|
|
16
|
-
|
|
17
|
-
- id: windows
|
|
18
|
-
name: Windows
|
|
19
|
-
icon: windows
|
|
20
|
-
|
|
21
|
-
- id: linux
|
|
22
|
-
name: Linux
|
|
23
|
-
icon: linux
|
|
24
|
-
|
|
25
|
-
- id: desktop
|
|
26
|
-
name: Desktop
|
|
27
|
-
icon: desktop
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
- id: flutter
|
|
2
|
-
name: Flutter
|
|
3
|
-
family: cross-platform
|
|
4
|
-
languages: [dart]
|
|
5
|
-
platforms: [ios, android, web, macos, windows, linux]
|
|
6
|
-
icon: flutter
|
|
7
|
-
|
|
8
|
-
- id: react-native
|
|
9
|
-
name: React Native
|
|
10
|
-
family: cross-platform
|
|
11
|
-
languages: [typescript, javascript]
|
|
12
|
-
platforms: [ios, android]
|
|
13
|
-
icon: react-native
|
|
14
|
-
|
|
15
|
-
- id: ios
|
|
16
|
-
name: Native iOS
|
|
17
|
-
family: native
|
|
18
|
-
languages: [swift, objective-c]
|
|
19
|
-
platforms: [ios]
|
|
20
|
-
icon: swift
|
|
21
|
-
|
|
22
|
-
- id: android
|
|
23
|
-
name: Native Android
|
|
24
|
-
family: native
|
|
25
|
-
languages: [kotlin, java]
|
|
26
|
-
platforms: [android]
|
|
27
|
-
icon: android
|
|
28
|
-
|
|
29
|
-
- id: capacitor
|
|
30
|
-
name: Capacitor
|
|
31
|
-
family: hybrid
|
|
32
|
-
languages: [typescript, javascript]
|
|
33
|
-
platforms: [ios, android, web]
|
|
34
|
-
icon: capacitor
|
|
35
|
-
|
|
36
|
-
- id: kmp
|
|
37
|
-
name: Kotlin Multiplatform
|
|
38
|
-
family: cross-platform
|
|
39
|
-
languages: [kotlin]
|
|
40
|
-
platforms: [ios, android, desktop]
|
|
41
|
-
icon: kotlin
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "@grove-dev/core";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Default template config — the smallest viable project-directory
|
|
5
|
-
* showcase. Consumers (created via `grove new`) override this
|
|
6
|
-
* with their own branding, taxonomy, and integrations.
|
|
7
|
-
*/
|
|
8
|
-
export default defineConfig({
|
|
9
|
-
blueprint: "project-directory",
|
|
10
|
-
|
|
11
|
-
site: {
|
|
12
|
-
name: "Grove Directory",
|
|
13
|
-
tagline: "A curated, health-aware developer directory.",
|
|
14
|
-
description:
|
|
15
|
-
"A curated, health-aware developer directory powered by Grove.",
|
|
16
|
-
url: "https://example.com",
|
|
17
|
-
repoUrl: "https://github.com/tortuvshin/grove",
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
nav: [
|
|
21
|
-
{ label: "Home", href: "/" },
|
|
22
|
-
{ label: "Browse", href: "/projects" },
|
|
23
|
-
{ label: "About", href: "/about" },
|
|
24
|
-
],
|
|
25
|
-
|
|
26
|
-
facets: ["category", "stacks", "platforms", "tags"],
|
|
27
|
-
|
|
28
|
-
integrations: {},
|
|
29
|
-
|
|
30
|
-
theme: {
|
|
31
|
-
primaryColor: "#1f6feb",
|
|
32
|
-
radius: "soft",
|
|
33
|
-
density: "comfortable",
|
|
34
|
-
containerWidth: "72rem",
|
|
35
|
-
},
|
|
36
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "grove-site",
|
|
3
|
-
"type": "module",
|
|
4
|
-
"version": "0.1.0",
|
|
5
|
-
"private": true,
|
|
6
|
-
"description": "A static, health-aware developer directory powered by Grove.",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"packageManager": "pnpm@10.12.1",
|
|
9
|
-
"engines": {
|
|
10
|
-
"node": ">=20"
|
|
11
|
-
},
|
|
12
|
-
"scripts": {
|
|
13
|
-
"validate:data": "grove validate",
|
|
14
|
-
"build:data": "grove generate",
|
|
15
|
-
"build:sitemap": "grove sitemap",
|
|
16
|
-
"build:llms": "node scripts/build-llms.mjs",
|
|
17
|
-
"build": "pnpm run build:data && pnpm run build:sitemap && pnpm run build:llms && astro build",
|
|
18
|
-
"dev": "pnpm run build:data && astro dev",
|
|
19
|
-
"start": "astro dev",
|
|
20
|
-
"preview": "astro preview",
|
|
21
|
-
"astro": "astro",
|
|
22
|
-
"check": "astro check",
|
|
23
|
-
"sync:github": "grove sync github",
|
|
24
|
-
"cleanup": "grove cleanup stale"
|
|
25
|
-
},
|
|
26
|
-
"dependencies": {
|
|
27
|
-
"@astrojs/check": "^0.9.9",
|
|
28
|
-
"@grove-dev/astro": "0.2.18",
|
|
29
|
-
"@grove-dev/cli": "0.2.16",
|
|
30
|
-
"@grove-dev/core": "0.2.16",
|
|
31
|
-
"@tailwindcss/vite": "^4.3.0",
|
|
32
|
-
"astro": "^6.4.4",
|
|
33
|
-
"marked": "^18.0.0",
|
|
34
|
-
"sanitize-html": "^2.17.5",
|
|
35
|
-
"tailwindcss": "^4.3.0",
|
|
36
|
-
"yaml": "^2.9.0"
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" viewBox="0 0 256 150"><path fill="#34A853" d="M255.285 143.47c-.084-.524-.164-1.042-.251-1.56a128.1 128.1 0 0 0-12.794-38.288 128.8 128.8 0 0 0-23.45-31.86 129.2 129.2 0 0 0-22.713-18.005c.049-.08.09-.168.14-.25 2.582-4.461 5.172-8.917 7.755-13.38l7.576-13.068c1.818-3.126 3.632-6.26 5.438-9.386a11.78 11.78 0 0 0 .662-10.484 11.67 11.67 0 0 0-4.823-5.536 11.85 11.85 0 0 0-5.004-1.61 12 12 0 0 0-2.218.018 11.74 11.74 0 0 0-8.968 5.798c-1.814 3.127-3.628 6.26-5.438 9.386l-7.576 13.069c-2.583 4.462-5.173 8.918-7.755 13.38-.282.487-.567.973-.848 1.467q-.586-.237-1.172-.462c-14.24-5.43-29.688-8.4-45.836-8.4-.442 0-.879 0-1.324.006-14.357.143-28.152 2.64-41.022 7.12a119 119 0 0 0-4.42 1.642c-.262-.455-.532-.911-.79-1.367-2.583-4.462-5.173-8.918-7.755-13.38l-7.576-13.07a3915 3915 0 0 1-5.439-9.386A11.74 11.74 0 0 0 48.5.048a11.7 11.7 0 0 0-5.01 1.612 11.7 11.7 0 0 0-4.077 4.063c-.281.474-.532.967-.742 1.473a11.8 11.8 0 0 0-.365 8.188c.259.786.594 1.554 1.023 2.296a3973 3973 0 0 1 5.439 9.386c2.53 4.357 5.054 8.713 7.58 13.069 2.582 4.462 5.168 8.918 7.75 13.38.02.038.046.075.065.112A129 129 0 0 0 45.32 64.38a129.7 129.7 0 0 0-22.2 24.015 128 128 0 0 0-9.34 15.24 128.2 128.2 0 0 0-10.843 28.764 131 131 0 0 0-1.951 9.524c-.087.518-.167 1.042-.247 1.56A125 125 0 0 0 0 149.118h256a130 130 0 0 0-.734-5.636z"/><path fill="#202124" d="M194.59 113.712c5.122-3.41 5.867-11.3 1.661-17.62-4.203-6.323-11.763-8.682-16.883-5.273-5.122 3.41-5.868 11.3-1.662 17.621 4.203 6.322 11.764 8.682 16.883 5.272Zm-116.072-5.25c4.206-6.321 3.46-14.21-1.662-17.62-5.123-3.41-12.68-1.05-16.886 5.27-4.203 6.323-3.458 14.212 1.662 17.622 5.122 3.41 12.683 1.05 16.886-5.272"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 814 1000"><path d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2m-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 814 1000"><path fill="#fff" d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2m-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 100 100"><g clip-path="url(#a)"><path fill="#fff" d="M50 74.99c13.807 0 25-11.193 25-25s-11.193-25-25-25-25 11.192-25 25 11.193 25 25 25"/><path fill="url(#b)" d="M50 25h43.294a49.988 49.988 0 0 0-86.591.006L28.35 62.501l.02-.005A24.969 24.969 0 0 1 50 25"/><path fill="#1A73E8" d="M50 69.792c10.93 0 19.792-8.86 19.792-19.791S60.93 30.209 50 30.209s-19.792 8.86-19.792 19.792c0 10.93 8.861 19.791 19.792 19.791"/><path fill="url(#c)" d="M71.649 62.507 50.002 100A49.98 49.98 0 0 0 93.3 75.004a49.99 49.99 0 0 0-.01-49.997H49.999l-.005.02a24.97 24.97 0 0 1 21.655 37.48"/><path fill="url(#d)" d="M28.351 62.507 6.704 25.013A49.988 49.988 0 0 0 50.005 100l21.647-37.493-.014-.015a24.97 24.97 0 0 1-43.287.015"/></g><defs><linearGradient id="b" x1="6.703" x2="93.294" y1="31.25" y2="31.25" gradientUnits="userSpaceOnUse"><stop stop-color="#D93025"/><stop offset="1" stop-color="#EA4335"/></linearGradient><linearGradient id="c" x1="43.171" x2="86.466" y1="99.332" y2="24.341" gradientUnits="userSpaceOnUse"><stop stop-color="#FCC934"/><stop offset="1" stop-color="#FBBC04"/></linearGradient><linearGradient id="d" x1="55.413" x2="12.117" y1="96.879" y2="21.888" gradientUnits="userSpaceOnUse"><stop stop-color="#1E8E3E"/><stop offset="1" stop-color="#34A853"/></linearGradient><clipPath id="a"><path fill="#fff" d="M0 0h100v100H0z"/></clipPath></defs></svg>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
-
<circle cx="12" cy="12" r="10"/>
|
|
3
|
-
<circle cx="12" cy="12" r="3.5" fill="currentColor" stroke="none"/>
|
|
4
|
-
<path d="M12 2v6M12 16v6M2 12h6M16 12h6"/>
|
|
5
|
-
</svg>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
-
<rect x="5" y="5" width="14" height="14" rx="1.5"/>
|
|
3
|
-
<rect x="9" y="9" width="6" height="6" fill="currentColor" stroke="none"/>
|
|
4
|
-
<path d="M2 9v6M22 9v6M9 12H4M20 12h-5M12 4V2M12 22v-2"/>
|
|
5
|
-
</svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 814 1000"><path d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2m-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="4.31 0.8 249.38 282.43"><defs><linearGradient id="b" x1="48.548%" x2="51.047%" y1="115.276%" y2="41.364%"><stop offset="0%" stop-color="#FFEED7"/><stop offset="100%" stop-color="#BDBFC2"/></linearGradient><linearGradient id="c" x1="54.407%" x2="46.175%" y1="2.404%" y2="90.542%"><stop offset="0%" stop-color="#FFF" stop-opacity=".8"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="d" x1="51.86%" x2="47.947%" y1="88.248%" y2="9.748%"><stop offset="0%" stop-color="#FFEED7"/><stop offset="100%" stop-color="#BDBFC2"/></linearGradient><linearGradient id="e" x1="49.925%" x2="49.924%" y1="85.49%" y2="13.811%"><stop offset="0%" stop-color="#FFEED7"/><stop offset="100%" stop-color="#BDBFC2"/></linearGradient><linearGradient id="f" x1="53.901%" x2="45.956%" y1="3.102%" y2="93.895%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="g" x1="45.593%" x2="54.811%" y1="5.475%" y2="93.524%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="h" x1="49.984%" x2="49.984%" y1="89.845%" y2="40.632%"><stop offset="0%" stop-color="#FFEED7"/><stop offset="100%" stop-color="#BDBFC2"/></linearGradient><linearGradient id="i" x1="53.505%" x2="42.746%" y1="99.975%" y2="23.545%"><stop offset="0%" stop-color="#FFEED7"/><stop offset="100%" stop-color="#BDBFC2"/></linearGradient><linearGradient id="j" x1="49.841%" x2="50.241%" y1="13.229%" y2="94.673%"><stop offset="0%" stop-color="#FFF" stop-opacity=".8"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="k" x1="49.927%" x2="50.727%" y1="37.327%" y2="92.782%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="l" x1="49.876%" x2="49.876%" y1="2.299%" y2="81.204%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="m" x1="49.833%" x2="49.824%" y1="2.272%" y2="71.799%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="n" x1="53.467%" x2="38.949%" y1="48.921%" y2="98.1%"><stop offset="0%" stop-color="#FFA63F"/><stop offset="100%" stop-color="#FF0"/></linearGradient><linearGradient id="o" x1="52.373%" x2="47.579%" y1="143.009%" y2="-64.622%"><stop offset="0%" stop-color="#FFEED7"/><stop offset="100%" stop-color="#BDBFC2"/></linearGradient><linearGradient id="p" x1="30.581%" x2="65.887%" y1="34.024%" y2="89.175%"><stop offset="0%" stop-color="#FFA63F"/><stop offset="100%" stop-color="#FF0"/></linearGradient><linearGradient id="q" x1="59.572%" x2="48.361%" y1="-17.216%" y2="66.118%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="r" x1="47.769%" x2="51.373%" y1="1.565%" y2="104.313%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="s" x1="43.55%" x2="57.114%" y1="4.533%" y2="92.827%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><linearGradient id="t" x1="49.733%" x2="50.558%" y1="17.609%" y2="99.385%"><stop offset="0%" stop-color="#FFA63F"/><stop offset="100%" stop-color="#FF0"/></linearGradient><linearGradient id="u" x1="50.17%" x2="49.68%" y1="2.89%" y2="94.17%"><stop offset="0%" stop-color="#FFF" stop-opacity=".65"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient><filter id="a" width="200%" height="200%" x="-50%" y="-50%" filterUnits="objectBoundingBox"><feOffset in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="6.5"/></filter></defs><g fill="none"><path fill="#000" fill-opacity=".2" d="M235.125 249.359c0 17.355-52.617 31.497-117.54 31.497S.044 266.806.044 249.359c0-17.356 52.618-31.498 117.54-31.498 64.924 0 117.45 14.142 117.541 31.498" filter="url(#a)" transform="translate(10)"/><path fill="#000" d="M63.213 215.474c-11.387-16.346-13.591-69.606 12.947-102.39C89.292 97.383 92.69 86.455 93.7 71.67c.734-16.805-11.846-66.851 35.537-70.616 48.027-3.857 45.364 43.526 45.088 68.596-.183 21.12 15.52 33.15 26.355 49.68 19.927 30.303 18.274 82.461-3.765 110.745-27.916 35.354-51.791 20.018-67.678 21.304-29.752 1.745-30.762 17.54-66.024-35.905"/><path fill="url(#b)" d="M169.1 122.451c8.265 7.622 29.661 41.69-4.224 62.995-11.937 7.438 10.653 35.721 21.488 22.039 19.193-24.61 6.98-63.913-4.591-77.963-7.714-9.917-19.651-13.774-12.672-7.07" transform="translate(10)"/><path fill="#000" stroke="#000" stroke-width=".977" d="M176.805 117.86c13.59 11.02 38.292 49.587 2.204 74.748-11.846 7.806 10.468 32.508 23.049 19.927 43.618-43.894-1.102-94.308-16.53-111.664-13.774-15.151-25.987 3.49-8.723 16.989z"/><path fill="url(#c)" d="M147.245 25.02c-.459 12.581-14.325 23.51-30.946 24.52S86.639 41 87.097 28.419c.46-12.581 14.326-23.509 30.947-24.519 16.62-.918 29.66 8.54 29.201 21.12" transform="translate(10)"/><path fill="url(#d)" d="M107.483 54.957c.46 8.173-3.397 15.06-8.723 15.335s-10.01-6.06-10.469-14.233 3.398-15.06 8.724-15.335 10.01 6.06 10.468 14.233" transform="translate(10)"/><path fill="url(#e)" d="M117.125 55.6c.184 9.458 6.337 16.988 13.683 16.805 7.346-.184 13.131-7.99 12.948-17.54-.184-9.458-6.336-16.988-13.683-16.804-7.346.183-13.223 8.08-12.948 17.539" transform="translate(10)"/><path fill="#000" d="M133.186 57.712c-.092 5.234 2.48 9.458 5.877 9.458 3.306 0 6.153-4.224 6.245-9.366.091-5.234-2.48-9.459-5.878-9.459-3.397 0-6.152 4.225-6.244 9.367m-21.212.092c.459 4.316-1.194 7.989-3.582 8.356-2.387.276-4.683-2.938-5.142-7.254s1.194-7.99 3.581-8.357c2.388-.275 4.684 2.939 5.143 7.255"/><path fill="url(#f)" d="M124.564 54.773c-.276 2.939 1.102 5.326 3.03 5.51s3.765-2.112 4.04-4.959c.276-2.938-1.102-5.326-3.03-5.51-1.928-.183-3.765 2.113-4.04 4.96" transform="translate(10)"/><path fill="url(#g)" d="M99.953 55.508c.276 2.388-.734 4.5-2.203 4.683-1.47.184-2.847-1.653-3.123-4.132-.275-2.388.735-4.5 2.204-4.683 1.47-.184 2.847 1.744 3.122 4.132" transform="translate(10)"/><path fill="url(#h)" d="M71.027 145.684c6.52-14.785 20.386-40.772 20.662-60.883 0-15.978 47.843-19.835 51.7-3.856 3.856 15.978 13.59 39.853 19.834 51.424 6.245 11.478 24.335 48.118 5.051 80.074-17.356 28.284-69.973 50.69-98.073-3.856-9.55-18.917-7.806-42.333.826-62.903" transform="translate(10)"/><path fill="url(#i)" d="M65.15 134.664c-5.601 10.56-17.172 38.293 11.112 53.445 30.395 16.162 30.303 49.312-6.245 33.517-33.425-14.233-18.641-71.902-9.274-85.676 6.06-9.642 15.243-21.488 4.407-1.286" transform="translate(10)"/><path fill="#000" stroke="#000" stroke-width="1.25" d="M79.925 122.727c-8.907 14.509-30.211 48.669-1.652 66.484 38.384 23.6 27.548 47.108-7.53 25.895-49.404-29.568-5.97-89.257 13.774-112.03 22.59-25.529 4.316 4.683-4.592 19.65z"/><path fill="url(#j)" d="M156.428 151.285c0 16.162-15.519 37.1-42.15 36.916-27.456.183-39.118-20.754-39.118-36.916s18.182-29.293 40.588-29.293c22.498.092 40.68 13.132 40.68 29.293" transform="translate(10)"/><path fill="url(#k)" d="M141.92 100.504c-.276 16.713-11.204 20.662-24.978 20.662s-23.784-2.48-24.978-20.662c0-11.387 11.203-17.998 24.978-17.998 13.774-.092 24.977 6.52 24.977 17.998" transform="translate(10)"/><path fill="url(#l)" d="M58.63 126.216c9-13.682 28.008-34.711 3.582 2.939-19.835 31.038-7.346 50.965-.918 56.474 18.549 16.53 17.814 27.64 3.214 18.917-31.314-18.641-24.794-50.047-5.878-78.33" transform="translate(10)"/><path fill="url(#m)" d="M188.936 131.818c-7.806-16.07-32.6-56.842 1.193-9.459 30.763 42.884 9.183 72.729 5.326 75.667-3.856 2.939-16.804 8.908-13.04-1.469 3.858-10.377 22.958-30.028 6.52-64.74" transform="translate(10)"/><path fill="url(#n)" stroke="#E68C3F" stroke-width="6.25" d="M51.835 258.542c-20.57-10.928-50.414 2.112-39.578-27.457 2.204-6.704-3.214-16.805.275-23.325 4.133-7.989 13.04-6.244 18.366-11.57 5.234-5.51 8.54-15.06 18.366-13.59 9.734 1.468 16.254 13.406 23.049 28.099 5.05 10.468 22.865 25.253 21.672 37.007-1.47 17.998-21.948 21.396-42.15 10.836z" transform="translate(10)"/><path fill="url(#o)" d="M201.608 189.119c-3.122 5.877-16.162 15.335-24.886 12.856-8.815-2.388-12.856-15.795-11.111-25.988 1.653-11.386 11.111-12.03 23.05-6.336 12.855 6.336 16.712 11.662 12.947 19.468" transform="translate(10)"/><path fill="url(#p)" stroke="#E68C3F" stroke-width="6.251" d="M194.445 253.49c15.06-18.273 48.578-14.508 25.988-39.577-4.775-5.418-3.306-16.989-9.183-21.947-6.887-6.061-14.509-1.102-21.488-4.224-6.979-3.398-14.325-9.918-22.865-5.327-8.54 4.684-9.459 16.805-10.285 32.783-.735 11.479-11.203 30.671-5.602 41.231 8.081 16.346 29.11 14.142 43.435-2.938z" transform="translate(10)"/><path fill="url(#q)" d="M187.925 229.064c23.325-34.435 5.97-34.16.092-36.823-5.877-2.755-12.03-8.173-18.916-4.408-6.888 3.857-7.255 13.775-7.439 26.814-.275 9.367-8.08 25.07-3.397 33.793 5.693 10.193 19.467-4.591 29.66-19.376" transform="translate(10)"/><path fill="url(#r)" d="M47.06 234.023c-34.895-22.59-18.55-30.303-13.315-33.885 6.336-4.591 6.428-13.407 14.233-12.58 7.806.826 12.397 10.468 17.631 22.406 3.857 8.54 17.264 19.927 16.254 29.753-1.285 11.57-19.743 3.948-34.803-5.694" transform="translate(10)"/><path fill="#000" d="M209.588 188.843c-2.755 4.776-13.958 12.306-21.396 10.285-7.622-1.928-11.112-12.672-9.55-20.753 1.377-9.183 9.55-9.642 19.834-5.05 10.928 4.958 14.326 9.182 11.112 15.518"/><path fill="url(#s)" d="M192.058 186.18c-1.745 3.306-9.091 8.54-14.234 7.163-5.142-1.377-7.713-8.815-6.887-14.417.735-6.336 6.244-6.704 13.223-3.581 7.53 3.49 9.918 6.428 7.898 10.835" transform="translate(10)"/><path fill="url(#t)" stroke="#E68C3F" stroke-width="3.75" d="M97.107 66.344c3.673-3.398 12.58-13.774 29.477-2.939 3.122 2.02 5.693 2.204 11.662 4.775 12.03 4.96 6.336 16.897-6.52 20.937-5.51 1.745-10.468 8.449-20.386 7.806-8.54-.46-10.744-6.06-15.978-9.091-9.275-5.234-10.652-12.305-5.602-16.07 5.051-3.765 6.98-5.143 7.347-5.418z" transform="translate(10)"/><path stroke="#E68C3F" stroke-width="2.5" d="M148.43 75.986c-5.05.275-15.979 11.203-27.457 11.203s-18.366-10.652-20.11-10.652"/><path fill="url(#u)" d="M102.8 65.426c1.837-1.653 7.622-6.153 15.244-1.562 1.653.919 3.306 1.929 5.693 3.306 4.867 2.847 2.48 6.98-3.398 9.55-2.663 1.102-7.07 3.49-10.376 3.306-3.673-.367-6.153-2.755-8.54-4.316-4.5-2.938-4.224-5.418-2.112-7.346 1.56-1.47 3.305-2.847 3.49-2.938" transform="translate(10)"/></g></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 814 1000"><path fill="#fff" d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2m-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 100 100"><path fill="#FF6309" d="M11.728 59.736c5.373 0 9.728-4.355 9.728-9.728s-4.355-9.728-9.728-9.728S2 44.635 2 50.008s4.355 9.728 9.728 9.728"/><path fill="#FFB515" d="M81.485 100c5.373 0 9.728-4.355 9.728-9.728s-4.355-9.73-9.728-9.73-9.73 4.357-9.73 9.73S76.113 100 81.486 100"/><path fill="#C90016" d="M81.476 19.457c5.373 0 9.728-4.356 9.728-9.728C91.204 4.356 86.85 0 81.476 0s-9.728 4.356-9.728 9.729 4.356 9.728 9.728 9.728"/><path fill="#FF6309" d="M58.23 25.936c12.115 0 22.165 8.995 23.83 20.656h16.666c-.758-9.163-4.556-17.704-10.908-24.439-4.068 2.071-9.07 2.111-13.319-.341-4.252-2.456-6.719-6.81-6.956-11.374A41 41 0 0 0 58.23 9.37c-6.082 0-11.959 1.327-17.304 3.845l8.346 14.452a23.9 23.9 0 0 1 8.959-1.731"/><path fill="#FFB515" d="M34.16 50.008c0-7.67 3.605-14.51 9.208-18.922l-8.343-14.45a41 41 0 0 0-5.532 4.636c-4.828 4.828-8.29 10.658-10.195 17.02 3.839 2.486 6.38 6.802 6.38 11.716s-2.541 9.23-6.38 11.715c1.905 6.362 5.367 12.191 10.195 17.02a41.3 41.3 0 0 0 5.528 4.636l8.344-14.453c-5.602-4.41-9.205-11.251-9.205-18.918"/><path fill="#C90016" d="M82.06 53.414C80.4 65.078 70.348 74.078 58.231 74.078c-3.166 0-6.192-.616-8.962-1.733L40.924 86.8c5.343 2.519 11.224 3.847 17.307 3.847 3.177 0 6.3-.367 9.32-1.07.233-4.57 2.7-8.931 6.955-11.388 4.25-2.454 9.254-2.416 13.322-.34 6.346-6.736 10.141-15.275 10.896-24.434z"/></svg>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
-
<rect x="2" y="3" width="9" height="9"/>
|
|
3
|
-
<rect x="13" y="3" width="9" height="9"/>
|
|
4
|
-
<rect x="2" y="13" width="9" height="9"/>
|
|
5
|
-
<rect x="13" y="13" width="9" height="9"/>
|
|
6
|
-
</svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" viewBox="0 0 256 150"><path fill="#34A853" d="M255.285 143.47c-.084-.524-.164-1.042-.251-1.56a128.1 128.1 0 0 0-12.794-38.288 128.8 128.8 0 0 0-23.45-31.86 129.2 129.2 0 0 0-22.713-18.005c.049-.08.09-.168.14-.25 2.582-4.461 5.172-8.917 7.755-13.38l7.576-13.068c1.818-3.126 3.632-6.26 5.438-9.386a11.78 11.78 0 0 0 .662-10.484 11.67 11.67 0 0 0-4.823-5.536 11.85 11.85 0 0 0-5.004-1.61 12 12 0 0 0-2.218.018 11.74 11.74 0 0 0-8.968 5.798c-1.814 3.127-3.628 6.26-5.438 9.386l-7.576 13.069c-2.583 4.462-5.173 8.918-7.755 13.38-.282.487-.567.973-.848 1.467q-.586-.237-1.172-.462c-14.24-5.43-29.688-8.4-45.836-8.4-.442 0-.879 0-1.324.006-14.357.143-28.152 2.64-41.022 7.12a119 119 0 0 0-4.42 1.642c-.262-.455-.532-.911-.79-1.367-2.583-4.462-5.173-8.918-7.755-13.38l-7.576-13.07a3915 3915 0 0 1-5.439-9.386A11.74 11.74 0 0 0 48.5.048a11.7 11.7 0 0 0-5.01 1.612 11.7 11.7 0 0 0-4.077 4.063c-.281.474-.532.967-.742 1.473a11.8 11.8 0 0 0-.365 8.188c.259.786.594 1.554 1.023 2.296a3973 3973 0 0 1 5.439 9.386c2.53 4.357 5.054 8.713 7.58 13.069 2.582 4.462 5.168 8.918 7.75 13.38.02.038.046.075.065.112A129 129 0 0 0 45.32 64.38a129.7 129.7 0 0 0-22.2 24.015 128 128 0 0 0-9.34 15.24 128.2 128.2 0 0 0-10.843 28.764 131 131 0 0 0-1.951 9.524c-.087.518-.167 1.042-.247 1.56A125 125 0 0 0 0 149.118h256a130 130 0 0 0-.734-5.636z"/><path fill="#202124" d="M194.59 113.712c5.122-3.41 5.867-11.3 1.661-17.62-4.203-6.323-11.763-8.682-16.883-5.273-5.122 3.41-5.868 11.3-1.662 17.621 4.203 6.322 11.764 8.682 16.883 5.272Zm-116.072-5.25c4.206-6.321 3.46-14.21-1.662-17.62-5.123-3.41-12.68-1.05-16.886 5.27-4.203 6.323-3.458 14.212 1.662 17.622 5.122 3.41 12.683 1.05 16.886-5.272"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 814 1000"><path d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2m-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 814 1000"><path fill="#fff" d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2m-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><circle cx="50" cy="50" r="44" fill="#F9F1E1"/><path fill="#000000" d="M50 16c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34S68.8 16 50 16zm-9 18c0-1.7 1.3-3 3-3s3 1.3 3 3v8c0 4.4 3.6 8 8 8h2c1.7 0 3 1.3 3 3s-1.3 3-3 3h-2c-7.7 0-14-6.3-14-14v-8zm22 22c-1.7 0-3-1.3-3-3s1.3-3 3-3h2c4.4 0 8-3.6 8-8v-2c0-1.7 1.3-3 3-3s3 1.3 3 3v2c0 7.7-6.3 14-14 14h-2z"/></svg>
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
|
2
|
-
<!-- Capacitor brand: dark navy background, white capacitor symbol -->
|
|
3
|
-
<rect width="100" height="100" rx="20" fill="#142B45"/>
|
|
4
|
-
<g fill="none" stroke="#FFFFFF" stroke-width="6" stroke-linecap="round" stroke-linejoin="round">
|
|
5
|
-
<!-- Left plate (vertical line) -->
|
|
6
|
-
<line x1="34" y1="30" x2="34" y2="70"/>
|
|
7
|
-
<!-- Right plate (vertical line) -->
|
|
8
|
-
<line x1="66" y1="30" x2="66" y2="70"/>
|
|
9
|
-
<!-- Left arc connecting top and bottom of left plate -->
|
|
10
|
-
<path d="M34 30 C20 34 20 66 34 70"/>
|
|
11
|
-
<!-- Right arc connecting top and bottom of right plate -->
|
|
12
|
-
<path d="M66 30 C80 34 80 66 66 70"/>
|
|
13
|
-
</g>
|
|
14
|
-
</svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><circle cx="50" cy="50" r="42" fill="#5881D8"/><path fill="#FFFFFF" d="M50 18c-9 0-15 5-19 13l-3 7 4 5c3 4 7 6 11 6h14c4 0 8-2 11-6l4-5-3-7c-4-8-10-13-19-13z"/><circle cx="50" cy="50" r="12" fill="#FFFFFF"/><circle cx="50" cy="50" r="6" fill="#5881D8"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><circle cx="50" cy="50" r="42" fill="#5881D8"/><path fill="#FFFFFF" d="M50 18c-9 0-15 5-19 13l-3 7 4 5c3 4 7 6 11 6h14c4 0 8-2 11-6l4-5-3-7c-4-8-10-13-19-13z"/><text x="50" y="55" font-family="ui-sans-serif, system-ui, sans-serif" font-size="14" font-weight="700" fill="#FFFFFF" text-anchor="middle">CLJS</text></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 100 100"><g clip-path="url(#a)"><path fill="#00C4B3" d="m26.878 27.059-6.425-6.426v46.335l.09 2.172c0 .995.181 2.172.543 3.348l50.86 17.919 12.67-5.61z"/><path fill="#22D3C5" d="m84.615 84.796-12.67 5.61-50.769-17.918c.996 3.71 3.077 7.874 5.43 10.227l16.561 16.47 36.923.09z"/><path fill="#0075C9" d="M20.634 20.633.905 50.497c-1.629 1.72-.814 5.34 1.81 8.055l11.403 11.493 7.149 2.534c-.271-1.177-.543-2.353-.543-3.349l-.09-2.172z"/><path fill="#0075C9" d="M72.308 21.176a26 26 0 0 0-3.349-.543l-2.262-.09H20.453l64.162 64.163 5.611-12.67z"/><path fill="#00A8E1" d="M82.534 26.606c-2.353-2.353-6.425-4.525-10.226-5.43l17.918 50.86-5.61 12.67L98.37 80.27V42.534z"/><path fill="#00C4B3" d="M69.774 14.117 58.28 2.715C55.656.09 52.036-.725 50.226.905L20.362 20.633h46.244l2.263.09c.995 0 2.172.182 3.348.544z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h100v100H0z"/></clipPath></defs></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><circle cx="50" cy="50" r="42" fill="#000000"/><path fill="#FFFFFF" d="M62 28c-3 0-6 1-8 3-1-2-3-3-6-3-5 0-9 4-9 9 0 1 0 3 1 4-3 1-5 4-5 7 0 4 3 7 7 7h22c5 0 9-4 9-9 0-4-2-7-5-8 0-1 0-2 0-3 0-4-3-7-6-7z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><rect width="100" height="100" rx="14" fill="#092E20"/><path fill="#FFFFFF" d="M30 30h40v40H30z"/><path fill="#44B78B" d="M30 30h40v8H30zM30 62h40v8H30zM30 38h8v24h-8zM62 38h8v24h-8z"/><text x="50" y="56" font-family="Arial, sans-serif" font-size="11" font-weight="700" fill="#092E20" text-anchor="middle">django</text></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><rect x="15" y="20" width="70" height="60" rx="6" fill="#2496ED"/><rect x="15" y="20" width="70" height="12" rx="6" fill="#1D7FB8"/><circle cx="25" cy="26" r="2" fill="#FFFFFF"/><circle cx="33" cy="26" r="2" fill="#FFFFFF"/><circle cx="41" cy="26" r="2" fill="#FFFFFF"/><path fill="#FFFFFF" d="M30 50h40v8H30zM30 64h40v4H30z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 100 100"><path fill="#FFA000" d="m61.405 36.118-10 9.312-9.284-18.733 4.796-10.771c1.212-2.149 3.194-2.177 4.407 0z"/><path fill="#F57F17" d="M51.409 45.426 14 80.22l28.126-53.523z"/><path fill="#FFCA28" d="M72.371 21.877c1.792-1.707 3.636-1.131 4.103 1.293l9.725 56.58-32.257 19.365c-1.13.632-4.13.88-4.13.88s-2.729-.333-3.774-.909L14 80.22z"/><path fill="#FFA000" d="M42.126 26.697 14 80.22 26.535 1.989c.47-2.424 1.844-2.672 3.084-.523z"/></svg>
|