Skip to content

frkn-aydn/GoVisualize

Repository files navigation

GoVisualize

Design your backend before you write code.

GoVisualize is an open-source desktop app for mapping API endpoints, domain models, and business logic in one visual workspace. Describe what you want in plain language, and the built-in AI assistant proposes structured design changes you can review and apply to your project.

Built with Electron, Svelte 5, Tailwind CSS 4, and DaisyUI.

GoVisualize


Features

Endpoints

  • Define HTTP routes with method, path, version, and access level (public / protected)
  • Organize endpoints into categories; search and filter the list
  • Rich Markdown descriptions (summary, request body, behavior, responses, security)

Domain models

  • Visual canvas with drag-and-drop entity cards
  • Fields with types and descriptions
  • Relationships: has one, has many, belongs to, reference
  • Smart edge routing to reduce overlapping connection lines

Business logic

  • Flow canvas for triggers, actions, persistence, integrations, decisions, and failure handlers
  • Branch steps with conditions (success, failure, timeout, retry, …)
  • Markdown step descriptions (view / edit modes)
  • Auto-layout arranges flows left-to-right by branch depth

AI assistant

  • Supports Claude (Anthropic) and DeepSeek
  • Live model list fetched from each provider’s API (with offline fallback)
  • Per-model thinking controls — adaptive/manual budget (Claude) or thinking on/off with effort (DeepSeek)
  • Generates endpoints, models, fields, relations, logic steps, and branches from natural language
  • Cursor-style tool cards for proposed design actions
  • Auto-apply or manual review before changes land on the canvas
  • Partial apply: valid actions go through; invalid ones are skipped with warnings
  • Chat sessions are scoped per project

Projects

  • Save and open portable .json design files
  • Unsaved-changes protection when switching projects
  • First-run onboarding for API keys, model/reasoning, and preferences (reopen anytime from AI setup or settings)

Screenshot

GoVisualize — endpoints, domain models, business logic flows, and AI assistant


Getting started

Prerequisites

  • Node.js 20+ (LTS recommended)
  • npm 10+

Development

git clone https://github.com/YOUR_ORG/govisualize.git
cd govisualize
npm install
npm run dev

This starts the Vite dev server and Electron window. Use New Design Project or Open JSON Project on the welcome screen.

AI setup

On first launch, the setup wizard walks you through:

  1. Choosing a default provider (Claude or DeepSeek)
  2. Entering your API key (Anthropic · DeepSeek)
  3. Selecting model and reasoning level (live list from the provider API)
  4. Auto-apply preference

Keys are stored locally in your OS user data folder and encrypted with Electron safeStorage when the platform supports it.

You can reopen setup later via AI setup on the welcome screen, or Run setup wizard again in AI Settings (gear icon in the chat panel).


Desktop builds

Install dependencies, then use the Makefile to produce installers. Artifacts are written to ./release/.

make install
make check          # TypeScript + Svelte checks
make build          # Renderer + main process only
make package        # Package for the current host OS

Platform targets

Target Output
make release-mac-x64 macOS Intel — DMG + ZIP
make release-mac-arm64 macOS Apple Silicon — DMG + ZIP
make release-mac Both macOS architectures
make release-win-x64 Windows x64 — NSIS + portable
make release-win-arm64 Windows arm64 — NSIS + portable
make release-linux-x64 Linux x64 — AppImage + deb
make release-linux-arm64 Linux arm64 — AppImage + deb
make release-all Every target above

macOS builds must run on macOS. Windows and Linux targets can be built cross-platform with electron-builder.

Code signing: Installers are unsigned by default. macOS users may see Gatekeeper prompts until you sign and notarize the app for distribution.


Project file format

Projects save as JSON with format: "backend-design-spec". The file includes endpoints, domain models, relations, logic steps/branches, and an AI-readable summary.

{
  "format": "backend-design-spec",
  "formatVersion": 1,
  "meta": {
    "name": "My API",
    "summary": ""
  },
  "api": {
    "categories": ["Auth"],
    "endpoints": [
      {
        "method": "POST",
        "path": "/auth/login",
        "version": "v1",
        "access": "protected",
        "route": "POST /auth/login (v1, protected)"
      }
    ]
  },
  "domain": {
    "models": [
      {
        "name": "User",
        "fields": [{ "name": "email", "type": "string" }],
        "layout": { "x": 80, "y": 80 }
      }
    ],
    "relations": []
  },
  "logic": {
    "steps": [
      { "kind": "trigger", "name": "POST /auth/login", "layout": { "x": 80, "y": 80 } }
    ],
    "branches": []
  }
}

Legacy files using format: "goviz-design" are still supported.


Tech stack

Layer Choice
Desktop shell Electron 36
UI Svelte 5, Tailwind CSS 4, DaisyUI 5
Graphs @xyflow/svelte
Markdown marked
Fonts Inter (bundled via @fontsource/inter)
Icons Lucide via @iconify/svelte

Project structure

├── electron/          # Main process, IPC, AI gateway, settings persistence
├── shared/            # Types, AI tools/actions, project format, layout helpers
├── src/
│   ├── lib/
│   │   ├── components/   # Svelte UI (designers, graphs, AI panel, onboarding)
│   │   ├── stores/       # Design + AI state
│   │   └── ai/           # Action executor (applies AI changes to canvas)
│   └── App.svelte
├── public/            # App icons
└── Makefile           # Release build shortcuts

Contributing

Contributions are welcome — issues, docs, and pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/my-feature)
  3. Run npm run check before opening a PR
  4. Keep changes focused; match existing code style

If you plan a larger change, open an issue first so we can align on approach.


Security

  • API keys never leave your machine except when sent to your chosen AI provider over HTTPS
  • Renderer runs with contextIsolation enabled and nodeIntegration disabled
  • Project files are plain JSON on disk — do not embed secrets in design specs

Report security concerns privately via GitHub Security Advisories or by opening a labeled issue.


License

MIT — see LICENSE.

Inter font is bundled under the SIL Open Font License via @fontsource/inter.


Acknowledgments

Inspired by the idea of designing backends visually before implementation — endpoints, data, and runtime behavior in one place.

About

Plan your backend visually with AI — endpoints, models, and logic flows — then hand the spec to your coding model. Open-source Electron app.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors