From 194a5bc2f4cb06f46036a2c5e935c909a50f0ada Mon Sep 17 00:00:00 2001
From: hbd <59119064+humanbydefinition@users.noreply.github.com>
Date: Sat, 26 Sep 2026 00:27:49 +0200
Subject: [PATCH 1/3] docs: restore Discord community link
---
docs/support.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/support.md b/docs/support.md
index bfb3d419..589b4bcc 100644
--- a/docs/support.md
+++ b/docs/support.md
@@ -20,6 +20,7 @@ lastUpdated: false
The most helpful support is often simple and public:
- Share work you made with `textmode.js`.
+- Join the [textmode.js Discord community](https://discord.gg/sjrw8QXNks) to share work, ask questions, and connect with other users.
- Mention `textmode.js` when you publish a sketch, stream, article, class, workshop, or project.
- Star the repositories you use.
- Submit examples that show real creative use cases.
From 17b8c0bdf6d6291626a7a9fe17d999b3594d6cf6 Mon Sep 17 00:00:00 2001
From: hbd <59119064+humanbydefinition@users.noreply.github.com>
Date: Sat, 26 Sep 2026 00:35:57 +0200
Subject: [PATCH 2/3] docs: restore Discord links across the documentation site
---
.vitepress/config.mts | 1 +
.vitepress/configs/head.mts | 3 ++-
.vitepress/data/TESTIMONIALS_README.md | 2 +-
.../CommunitySupport/CommunitySupport.vue | 26 +++++++++++++++++++
.../theme/components/Gallery/GalleryGrid.vue | 11 +++++++-
CONTRIBUTING.md | 5 ++--
docs/contributing/docs.md | 1 +
docs/contributing/index.md | 1 +
docs/contributing/submit-a-sketch.md | 1 +
gallery.md | 1 +
index.md | 2 +-
11 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/.vitepress/config.mts b/.vitepress/config.mts
index 37376349..c60168f8 100644
--- a/.vitepress/config.mts
+++ b/.vitepress/config.mts
@@ -56,6 +56,7 @@ const themeConfig = {
socialLinks: [
{ icon: 'github', link: 'https://github.com/humanbydefinition/textmode.js' },
+ { icon: 'discord', link: 'https://discord.gg/sjrw8QXNks' },
],
}
diff --git a/.vitepress/configs/head.mts b/.vitepress/configs/head.mts
index 361b7adc..c6072df2 100644
--- a/.vitepress/configs/head.mts
+++ b/.vitepress/configs/head.mts
@@ -190,7 +190,8 @@ export const transformHead = ({ pageData }: TransformContext): HeadConfig[] => {
"url": "https://code.textmode.art/",
"logo": "https://code.textmode.art/svg/doc_logo.svg",
"sameAs": [
- "https://github.com/humanbydefinition/textmode.js"
+ "https://github.com/humanbydefinition/textmode.js",
+ "https://discord.gg/sjrw8QXNks"
]
},
{
diff --git a/.vitepress/data/TESTIMONIALS_README.md b/.vitepress/data/TESTIMONIALS_README.md
index a0ac62f9..a537507a 100644
--- a/.vitepress/data/TESTIMONIALS_README.md
+++ b/.vitepress/data/TESTIMONIALS_README.md
@@ -93,4 +93,4 @@ Search for testimonials using:
## Contributing
-Found a great testimonial in the wild? Submit a PR adding it to this file!
+Found a great testimonial in the wild? Submit a PR adding it to this file, or let us know in the Discord!
diff --git a/.vitepress/theme/components/CommunitySupport/CommunitySupport.vue b/.vitepress/theme/components/CommunitySupport/CommunitySupport.vue
index 7b8c5d9f..eac3a3b9 100644
--- a/.vitepress/theme/components/CommunitySupport/CommunitySupport.vue
+++ b/.vitepress/theme/components/CommunitySupport/CommunitySupport.vue
@@ -106,6 +106,15 @@
Star on GitHub
+
@@ -147,6 +156,14 @@ const resources: LinkItem[] = [
]
const connect: LinkItem[] = [
+ {
+ title: 'Discord',
+ description: 'Chat with the community',
+ link: 'https://discord.gg/sjrw8QXNks',
+ icon: 'ic:baseline-discord',
+ external: true,
+ color: 'discord'
+ },
{
title: 'Discussions',
description: 'Ideas and Q&A',
@@ -294,6 +311,15 @@ const connect: LinkItem[] = [
transition: all 0.2s ease;
}
+.community-support__link-icon-wrapper--discord {
+ color: #5865F2;
+}
+
+.community-support__link:hover .community-support__link-icon-wrapper--discord {
+ background: #5865F2;
+ color: white;
+}
+
.community-support__link-icon-wrapper--github {
color: var(--vp-c-text-1);
}
diff --git a/.vitepress/theme/components/Gallery/GalleryGrid.vue b/.vitepress/theme/components/Gallery/GalleryGrid.vue
index bcbca372..ad22db79 100644
--- a/.vitepress/theme/components/Gallery/GalleryGrid.vue
+++ b/.vitepress/theme/components/Gallery/GalleryGrid.vue
@@ -80,7 +80,7 @@
Submit your project
- Built something awesome with #textmodejs? Add your project to the gallery by creating a pull request!
+ Built something awesome with #textmodejs? Add your project to the gallery by creating a pull request, or share it on Discord and we'll help you get it featured!
@@ -94,6 +94,15 @@
Create Pull Request
+
+
+ Share on Discord
+
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3f5dc72a..3fe68885 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -23,5 +23,6 @@ also run `npm run check:contributors`.
Read the [Code of Conduct](CODE_OF_CONDUCT.md). Report vulnerabilities privately by following
[SECURITY.md](SECURITY.md), not through a public issue.
-Need help? [Open an issue](https://github.com/humanbydefinition/code.textmode.art/issues) or
-[start a Discussion](https://github.com/humanbydefinition/code.textmode.art/discussions).
+Need help? [Open an issue](https://github.com/humanbydefinition/code.textmode.art/issues),
+[start a Discussion](https://github.com/humanbydefinition/code.textmode.art/discussions), or
+[join Discord](https://discord.gg/sjrw8QXNks).
diff --git a/docs/contributing/docs.md b/docs/contributing/docs.md
index 63fe7738..a3732be3 100644
--- a/docs/contributing/docs.md
+++ b/docs/contributing/docs.md
@@ -128,3 +128,4 @@ changes to scope, content, examples, or validation.
## Need help?
- [Open a documentation issue](https://github.com/humanbydefinition/code.textmode.art/issues)
+- [Join the Discord community](https://discord.gg/sjrw8QXNks)
diff --git a/docs/contributing/index.md b/docs/contributing/index.md
index 9c10b27b..b2aaee92 100644
--- a/docs/contributing/index.md
+++ b/docs/contributing/index.md
@@ -38,3 +38,4 @@ and the
## Need help?
- [Open a documentation issue](https://github.com/humanbydefinition/code.textmode.art/issues)
+- [Join the Discord community](https://discord.gg/sjrw8QXNks)
diff --git a/docs/contributing/submit-a-sketch.md b/docs/contributing/submit-a-sketch.md
index 65a7c5cc..87aef216 100644
--- a/docs/contributing/submit-a-sketch.md
+++ b/docs/contributing/submit-a-sketch.md
@@ -98,5 +98,6 @@ you may also need a companion PR updating the canonical
If you're unsure which route your sketch belongs to:
- Open an [issue](https://github.com/humanbydefinition/code.textmode.art/issues)
+- Join the [Discord community](https://discord.gg/sjrw8QXNks)
Thank you for contributing to the `textmode.js` documentation ecosystem!
diff --git a/gallery.md b/gallery.md
index fa81f59c..83229273 100644
--- a/gallery.md
+++ b/gallery.md
@@ -23,5 +23,6 @@ The gallery is just getting started! As more creators share their work, this spa
1. **Create a pull request** - [Add your project to gallery.json](https://github.com/humanbydefinition/code.textmode.art/edit/main/.vitepress/data/gallery.json) directly
2. **Tag your work** - Share on social media with `#textmodejs`
+3. **Join Discord** - Share your work in our [community server](https://discord.gg/sjrw8QXNks) and we'll help you submit it
We review submissions regularly and love featuring creative uses of the library!
diff --git a/index.md b/index.md
index 71b44190..179323c9 100644
--- a/index.md
+++ b/index.md
@@ -60,7 +60,7 @@ features:
A library designed for building generative art installations, retro games, interactive visualizations, live coding performances, and experimental web experiences. Whether you're prototyping an idea or shipping a production app, textmode.js has you covered.
-**Shape the future of textmode graphics.** Your feedback, ideas, and creations help drive development.
+**Shape the future of textmode graphics.** Your feedback, ideas, and creations help drive development. Join our [Discord](https://discord.gg/sjrw8QXNks) to share what you're building, get support, and connect with fellow textmode enthusiasts.
### From zero to textmode in minutes
From 68fea0226e1d506cd59ba11d737841b345e8a21c Mon Sep 17 00:00:00 2001
From: humanbydefinition
Date: Sat, 26 Sep 2026 00:52:18 +0200
Subject: [PATCH 3/3] docs: update Vite configuration to pre-bundle Mermaid and
fastdom dependencies
---
.vitepress/config.mts | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/.vitepress/config.mts b/.vitepress/config.mts
index c60168f8..8a3b685c 100644
--- a/.vitepress/config.mts
+++ b/.vitepress/config.mts
@@ -85,6 +85,15 @@ export default withMermaid(defineConfig({
},
transformHead,
+ vite: {
+ optimizeDeps: {
+ // Mermaid is only reached through a lazily-loaded component, so Vite's
+ // dependency scanner misses it. Pre-bundle it (and its CommonJS
+ // dependencies such as fastdom) to keep CJS interop working in dev.
+ include: ['mermaid', 'fastdom'],
+ },
+ },
+
markdown: {
config(md) {
md