ViteStarter

graph-editor-template — Vite Starter Template

By We-Gold

We-Gold/graph-editor-template is a starter codebase for web-based graph editor applications, built with TypeScript and Vite and tested with Vitest.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Rendered from the fixed source checkout.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-16View source

What stands out

A quick read of the recorded project description.

01

Provides a complete starter codebase for web-based graph editor applications, not a general-purpose library

02

Built with TypeScript and Vite and tested with Vitest

03

Implements node and edge creation, mouse zoom, zoom buttons, and keyboard shortcut editing

04

Includes undo, a global config system, shortcut hint cards, and a left config/content panel

05

Provides a reusable graph generator and automatic centering and zoom based on dataset coordinates

06

The README's Progress Tracker lists unfinished items such as a theme system and WebGL renderer

Template Details

This repository is a starter template for web-based graph editor applications, not a library that solves every problem. The README explains that web applications using graph editors are usually complex and highly customized, so this repository provides a starting point as a complete codebase. It was originally created for a personal project, and the author made it public for others to use as a starting point.

Regarding the tech stack, the README explicitly states that the codebase is built with TypeScript and Vite and tested with Vitest; other build tools can be substituted if preferred, and contributions of migration guides are encouraged. The repository uses the MIT license and suggests that users link to or credit the source in their own projects (not mandatory).

The feature scope follows the README's Progress Tracker: completed items include basic graph node and edge creation, a mouse zoom system, graph editing keyboard shortcuts (move point, delete point, add point, add edge, delete edge, deselect, undo), a global config system, hint cards showing shortcuts on hover, a left config/content panel, automatic centering and zoom based on dataset x/y coordinates, zoom buttons, a reusable graph generator, accessibility features, and CSS file splitting. Unfinished items include a CSS theme system, automatically moving the graph when showing info/config panels, interchangeable 2D and WebGL renderers, performance improvements, a command to clean up test files, an extra offscreen canvas only for edges, wraparound handling for out-of-range elements, and ensuring the color system works beyond 256^3. The README does not provide installation, run, or deployment steps.

ViteLauncher

Is it right for your project?

Use Cases

  • Use this repository as a code starting point when building a web-based graph editor from scratch
  • Refer to its implementation of nodes, edges, zoom, and keyboard shortcuts in personal or team projects
  • Continue developing the unfinished features listed in the README, such as the theme system or renderer switching, based on the existing codebase

Suitable For

  • Developers who want to start a graph editor project as a complete codebase rather than a library
  • Frontend developers using the TypeScript and Vite tech stack
  • Contributors willing to credit the source in their projects as suggested by the README and possibly contribute improvements back

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    The README does not provide installation, run, or deployment steps; other files in the repository must be checked

  2. 2

    The README suggests using GitHub's Use this template button to create a new repository based on this one

  3. 3

    The README states that build tools can be replaced but does not provide specific migration guides

  4. 4

    The README suggests linking to or crediting this repository when using it in your own project (not mandatory)

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version of the public repository under the MIT license; the free scope is the code of this version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are allowed.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and liability limitations are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • The README suggests linking to or crediting this repository when using it in your own project, but explicitly states this is not mandatory.
  • The codebase is built with TypeScript and Vite and tested with Vitest; if replacing build tools, the README encourages contributing migration guides.
  • If changes are customizations for personal preference that may limit other use cases, the README suggests keeping them in your own codebase rather than submitting them.
  • Performance benchmarks were measured on an M2 MacBook Air using the Chrome DevTools FPS counter and were taken before some optimizations, so they may underestimate performance.
  • The Progress Tracker shows that improving the add node/edge icons is not implemented.
  • The Progress Tracker shows that the CSS theme system is not implemented.
  • The Progress Tracker shows that automatically moving the graph when showing info/config panels is not implemented.
  • The Progress Tracker shows that interchangeable 2D and WebGL renderers are not implemented.
  • The Progress Tracker shows that performance improvements (such as stroking and filling nodes and edges only once) are not implemented.
  • The Progress Tracker shows that a command to clean up test files for new repositories is not implemented.
  • The Progress Tracker shows that an extra offscreen canvas only for edges to improve scalability is not implemented.
  • The Progress Tracker shows that wraparound handling for out-of-range elements is not implemented.
  • The Progress Tracker shows that ensuring the color system works beyond 256^3 is not implemented.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

**If you use this in your own project**, please link to or credit this repository. This code is open-source, so you are not required to, but it would be kind.

Original README

This codebase is built with TypeScript and Vite, and is tested with Vitest. If you prefer using different build tools, feel free to switch, and if possible, contribute some kind of guide on how to do it.

Original README

However, if your code is a customization for a usecase you prefer, but could restrict the possible usecases of the codebase for others, it would be better to keep this in your own codebase.

Original README

The system has been tested on an M2 MacBook Air, using the FPS counter in the rendering tab of Chrome DevTools. **These tests were performed before some optimizations, so they may be slightly underestimating performance**

Original README

- [ ] Improve add node/edge icons

Original README

- [ ] Add CSS theme system

Original README

- [ ] Automatically move graph when showing the info/config panel

Original README

- [ ] Interchangeable 2d and webgl renderers

Original README

- [ ] Find performance improvements (try doing stroke and fill only once for nodes and edges)

Original README

- [ ] Create cleaning command to remove testing files for new repos

Original README

- [ ] Add additional offscreen canvas for edges only to increase scalability

Original README

- [ ] Add wraparound handling for items outside the range

Original README

- [ ] Make sure the color system works beyond 256^3

Original README
https://github.com/We-Gold/graph-editor-template/blob/main/LICENSEhttps://github.com/We-Gold/graph-editor-template/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-15. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
Partly documented · 56 / 100
Technologies
Vite
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2024-05-13
Screenshot last checked
2026-10-16

No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.

The catalog identifies Vite as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16

Inspect the recorded source material

SHA-256: 0544b2f1e5eceb7a404ad0a7d9eeff9c193733afaf8b1ffcc58af758eec08452

2026-10-15T08:40:02.644Z

