@grove-dev/astro 0.3.1 → 0.3.4

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 (163) hide show
  1. package/README.md +9 -75
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/display.d.ts +1 -26
  6. package/dist/lib/display.d.ts.map +1 -1
  7. package/dist/lib/display.js +1 -103
  8. package/dist/lib/display.js.map +1 -1
  9. package/dist/lib/format.d.ts +1 -28
  10. package/dist/lib/format.d.ts.map +1 -1
  11. package/dist/lib/format.js +1 -71
  12. package/dist/lib/format.js.map +1 -1
  13. package/dist/lib/lenses.d.ts +1 -57
  14. package/dist/lib/lenses.d.ts.map +1 -1
  15. package/dist/lib/lenses.js +1 -198
  16. package/dist/lib/lenses.js.map +1 -1
  17. package/dist/lib/repo.d.ts +1 -19
  18. package/dist/lib/repo.d.ts.map +1 -1
  19. package/dist/lib/repo.js +1 -30
  20. package/dist/lib/repo.js.map +1 -1
  21. package/dist/lib/scores.d.ts +1 -36
  22. package/dist/lib/scores.d.ts.map +1 -1
  23. package/dist/lib/scores.js +1 -75
  24. package/dist/lib/scores.js.map +1 -1
  25. package/dist/lib/search.d.ts +1 -113
  26. package/dist/lib/search.d.ts.map +1 -1
  27. package/dist/lib/search.js +1 -379
  28. package/dist/lib/search.js.map +1 -1
  29. package/dist/lib/taxonomy-counts.d.ts +1 -10
  30. package/dist/lib/taxonomy-counts.d.ts.map +1 -1
  31. package/dist/lib/taxonomy-counts.js +1 -21
  32. package/dist/lib/taxonomy-counts.js.map +1 -1
  33. package/package.json +23 -11
  34. package/src/components/ContributorsGrid.astro +3 -3
  35. package/src/components/CurationGrid.astro +2 -2
  36. package/src/components/DirectoryIndexClient.astro +240 -0
  37. package/src/components/FilterGroupMenu.astro +8 -4
  38. package/src/components/FinalCta.astro +41 -0
  39. package/src/components/Hero.astro +15 -18
  40. package/src/components/Icon.astro +35 -7
  41. package/src/components/IndexRow.astro +2 -2
  42. package/src/components/ItemCard.astro +2 -7
  43. package/src/components/RefinePanel.astro +7 -7
  44. package/src/components/SmartLensTabs.astro +9 -5
  45. package/src/components/StackGrid.astro +1 -1
  46. package/src/components/SubmissionClient.astro +133 -0
  47. package/src/index.ts +11 -1
  48. package/src/layouts/BaseLayout.astro +30 -8
  49. package/src/layouts/Footer.astro +25 -56
  50. package/src/layouts/Header.astro +33 -15
  51. package/src/layouts/ThemeToggle.astro +7 -3
  52. package/src/lib/display.ts +1 -111
  53. package/src/lib/format.ts +1 -64
  54. package/src/lib/lenses.ts +1 -220
  55. package/src/lib/repo.ts +1 -32
  56. package/src/lib/scores.ts +1 -90
  57. package/src/lib/search.ts +1 -418
  58. package/src/lib/taxonomy-counts.ts +1 -26
  59. package/{templates/default/src/data/records.ts → src/server/directory.ts} +12 -8
  60. package/src/server/index.ts +2 -0
  61. package/src/server/models.ts +436 -0
  62. package/dist/template-routes.test.d.ts +0 -2
  63. package/dist/template-routes.test.d.ts.map +0 -1
  64. package/dist/template-routes.test.js +0 -63
  65. package/dist/template-routes.test.js.map +0 -1
  66. package/dist/theme.test.d.ts +0 -2
  67. package/dist/theme.test.d.ts.map +0 -1
  68. package/dist/theme.test.js +0 -60
  69. package/dist/theme.test.js.map +0 -1
  70. package/src/template-routes.test.ts +0 -103
  71. package/src/theme.test.ts +0 -76
  72. package/templates/default/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  73. package/templates/default/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  74. package/templates/default/.github/ISSUE_TEMPLATE/record_submission.md +0 -48
  75. package/templates/default/.github/pull_request_template.md +0 -27
  76. package/templates/default/.github/workflows/build.yml +0 -53
  77. package/templates/default/.github/workflows/cleanup-stale-records.yml +0 -46
  78. package/templates/default/.github/workflows/daily-refresh.yml +0 -51
  79. package/templates/default/.github/workflows/sync-contributors.yml +0 -51
  80. package/templates/default/.github/workflows/sync-github-metadata.yml +0 -56
  81. package/templates/default/.github/workflows/validate-data.yml +0 -33
  82. package/templates/default/astro.config.mjs +0 -25
  83. package/templates/default/content/pages/about.md +0 -66
  84. package/templates/default/content/pages/methodology.md +0 -103
  85. package/templates/default/data/records/.gitkeep +0 -0
  86. package/templates/default/data/records/coolify.yml +0 -46
  87. package/templates/default/data/records/gitea.yml +0 -46
  88. package/templates/default/data/records/hoppscotch.yml +0 -47
  89. package/templates/default/data/records/inventree.yml +0 -47
  90. package/templates/default/data/records/label-studio.yml +0 -46
  91. package/templates/default/data/records/logseq.yml +0 -48
  92. package/templates/default/data/records/private-gpt.yml +0 -47
  93. package/templates/default/data/records/wakapi.yml +0 -44
  94. package/templates/default/data/taxonomy/categories.yml +0 -47
  95. package/templates/default/data/taxonomy/distribution-channels.yml +0 -43
  96. package/templates/default/data/taxonomy/platforms.yml +0 -27
  97. package/templates/default/data/taxonomy/stacks.yml +0 -41
  98. package/templates/default/grove.config.ts +0 -36
  99. package/templates/default/package.json +0 -43
  100. package/templates/default/public/icons/platforms/android.svg +0 -1
  101. package/templates/default/public/icons/platforms/apple-dark.svg +0 -1
  102. package/templates/default/public/icons/platforms/apple-light.svg +0 -1
  103. package/templates/default/public/icons/platforms/chrome.svg +0 -1
  104. package/templates/default/public/icons/platforms/chromeos.svg +0 -5
  105. package/templates/default/public/icons/platforms/desktop.svg +0 -4
  106. package/templates/default/public/icons/platforms/embedded.svg +0 -5
  107. package/templates/default/public/icons/platforms/ios.svg +0 -1
  108. package/templates/default/public/icons/platforms/linux.svg +0 -1
  109. package/templates/default/public/icons/platforms/macos.svg +0 -1
  110. package/templates/default/public/icons/platforms/ubuntu.svg +0 -1
  111. package/templates/default/public/icons/platforms/web.svg +0 -5
  112. package/templates/default/public/icons/platforms/windows.svg +0 -6
  113. package/templates/default/public/icons/stacks/android.svg +0 -1
  114. package/templates/default/public/icons/stacks/apple-dark.svg +0 -1
  115. package/templates/default/public/icons/stacks/apple-light.svg +0 -1
  116. package/templates/default/public/icons/stacks/bun.svg +0 -1
  117. package/templates/default/public/icons/stacks/capacitor.svg +0 -14
  118. package/templates/default/public/icons/stacks/clojure.svg +0 -1
  119. package/templates/default/public/icons/stacks/clojurescript.svg +0 -1
  120. package/templates/default/public/icons/stacks/dart.svg +0 -1
  121. package/templates/default/public/icons/stacks/deno.svg +0 -1
  122. package/templates/default/public/icons/stacks/django.svg +0 -1
  123. package/templates/default/public/icons/stacks/docker.svg +0 -1
  124. package/templates/default/public/icons/stacks/firebase.svg +0 -1
  125. package/templates/default/public/icons/stacks/flutter.svg +0 -1
  126. package/templates/default/public/icons/stacks/go.svg +0 -1
  127. package/templates/default/public/icons/stacks/graphql.svg +0 -1
  128. package/templates/default/public/icons/stacks/ionic.svg +0 -4
  129. package/templates/default/public/icons/stacks/java.svg +0 -1
  130. package/templates/default/public/icons/stacks/javascript.svg +0 -1
  131. package/templates/default/public/icons/stacks/kotlin.svg +0 -1
  132. package/templates/default/public/icons/stacks/llm.svg +0 -1
  133. package/templates/default/public/icons/stacks/mongodb.svg +0 -1
  134. package/templates/default/public/icons/stacks/node.js.svg +0 -1
  135. package/templates/default/public/icons/stacks/nodejs.svg +0 -1
  136. package/templates/default/public/icons/stacks/python.svg +0 -1
  137. package/templates/default/public/icons/stacks/rag.svg +0 -7
  138. package/templates/default/public/icons/stacks/react-native.svg +0 -1
  139. package/templates/default/public/icons/stacks/react.svg +0 -1
  140. package/templates/default/public/icons/stacks/rust.svg +0 -1
  141. package/templates/default/public/icons/stacks/solidity.svg +0 -1
  142. package/templates/default/public/icons/stacks/sveltekit.svg +0 -1
  143. package/templates/default/public/icons/stacks/swift.svg +0 -1
  144. package/templates/default/public/icons/stacks/tensorflow.svg +0 -1
  145. package/templates/default/public/icons/stacks/typescript.svg +0 -1
  146. package/templates/default/public/icons/stacks/vue.svg +0 -1
  147. package/templates/default/public/llms-full.txt +0 -83
  148. package/templates/default/public/llms.txt +0 -11
  149. package/templates/default/public/og-image.svg +0 -48
  150. package/templates/default/public/robots.txt +0 -53
  151. package/templates/default/public/sitemap.xml +0 -63
  152. package/templates/default/src/pages/404.astro +0 -64
  153. package/templates/default/src/pages/[slug]/[recordSlug].astro +0 -691
  154. package/templates/default/src/pages/[slug]/index.astro +0 -482
  155. package/templates/default/src/pages/about.astro +0 -189
  156. package/templates/default/src/pages/apps/[recordSlug].astro +0 -34
  157. package/templates/default/src/pages/contributors.astro +0 -175
  158. package/templates/default/src/pages/index.astro +0 -233
  159. package/templates/default/src/pages/sitemap.xml.ts +0 -89
  160. package/templates/default/src/pages/submit.astro +0 -281
  161. package/templates/default/src/styles/global.css +0 -33
  162. package/templates/default/tsconfig.json +0 -9
  163. package/templates/default/wrangler.jsonc +0 -28
@@ -1,66 +0,0 @@
1
- ---
2
- title: "About"
3
- description: "What this directory is, who it's for, and how it works."
4
- ---
5
-
6
- # About this directory
7
-
8
- This site is a small, hand-curated index of useful open-source work
9
- relevant to a specific community. The framing is deliberately
10
- narrow: we list *one* project per record, with a hand-written
11
- "why listed" note for each, and we surface the things that matter
12
- in practice (recent activity, install friction, license, etc.)
13
- rather than the things that look impressive on a GitHub profile.
14
-
15
- ## How it works
16
-
17
- Records live as YAML files in `data/records/`. Each record carries:
18
-
19
- - A `kind` (`project`, `resource`, or `entity` — picked by the
20
- blueprint in `grove.config.ts`).
21
- - A `slug` (URL-safe identifier; becomes the path on
22
- `/<kind>/<slug>`).
23
- - A `name` and a one-line `description`.
24
- - Cross-links (`links.github`, `links.website`, etc.) and free-form
25
- tags.
26
- - An optional `curation` block with `labels`, `reviewedAt`,
27
- `bestFor`, `whyListed`, `caveats`, and `scores`.
28
- - An optional `github` block with the live repository signals
29
- (stars, forks, latest release, languages, pushed-at).
30
-
31
- At build time:
32
-
33
- 1. `grove validate` checks every record against the JSON schema.
34
- 2. `grove generate` writes `data/generated/records.{full,index}.json`
35
- and `data/generated/site-config.json`.
36
- 3. `grove sitemap` writes `public/sitemap.xml`.
37
- 4. `grove llms` writes `public/llms.txt` and `llms-full.txt`.
38
- 5. `astro build` produces the static output.
39
-
40
- The whole pipeline is reproducible. The records are the source of
41
- truth; everything else is derived.
42
-
43
- ## Why a static site
44
-
45
- The directory is a *reference*, not an *app*. Static HTML is the
46
- right tool:
47
-
48
- - Every page is a single round-trip. No client-side data layer.
49
- - The output is auditable: open the deployed HTML and you can see
50
- the full markup, no hidden hydration.
51
- - Hosting is cheap (or free, on GitHub Pages / Cloudflare Pages).
52
- - AI crawlers can read the full content. The `llms.txt` /
53
- `llms-full.txt` files give them a single fetch to land on.
54
-
55
- ## Contributing
56
-
57
- To add a record, open a submission issue. The maintainer will
58
- review and, if accepted, open a PR that adds the new YAML file.
59
- See `/submit` for the issue form and a minimal record template.
60
-
61
- ## License
62
-
63
- The site's source code is MIT. The records are released under CC-BY
64
- 4.0 unless a record's `license` field says otherwise. A record's
65
- `license` field is the license of the *project it describes*, not
66
- the license of the directory entry.
@@ -1,103 +0,0 @@
1
- ---
2
- title: "Methodology"
3
- description: "How records are picked, scored, and surfaced in this directory."
4
- ---
5
-
6
- # Methodology
7
-
8
- This page describes how entries in the directory are chosen, how the
9
- curation signals are computed, and what we do (and don't) promise about
10
- the data. The intent is to make the directory's logic auditable — every
11
- number on a detail page is reproducible from the record's YAML.
12
-
13
- ## Selection
14
-
15
- A record is included if it is:
16
-
17
- 1. **Open source.** Source is public under an OSI-approved license
18
- (or public-domain dedication).
19
- 2. **Actively maintained.** A pushed commit within the last 18 months
20
- OR a declared maintenance status of `maintained` / `passive`.
21
- 3. **Useful to a curious developer.** A working build, a real user
22
- base (or a credible path to one), and a clear description of what
23
- the project does.
24
-
25
- We exclude: abandoned experiments, vapourware, projects whose entire
26
- purpose is to sell a hosted plan, and any record that has not been
27
- hand-checked by a maintainer.
28
-
29
- ## Curation labels
30
-
31
- The `curation.labels` field is a small, hand-set list. The supported
32
- labels are:
33
-
34
- - `hot` — high recent activity or attention (≥ 1 000 stars or a
35
- commit within the last 30 days).
36
- - `new` — added to the directory in the last 7 days.
37
- - `mature` — long-running curated project, pushed > 365 days ago,
38
- but still maintained.
39
- - `featured` — editor's pick for the front page.
40
- - `needs-review` — open submission awaiting a second maintainer
41
- look.
42
-
43
- These labels are mutually additive, not exclusive. A `new` record
44
- can also be `hot`; a `mature` record can also be `featured`.
45
-
46
- ## Scoring
47
-
48
- The detail page surfaces a five-dimension score block. The five
49
- dimensions are:
50
-
51
- - **Documentation** — is the README / docs site enough to onboard
52
- without reading the source?
53
- - **Onboarding** — install in < 5 min, first useful result in < 1 h.
54
- - **Maintenance** — recent commits, issue close rate, release cadence.
55
- - **Community** — issues answered, discussions active, contributors
56
- per release.
57
- - **Production-readiness** — CI, tests, security policy, releases
58
- with semver.
59
-
60
- Each dimension is scored 0-5. The overall score on the detail page
61
- is the mean. Scores are stored on the record, not computed at build
62
- time, so we can deliberately disagree with the raw signals (a 1-line
63
- toy that happens to be wildly popular can still score low on
64
- documentation).
65
-
66
- ## Health signals
67
-
68
- The `health` block on each record tracks four state machines:
69
-
70
- - `status` — `healthy` / `slowing` / `stale` / `archived`.
71
- - `tier` — `curated` / `community` / `experimental`.
72
- - `issue_close_rate` — moving 90-day average.
73
- - `last_release` — most recent semver tag.
74
-
75
- A record's `status` transitions are time-boxed: a project with no
76
- commits in 365 days flips from `slowing` to `stale`; 730 days flips
77
- to `archived`. The transition is mechanical; the recovery is
78
- manual (a maintainer sets `tier` back to `community` after review).
79
-
80
- ## Lenses
81
-
82
- The directory's home page surfaces three curated lenses:
83
-
84
- - **Hot** — `curation.labels` includes `hot`, OR `github.stars` ≥
85
- 1 000, OR `pushedAt` within 30 days.
86
- - **New** — `pushedAt` within 7 days, OR `curation.labels` includes
87
- `new`.
88
- - **Mature** — `health.tier === "curated"` AND `pushedAt` > 365 days
89
- ago.
90
-
91
- Each lens caps at 6 items on the home page; the full filtered list
92
- is reachable via the lens tab on `/projects`.
93
-
94
- ## What we don't promise
95
-
96
- - **Real-time data.** The site is rebuilt on a schedule, not on
97
- every push. Counts and dates can lag by up to one build cycle.
98
- - **Verdict-free scores.** A high overall score means "useful to a
99
- curious developer", not "best in class" — judgement calls are
100
- documented per record, not baked into the score.
101
- - **Causal claims.** The "best for" / "why listed" / "caveats"
102
- blocks are editorial notes, not derived signals. They reflect
103
- what a maintainer thought at review time.
File without changes
@@ -1,46 +0,0 @@
1
- kind: project
2
- name: Coolify
3
- slug: coolify
4
- description: Open-source, self-hostable Heroku / Netlify / Vercel alternative — deploy apps and databases from a single dashboard.
5
- category: DevOps
6
- tags:
7
- - self-host
8
- - paas
9
- - deployment
10
- - svelte
11
- stack: SvelteKit
12
- stacks:
13
- - SvelteKit
14
- - Node.js
15
- - Docker
16
- platforms:
17
- - linux
18
- - self-host
19
- projectType: real-app
20
- difficulty: intermediate
21
- codebaseSize: large
22
- repoUrl: https://github.com/coollabsio/coolify
23
- links:
24
- github: https://github.com/coollabsio/coolify
25
- website: https://coolify.io
26
- bestFor:
27
- - Self-hosted PaaS
28
- - VPS deployments
29
- - Docker-based stacks
30
- whyListed:
31
- - One-click app + DB deploys
32
- - Active dev
33
- - Clear upgrade path from manual Docker
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
- - hot
45
- lenses: []
46
- visibility: keep
@@ -1,46 +0,0 @@
1
- kind: project
2
- name: Gitea
3
- slug: gitea
4
- description: Lightweight, self-hosted Git service — painless, single-binary, low-resource alternative to GitHub.
5
- category: DevOps
6
- tags:
7
- - git
8
- - forge
9
- - self-host
10
- - go
11
- stack: Go
12
- stacks:
13
- - Go
14
- - Vue
15
- platforms:
16
- - linux
17
- - self-host
18
- - docker
19
- projectType: real-app
20
- difficulty: intermediate
21
- codebaseSize: large
22
- repoUrl: https://github.com/go-gitea/gitea
23
- links:
24
- github: https://github.com/go-gitea/gitea
25
- website: https://about.gitea.com
26
- bestFor:
27
- - Self-hosted Git hosting
28
- - Lightweight CI/CD integration
29
- - Internal team forges
30
- whyListed:
31
- - Single binary, easy install
32
- - Mature, stable releases
33
- - Active community
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,47 +0,0 @@
1
- kind: project
2
- name: Hoppscotch
3
- slug: hoppscotch
4
- description: Open-source API development ecosystem — design, test, and debug APIs faster from a single interface.
5
- category: Web
6
- tags:
7
- - api
8
- - testing
9
- - developer-tools
10
- - vue
11
- stack: Vue
12
- stacks:
13
- - Vue
14
- - TypeScript
15
- - GraphQL
16
- platforms:
17
- - web
18
- - desktop
19
- - self-host
20
- projectType: real-app
21
- difficulty: beginner
22
- codebaseSize: large
23
- repoUrl: https://github.com/hoppscotch/hoppscotch
24
- links:
25
- github: https://github.com/hoppscotch/hoppscotch
26
- website: https://hoppscotch.io
27
- bestFor:
28
- - API exploration
29
- - REST/GraphQL/WebSocket testing
30
- - Self-hosted team workflows
31
- whyListed:
32
- - Lightweight, fast UI
33
- - PWA + desktop builds
34
- - Open-source Postman/Insomnia alternative
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
- - hot
46
- lenses: []
47
- visibility: keep
@@ -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