# rickingithub/vscodium architecture

> Architecture diagram of the GitHub repository rickingithub/vscodium, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rickingithub/vscodium
- Repository: https://github.com/rickingithub/vscodium

## Overview

VSCodium is a repository of scripts and configuration for turning Microsoft’s VS Code source into community-configured, MIT-licensed stable and Insiders binaries. The documented workflow obtains upstream source, applies product customizations and patches, builds the application, packages it for supported platforms, and publishes releases. The tree also includes a custom-font-size generator and configuration for extensions, telemetry, updates, and announcements. The README documents the overall build and release flow; sampled source was limited to the font-size generator, so detailed wiring between build scripts is not inferred.

Main entry points: [`build.sh`](https://github.com/rickingithub/vscodium/blob/master/build.sh) (Build orchestration), [`prepare_vscode.sh`](https://github.com/rickingithub/vscodium/blob/master/prepare_vscode.sh) (VS Code build), [`prepare_src.sh`](https://github.com/rickingithub/vscodium/blob/master/prepare_src.sh) (Source preparation), [`release.sh`](https://github.com/rickingithub/vscodium/blob/master/release.sh) (Release publishing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_source["Source and configuration"]
  node_sourceprep["Source preparation<br/>[prepare_src.sh]"]
  node_upstreampin["Upstream versions"]
  node_productconfig["Product configuration<br/>[product.json]"]
  node_patches["Community patches"]
  node_announcements["Announcements"]
end

subgraph group_build["Build and packaging"]
  node_buildentry["Build orchestration<br/>[build.sh]"]
  node_vscodebuild["VS Code build<br/>[prepare_vscode.sh]"]
  node_linux["Linux packaging"]
  node_macos["macOS packaging"]
  node_windows["Windows packaging"]
  node_snap["Snap packaging"]
end

subgraph group_release["Distribution"]
  node_releaseentry["Release publishing<br/>[release.sh]"]
end

subgraph group_custom["Customization"]
  node_extensionpatch["Extension changes"]
  node_fontgenerator["Font-size generator<br/>[generate-css.ts]"]
end

node_maintainer(("VSCodium maintainers"))
node_upstream["VS Code source"]
node_githubreleases[("GitHub releases")]

node_maintainer -->|"initiates build"| node_buildentry
node_upstreampin -->|"selects version"| node_sourceprep
node_sourceprep -->|"obtains source"| node_upstream
node_sourceprep -->|"provides source"| node_vscodebuild
node_productconfig -->|"configures product"| node_vscodebuild
node_patches -->|"customizes source"| node_vscodebuild
node_buildentry -->|"prepares source"| node_sourceprep
node_buildentry -->|"builds application"| node_vscodebuild
node_buildentry -->|"packages for Linux"| node_linux
node_buildentry -->|"packages for macOS"| node_macos
node_buildentry -->|"packages for Windows"| node_windows
node_snap -.->|"distributes packages"| node_githubreleases
node_buildentry -->|"hands off artifacts"| node_releaseentry
node_releaseentry -->|"publishes binaries"| node_githubreleases
node_extensionpatch -->|"changes downloads"| node_vscodebuild
node_fontgenerator -->|"rewrites CSS"| node_upstream

click node_sourceprep "https://github.com/rickingithub/vscodium/blob/master/prepare_src.sh"
click node_upstreampin "https://github.com/rickingithub/vscodium/tree/master/upstream"
click node_productconfig "https://github.com/rickingithub/vscodium/blob/master/product.json"
click node_patches "https://github.com/rickingithub/vscodium/tree/master/patches"
click node_announcements "https://github.com/rickingithub/vscodium/blob/master/announcements-builtin.json"
click node_buildentry "https://github.com/rickingithub/vscodium/blob/master/build.sh"
click node_vscodebuild "https://github.com/rickingithub/vscodium/blob/master/prepare_vscode.sh"
click node_linux "https://github.com/rickingithub/vscodium/tree/master/build/linux"
click node_macos "https://github.com/rickingithub/vscodium/tree/master/build/osx"
click node_windows "https://github.com/rickingithub/vscodium/tree/master/build/windows"
click node_snap "https://github.com/rickingithub/vscodium/tree/master/stores/snapcraft"
click node_releaseentry "https://github.com/rickingithub/vscodium/blob/master/release.sh"
click node_extensionpatch "https://github.com/rickingithub/vscodium/blob/master/patches/00-build-download-extensions-from-gh.patch"
click node_fontgenerator "https://github.com/rickingithub/vscodium/blob/master/font-size/generate-css.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sourceprep,node_upstreampin,node_productconfig,node_patches,node_announcements toneBlue
class node_buildentry,node_vscodebuild,node_linux,node_macos,node_windows,node_snap,node_githubreleases toneAmber
class node_releaseentry toneMint
class node_extensionpatch,node_fontgenerator toneRose
class node_maintainer,node_upstream toneIndigo
```

## Components

### Source and configuration

- [Source preparation](https://github.com/rickingithub/vscodium/blob/master/prepare_src.sh): `prepare_src.sh`
- [Upstream versions](https://github.com/rickingithub/vscodium/tree/master/upstream): `upstream`
- [Product configuration](https://github.com/rickingithub/vscodium/blob/master/product.json): `product.json`
- [Community patches](https://github.com/rickingithub/vscodium/tree/master/patches): `patches`
- [Announcements](https://github.com/rickingithub/vscodium/blob/master/announcements-builtin.json): `announcements-builtin.json`

### Build and packaging

- [Build orchestration](https://github.com/rickingithub/vscodium/blob/master/build.sh): `build.sh`
- [VS Code build](https://github.com/rickingithub/vscodium/blob/master/prepare_vscode.sh): `prepare_vscode.sh`
- [Linux packaging](https://github.com/rickingithub/vscodium/tree/master/build/linux): `build/linux`
- [macOS packaging](https://github.com/rickingithub/vscodium/tree/master/build/osx): `build/osx`
- [Windows packaging](https://github.com/rickingithub/vscodium/tree/master/build/windows): `build/windows`
- [Snap packaging](https://github.com/rickingithub/vscodium/tree/master/stores/snapcraft): `stores/snapcraft`

### Distribution

- [Release publishing](https://github.com/rickingithub/vscodium/blob/master/release.sh): `release.sh`

### Customization

- [Extension changes](https://github.com/rickingithub/vscodium/blob/master/patches/00-build-download-extensions-from-gh.patch): `patches/00-build-download-extensions-from-gh.patch`
- [Font-size generator](https://github.com/rickingithub/vscodium/blob/master/font-size/generate-css.ts): `font-size/generate-css.ts`

### Other components

- **VSCodium maintainers**
- **VS Code source**
- **GitHub releases**

## Connections

- VSCodium maintainers → Build orchestration: initiates build
- Upstream versions → Source preparation: selects version
- Source preparation → VS Code source: obtains source
- Source preparation → VS Code build: provides source
- Product configuration → VS Code build: configures product
- Community patches → VS Code build: customizes source
- Build orchestration → Source preparation: prepares source
- Build orchestration → VS Code build: builds application
- Build orchestration → Linux packaging: packages for Linux
- Build orchestration → macOS packaging: packages for macOS
- Build orchestration → Windows packaging: packages for Windows
- Snap packaging → GitHub releases: distributes packages
- Build orchestration → Release publishing: hands off artifacts
- Release publishing → GitHub releases: publishes binaries
- Extension changes → VS Code build: changes downloads
- Font-size generator → VS Code source: rewrites CSS