Source file / repository
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/We-Gold/graph-editor-template/issues)
![ViewCount](https://views.whatilearened.today/views/github/We-Gold/graph-editor-template.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

# Graph Editor Template

![Graph Editor Template Demo Image](./readme-hero.png)

This repository is a starter template for web-based graph editor applications.

Use the `Use this template` button to create a repository using this one as a starting point.

**If you use this in your own project**, please link to or credit this repository. This code is open-source, so you are not required to, but it would be kind.

### Motivation

Web apps that utilize graph editors are often complex and very custom software. To accommodate these usecases, this repository serves as a starting point for a full codebase, rather than a library that solves every problem.

This starter code was originally created to serve as a starting point for a personal project, but I figured others may want a solid starting point like this one.

### Dependencies

This codebase is built with TypeScript and Vite, and is tested with Vitest. If you prefer using different build tools, feel free to switch, and if possible, contribute some kind of guide on how to do it.

### Contribution

There are many potential improvements to this codebase. I have listed some in the [Progress Tracker](#progress-tracker) section.

If you would like to contribute a feature or improvement, please create a PR to share your improvements.

If there is a problem with the base code, open an issue.

**A couple of details about contributing:** Not all changes to the codebase are beneficial. If your feature or improvement fixes a problem, or extends the functionality of the code in a beneficial way, that's helpful.

However, if your code is a customization for a usecase you prefer, but could restrict the possible usecases of the codebase for others, it would be better to keep this in your own codebase.

_I am open to creating a theme system, or to listing unofficial themes in this repo, but I haven't done any work towards this end._

_If you aren't sure if a feature would be helpful, but you want to share the idea, open an issue._

## Benchmarks

The system has been tested on an M2 MacBook Air, using the FPS counter in the rendering tab of Chrome DevTools. **These tests were performed before some optimizations, so they may be slightly underestimating performance**

#### Fully Connected (every node to every other node)

| # Nodes | FPS Static | FPS Moving  |
| ------- | ---------- | ----------- |
| 10      | 60         | 60          |
| 50      | 60         | 60          |
| 100     | 60         | 20 (at min) |

#### Sparsely Connected (one/two edge(s) per node)

| # Nodes | FPS Static | FPS Moving |
| ------- | ---------- | ---------- |
| 10      | 60         | 60         |
| 50      | 60         | 60         |
| 100     | 60         | 60         |
| 500     | 60         | 60         |
| 1000    | 60         | 60         |
| 5000    | 60         | 50         |
| 10000   | 45         | 35         |
| 50000   | 15         | 12         |

## Progress Tracker

-   [x] Create basic graph nodes and edges
-   [x] Add mock event listeners using offscreen canvas (are there fractional colors?)
-   [x] Create mouse zoom system (offset, dpr initial scale, center origin)
-   [x] Add graph editing keyboard shortcuts
    -   [x] Move point
    -   [x] Remove point
    -   [x] Add point
    -   [x] Add edge
    -   [x] Remove edge
    -   [x] Deselect
    -   [x] Undo (make each thing an action, and then make classes with an undo method, and a stack (w/ generics) for history)
    -   [ ] Improve add node/edge icons
-   [x] Add any tests that may be useful
-   [x] Create global configuration system
-   [x] Create tooltip/info card that shows shortcuts on hover (synchronized with code)
-   [x] Add config/content pane on the left side (like streamlit)
-   [x] Benchmark/profile the system on large datasets
-   [x] Automatically center and scale based on dataset x and y coords
-   [x] Add zoom buttons
-   [x] Improve class reusability, like with buttons
-   [x] Split up css files
-   [x] Add accessibility features
-   [x] Make reusable graph generator
-   [x] Prepare README for initial release
-   [x] Change action names to be based on actions and not names of things (info-button-active => show-shortcut-info)
-   [ ] Add CSS theme system
-   [ ] Automatically move graph when showing the info/config panel
-   [ ] Interchangeable 2d and webgl renderers
-   [ ] Find performance improvements (try doing stroke and fill only once for nodes and edges)
-   [ ] Create cleaning command to remove testing files for new repos
-   [ ] Add additional offscreen canvas for edges only to increase scalability
-   [ ] Add wraparound handling for items outside the range
-   [ ] Make sure the color system works beyond 256^3

Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

cove

cove

Cove is a minimal TanStack Start starter template maintained by mugnavo, integrating React, TanStack Router/Query, Tailwind CSS, shadcn/ui, Drizzle ORM with PostgreSQL, Better Auth, Vite Plus, and Nitro.

Vite · SaaS

vite-react-boilerplate

vite-react-boilerplate

A production-ready Vite + React starter template with TypeScript, Tailwind CSS, TanStack Router/Query/Table, Storybook, React Hook Form + Zod, Vitest and Playwright testing, plus Husky/Commitizen/Commitlint commit conventions.

Vite · Starter

vital

vital

Vital is a Vite-based React starter template using TypeScript and Tailwind CSS, with an Atomic Design component directory, path aliases and Hero Icons.

Vite · Starter

react-vite-admin

react-vite-admin

A backend management starter built on Vite and React, integrating Recoil, React Query, TypeScript, and Axios, with Ant Design-style interface screenshots. Suitable as a starting point for management-side projects, licensed under MIT, with Chinese documentation and common scripts.

Vite · Admin dashboard

typescript-react_best_practices-vite_template

typescript-react_best_practices-vite_template

A Vite + React + TypeScript starter template by CodelyTV, preconfigured with Jest and React Testing Library unit tests, Cypress end-to-end tests, ESLint and Prettier using Codely's shared configuration, GitHub Actions workflows, a Makefile, and Sass.

Vite · Starter

cloudflare-starter-kit

cloudflare-starter-kit

A Cloudflare Workers project scaffolding template maintained by kriasoft, using Vite and TypeScript, with three built-in workspaces: api, app, and edge, and preconfigured local testing, multiple environments, and a GitHub Actions deployment workflow.

Vite · Starter