Skip to content

Commit 13a850c

Browse files
committed
feat: update ecosystem documentation and add Ibero Data products section
1 parent 0d253f7 commit 13a850c

File tree

5 files changed

+174
-11
lines changed

5 files changed

+174
-11
lines changed

docs/.vitepress/cache/deps/_metadata.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,43 @@
11
{
2-
"hash": "2a17ad63",
3-
"configHash": "ed00d617",
2+
"hash": "3a62db25",
3+
"configHash": "34174751",
44
"lockfileHash": "e3b0c442",
5-
"browserHash": "462a737c",
5+
"browserHash": "8fe396b9",
66
"optimized": {
77
"vue": {
88
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
99
"file": "vue.js",
10-
"fileHash": "4f692bbe",
10+
"fileHash": "f23fc8e5",
1111
"needsInterop": false
1212
},
1313
"vitepress > @vue/devtools-api": {
1414
"src": "../../../node_modules/@vue/devtools-api/dist/index.js",
1515
"file": "vitepress___@vue_devtools-api.js",
16-
"fileHash": "b0d1619b",
16+
"fileHash": "a7220521",
1717
"needsInterop": false
1818
},
1919
"vitepress > @vueuse/core": {
2020
"src": "../../../node_modules/@vueuse/core/index.mjs",
2121
"file": "vitepress___@vueuse_core.js",
22-
"fileHash": "2403e06d",
22+
"fileHash": "08968024",
2323
"needsInterop": false
2424
},
2525
"vitepress > @vueuse/integrations/useFocusTrap": {
2626
"src": "../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
2727
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
28-
"fileHash": "89972825",
28+
"fileHash": "f14756cd",
2929
"needsInterop": false
3030
},
3131
"vitepress > mark.js/src/vanilla.js": {
3232
"src": "../../../node_modules/mark.js/src/vanilla.js",
3333
"file": "vitepress___mark__js_src_vanilla__js.js",
34-
"fileHash": "49acc4f8",
34+
"fileHash": "a83dcbf0",
3535
"needsInterop": false
3636
},
3737
"vitepress > minisearch": {
3838
"src": "../../../node_modules/minisearch/dist/es/index.js",
3939
"file": "vitepress___minisearch.js",
40-
"fileHash": "3fb15907",
40+
"fileHash": "45dfba04",
4141
"needsInterop": false
4242
}
4343
},

docs/.vitepress/config.mts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export default defineConfig({
3030
nav: [
3131
{ text: 'Home', link: '/' },
3232
{ text: 'Getting Started', link: '/getting-started' },
33+
{ text: 'Ecosystem', link: '/ecosystem' },
3334
{ text: 'Donate', link: 'https://buymeacoffee.com/caioricciuti' }
3435
],
3536

@@ -48,6 +49,7 @@ export default defineConfig({
4849
{
4950
text: 'About',
5051
items: [
52+
{ text: 'Ecosystem', link: '/ecosystem' },
5153
{ text: 'Changelog', link: 'https://github.com/ibero-data/duck-ui/releases' },
5254
{ text: 'Acknowledgments', link: '/acknowledgments' },
5355
{ text: 'License', link: '/license' }
@@ -60,7 +62,7 @@ export default defineConfig({
6062
],
6163

6264
footer: {
63-
message: 'Released under the Apache 2.0 License.',
65+
message: 'Released under the Apache 2.0 License. | <a href="https://iberodata.es" target="_blank">Ibero Data</a> · <a href="https://ch-ui.com" target="_blank">CH-UI</a> · <a href="https://yaat.io" target="_blank">YAAT</a>',
6466
copyright: 'Copyright © 2025 Caio Ricciuti and Ibero Data'
6567
},
6668

docs/bun.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/ecosystem.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Ibero Data Ecosystem
2+
3+
Duck UI is part of a family of open-source data tools built by [Ibero Data](https://iberodata.es?utm_source=duck-ui&utm_medium=docs&utm_campaign=ecosystem).
4+
5+
## Our Products
6+
7+
### Duck UI
8+
**The tool you're using right now!**
9+
10+
A modern, browser-based UI for DuckDB with features like:
11+
- SQL editor with autocomplete
12+
- Data visualization and charting
13+
- Duck Brain AI assistant
14+
- Local file system access
15+
- Cloud storage integration (S3, GCS, Azure)
16+
17+
[GitHub](https://github.com/ibero-data/duck-ui) | [Documentation](https://duckui.com)
18+
19+
---
20+
21+
### CH-UI
22+
**Modern UI for ClickHouse databases**
23+
24+
CH-UI brings the same great experience to ClickHouse - the blazingly fast OLAP database.
25+
26+
- Connect to any ClickHouse instance
27+
- SQL editor with ClickHouse syntax support
28+
- Query results visualization
29+
- Schema explorer
30+
- Open source (Apache 2.0)
31+
32+
[Visit CH-UI](https://ch-ui.com?utm_source=duck-ui&utm_medium=docs&utm_campaign=ecosystem) | [GitHub](https://github.com/caioricciuti/ch-ui)
33+
34+
---
35+
36+
### CH-UI Cloud
37+
**Managed ClickHouse interface in the cloud**
38+
39+
Don't want to self-host? CH-UI Cloud gives you:
40+
- Instant access to CH-UI
41+
- No installation required
42+
- Secure connection to your ClickHouse instances
43+
- Team collaboration features
44+
45+
[Try CH-UI Cloud](https://cloud.ch-ui.com?utm_source=duck-ui&utm_medium=docs&utm_campaign=ecosystem)
46+
47+
---
48+
49+
### YAAT
50+
**Simple, privacy-friendly web analytics**
51+
52+
YAAT (Yet Another Analytics Tool) is a lightweight analytics solution that respects user privacy:
53+
- No cookies required
54+
- GDPR compliant by design
55+
- Simple, clean dashboard
56+
- Self-hosted or cloud options
57+
58+
[Learn about YAAT](https://yaat.io?utm_source=duck-ui&utm_medium=docs&utm_campaign=ecosystem)
59+
60+
---
61+
62+
## About Ibero Data
63+
64+
[Ibero Data](https://iberodata.es?utm_source=duck-ui&utm_medium=docs&utm_campaign=ecosystem) is a company focused on building practical, open-source data tools.
65+
66+
We believe in:
67+
- **Open source first** - All our tools are Apache 2.0 licensed
68+
- **Privacy by design** - Your data stays yours
69+
- **Developer experience** - Tools should be a joy to use
70+
- **Community driven** - Built with feedback from real users
71+
72+
---
73+
74+
## Support Our Work
75+
76+
If you find our tools useful, consider:
77+
- Starring our projects on GitHub
78+
- Contributing code, docs, or bug reports
79+
- Sponsoring development
80+
81+
[Donate to Duck UI](https://github.com/sponsors/caioricciuti)

src/components/workspace/HomeTab.tsx

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import {
1717
Loader2,
1818
TestTubeDiagonal,
1919
Server,
20+
Building2,
21+
Cloud,
22+
BarChart3,
2023
} from "lucide-react";
2124
import { useDuckStore } from "@/store";
2225
import { motion } from "framer-motion";
@@ -70,6 +73,33 @@ const resourceCards = [
7073
},
7174
];
7275

76+
const iberoDataProducts = [
77+
{
78+
title: "Ibero Data",
79+
description: "Data engineering & analytics solutions",
80+
link: "https://iberodata.es?utm_source=duck-ui&utm_medium=app&utm_campaign=cross-promo",
81+
Icon: Building2,
82+
},
83+
{
84+
title: "CH-UI",
85+
description: "Modern UI for ClickHouse databases",
86+
link: "https://ch-ui.com?utm_source=duck-ui&utm_medium=app&utm_campaign=cross-promo",
87+
Icon: Database,
88+
},
89+
{
90+
title: "CH-UI Cloud",
91+
description: "Managed ClickHouse interface in the cloud",
92+
link: "https://cloud.ch-ui.com?utm_source=duck-ui&utm_medium=app&utm_campaign=cross-promo",
93+
Icon: Cloud,
94+
},
95+
{
96+
title: "YAAT",
97+
description: "Simple, privacy-friendly web analytics",
98+
link: "https://yaat.io?utm_source=duck-ui&utm_medium=app&utm_campaign=cross-promo",
99+
Icon: BarChart3,
100+
},
101+
];
102+
73103
const HomeTab = () => {
74104
const { createTab, queryHistory, error, tabs, setActiveTab } = useDuckStore();
75105
const [recentItems, setRecentItems] = useState<any[]>([]);
@@ -212,6 +242,12 @@ SELECT * FROM 'https://shell.duckdb.org/data/tpch/0_01/parquet/orders.parquet' L
212242
>
213243
Resources
214244
</TabsTrigger>
245+
<TabsTrigger
246+
value="iberodata"
247+
className="data-[state=active]:text-primary px-6"
248+
>
249+
Ibero Data
250+
</TabsTrigger>
215251
</TabsList>
216252

217253
<TabsContent value="recent" className="space-y-6">
@@ -313,7 +349,51 @@ SELECT * FROM 'https://shell.duckdb.org/data/tpch/0_01/parquet/orders.parquet' L
313349
))}
314350
</div>
315351
</TabsContent>
352+
353+
<TabsContent value="iberodata" className="space-y-6">
354+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
355+
{iberoDataProducts.map((product, index) => (
356+
<motion.div
357+
key={index}
358+
initial={{ opacity: 0, y: 20 }}
359+
animate={{ opacity: 1, y: 0 }}
360+
transition={{ delay: index * 0.05 }}
361+
>
362+
<Card className="hover:bg-accent/50 transition-colors h-full">
363+
<CardHeader>
364+
<CardTitle className="text-sm font-medium flex items-center space-x-2">
365+
<div className="p-2 rounded-full bg-primary/10">
366+
<product.Icon className="w-4 h-4 text-primary" />
367+
</div>
368+
<span className="text-muted-foreground">
369+
{product.title}
370+
</span>
371+
</CardTitle>
372+
<CardDescription className="text-xs text-muted-foreground">
373+
{product.description}
374+
</CardDescription>
375+
</CardHeader>
376+
<CardFooter>
377+
<a
378+
href={product.link}
379+
target="_blank"
380+
rel="noopener noreferrer"
381+
>
382+
<Button
383+
variant="ghost"
384+
className="w-full justify-start"
385+
>
386+
Visit
387+
</Button>
388+
</a>
389+
</CardFooter>
390+
</Card>
391+
</motion.div>
392+
))}
393+
</div>
394+
</TabsContent>
316395
</Tabs>
396+
317397
<p className="text-muted-foreground text-center text-xs">
318398
Duck-UI Version: {duck_ui_version} - Released on: {duck_ui_release_date}
319399
</p>

0 commit comments

Comments
 (0)