Static site powered by Eleventy (11ty), TypeScript (esbuild), and D3.js. The site delivers an SEO-friendly hub with a progressively-enhanced graph navigation experience.
Get up and running in minutes:
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:8080 to see your local site. The dev server watches for changes and rebuilds automatically.
- Node.js 22+ (download)
- npm 10+ (comes with Node.js)
src/
├── _data/ # Site metadata and configuration
├── _includes/ # Nunjucks templates and partials
├── assets/ # Static assets (icons, images)
├── content/ # Markdown pages
├── css/ # Stylesheets
├── data/ # Graph data (nodes and links)
└── js/ # TypeScript source files
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build production site to dist/ |
npm run preview |
Preview built site locally |
npm run lint |
Type-check TypeScript files |
npm run clean |
Remove build artifacts |
Homepage
- Edit
src/index.njkfor the main page structure - Modify the hero section and CTA buttons here
Markdown Pages
- All
.mdfiles insrc/content/become pages - Front matter controls metadata and layout
Graph Data
- Edit
src/data/graph.jsonto add/remove nodes and links - Run
npm run buildafter changes to regenerate the site
Styling
src/css/base.css- Base styles and typographysrc/css/graph.css- Graph-specific styles
TypeScript
- All scripts in
src/js/are compiled via esbuild - Changes trigger rebuilds in watch mode
Edit src/data/graph.json:
{
"nodes": [
{
"id": "unique-id",
"label": "Node Name",
"type": "topic",
"href": "/path/",
"description": "Short description for tooltips.",
"tags": ["tag1", "tag2"],
"pinned": false
}
],
"links": [
{ "source": "hub", "target": "unique-id", "kind": "relates" }
]
}Node Types:
hub- Central navigation nodetopic- Topic or categoryasset- External resource or link
Link Kinds:
relates- General relationshipbelongs- Hierarchical relationshipreferences- Reference link
After editing graph data, rebuild with npm run build.
This site is deployed to GitHub Pages:
- Custom domain:
graphtech.dev(configured viaCNAME) - Push to
mainbranch to trigger deployment - Built site output:
dist/
- Lighthouse: Target ≥ 90 mobile Performance/Accessibility
- Bundle Size: JS bundle budget ≤ 200KB gzipped
- Accessibility: Prefers-reduced-motion respected for graph interactions
Plausible Analytics tracks:
- Page views
- Custom events:
graph_node_hover,graph_node_click,graph_filter_used
Connect with fellow graph technology developers:
- Join the X Community - Daily threads, pulses, and data drops. Share schemas, queries, datasets, and benchmarks.
- Follow @codegraphtheory - Personal GitHub profile with educational resources and projects
- Explore GraphTechnologyDevelopers - Organization hub for graph tech resources and templates
MIT License - see LICENSE file for details.