Public demo shell

Forgejo Code Server Shell

This is the fastest way to understand the product: Forgejo keeps the code-hosting surface recognizable, while Vaglio adds analysis, provenance, and investor-readable repository narratives beside it.

Start with this demo Open public source Open imported Forgejo target Open snapshot reports
Recommended first view
forgejo/forgejo

A self-hosted forge codebase that makes the product boundary itself easy to demonstrate.

  • Shows the Forgejo shell and Vaglio boundary immediately.
  • Highlights a curated dashboard instead of starting with infrastructure controls.
  • Gives an outsider an obvious first click without verbal narration.

Curated Investor Demos

NixOS/nixpkgs GitHub source Massive infra codebase with broad subsystem ownership and frequent coordination churn. kubernetes/kubernetes GitHub source Large-scale upstream project with many subsystems, strong reviewer specialization, and obvious hotspot surfaces. Recommended first click forgejo/forgejo Codeberg source A self-hosted forge codebase that makes the product boundary itself easy to demonstrate.

End-to-End Import Flow

Public source
forgejo/forgejo
Imported Forgejo target
vaglio-demos/forgejo
Import public source done

Mirror forgejo/forgejo into a Forgejo-hosted demo namespace without bespoke setup.

Translate Git edge to jj semantics done

Project refs, pull requests, and merges through the Git↔jj gateway before analysis.

Render investor dashboard done

Expose maintainer concentration, expertise signals, hotspots, provenance overlays, and the first stress/heat surface on the same host.

Forgejo Edge

navigation Forgejo repository https://codeberg.org/vaglio-demos/forgejo navigation Forgejo pull requests https://codeberg.org/vaglio-demos/forgejo/pulls navigation Vaglio roundtable dashboard / navigation Vaglio analysis surface /forgejo-shell#analysis-surface

Reuse vs Replace Boundary

Repository browsing Forgejo

Use Forgejo's repo, tree, issue, and pull-request UI unchanged.

User and session management Forgejo

Reuse Forgejo authentication and session handling instead of building a parallel account system.

Web chrome Forgejo

Treat Vaglio as an adjacent panel or sidecar surface, not a hard fork of Forgejo chrome.

Webhook ingress Forgejo

Let Forgejo emit Git-shaped events while Vaglio translates them at the gateway boundary.

Analysis and deliberation Vaglio

Keep the internal source of truth `jj`-first behind the Git↔jj translation layer.

Vaglio Analysis Surface

Branch projection

%{
  git: %{kind: :branch_ref, branch: "forgejo", ref: "refs/heads/forgejo"},
  jj: %{
    kind: :bookmark_projection,
    writable: true,
    bookmark: "git/heads/forgejo"
  },
  provenance: %{lossy: false, notes: [], translated_from: :git}
}

Commit projection

%{
  git: %{kind: :commit, sha: "8badf00d"},
  jj: %{kind: :revset_selector, revset: "commit_id(\"8badf00d\")"},
  provenance: %{
    lossy: false,
    notes: ["Git commit SHAs map to explicit `jj` revset selectors, not synthetic change IDs."],
    translated_from: :git
  }
}

Review projection

%{
  git: %{
    state: :open,
    title: "Vaglio shell integration",
    number: 66,
    kind: :pull_request,
    head_ref: "feature/vaglio-shell",
    base_ref: "forgejo"
  },
  jj: %{
    change_key: "git/pr/66",
    kind: :change_proposal,
    base_bookmark: "git/heads/forgejo",
    head_bookmark: "git/pr/66/head",
    review_state: :open,
    source_branch_bookmark: "git/heads/feature/vaglio-shell"
  },
  provenance: %{
    lossy: false,
    notes: ["Pull requests are projected as change proposals, not canonical internal review objects."],
    translated_from: :git
  }
}

Merge projection

%{
  git: %{
    strategy: :merge,
    kind: :merge_event,
    base_ref: "forgejo",
    merged_commit_sha: "8badf00d",
    pull_request_number: 66
  },
  jj: %{
    kind: :bookmark_move,
    merge_strategy: :merge,
    bookmark: "git/heads/forgejo",
    target_revset: "commit_id(\"8badf00d\")"
  },
  provenance: %{
    lossy: false,
    notes: ["Non-squash merges preserve Git edge ancestry most directly."],
    translated_from: :git
  }
}

Investor Dashboard

Product dogfooding story: Forgejo shell outside, Vaglio semantics inside.

This demo makes the platform story concrete: repository browsing and account UX stay Forgejo-native while Vaglio adds semantic change tracking, provenance, and analysis surfaces beside it.

Maintainer concentration
0.54

A modest core still anchors critical forge workflows.

Contributor expertise signals
9

UI, auth, federation, and actions each show repeat expert contributors.

Subsystem hotspots
3

Web UI, repository APIs, and actions runners drive most coordination cost.

Expertise signals

Self-hosting credibility
Investors can see the product demonstrated on the very kind of platform it complements.
Boundary clarity
The shell shows which features remain Forgejo-native versus which become Vaglio-native.

Subsystem hotspots

Repository APIs — Compatibility surface
This is where Git-shaped clients meet a more expressive internal model.
Web UI — Product leverage
UI chrome can be reused while Vaglio adds differentiated analysis.
Actions / runners — Automation governance
A natural place to show agent-scale provenance and control loops.

Provenance overlays

Imported source + local semantics
Public upstream stays recognizable while imported analysis preserves a `jj`-first internal history.
Decision traceability
Overlay roundtable and review context on top of Forgejo pull-request flows.

Stress & Change Heat

Active-inference surface
Product-boundary stress is lowest where Forgejo stays native and Vaglio stays semantic.

This demo frames stress as the cost of forcing one layer to impersonate the other. Heat is highest where repository APIs, UI expectations, and automation governance overlap.

Derived from sampled branch history
Sampled commits
40

Shallow history sample from the tracked branch.

Contributor count
18

Unique contributors observed in the sampled window.

Top author share
57.0%

Share of sampled commits attributable to the top three contributors.

Commit cadence
7.65/day

Recent sampled commits per day across the fetched window.

Branch stress
0.58

Most uncertainty is architectural rather than operational: where should the semantic boundary live?

History heat
3 peaks

Repository APIs, web UI, and actions automation carry most of the integration pressure.

Active-inference confidence
medium-high

Boundary clarity reduces stress faster than raw code churn reduction in this demo.

Project Mind Heatmap

Modules with low prediction error read as settled. Repeated coordination pressure, concentrated authorship, and hot paths rise into contested zones.

Settled
Watch
Contested
repository api path
Contested
Curated subsystem Stress high Heat 0.74
Heat appears where Git-facing expectations must be translated into a richer internal model without confusing operators.
Appraisal value: Investigate and adversarially review
web shell path
Watch
Curated subsystem Stress medium Heat 0.61
UI reuse is valuable, but stress rises if product boundaries are hidden instead of made explicit.
Appraisal value: Track and gather more evidence
actions governance path
Watch
Curated subsystem Stress medium Heat 0.64
Agent-scale automation needs provenance and policy hooks or the apparent convenience becomes latent operational debt.
Appraisal value: Track and gather more evidence
go.sum
Contested
Sampled branch path Stress high Heat 1.0
6 mentions in the sampled branch window. This is where recent change energy and maintainer attention are likely to collide first.
Appraisal value: Investigate and adversarially review
go.mod
Contested
Sampled branch path Stress high Heat 1.0
6 mentions in the sampled branch window. This is where recent change energy and maintainer attention are likely to collide first.
Appraisal value: Investigate and adversarially review
options/locale_next/locale_en-US.json
Watch
Sampled branch path Stress medium Heat 0.67
4 mentions in the sampled branch window. This is where recent change energy and maintainer attention are likely to collide first.
Appraisal value: Track and gather more evidence
repository api path high stress
Heat score 0.74

Heat appears where Git-facing expectations must be translated into a richer internal model without confusing operators.

web shell path medium stress
Heat score 0.61

UI reuse is valuable, but stress rises if product boundaries are hidden instead of made explicit.

actions governance path medium stress
Heat score 0.64

Agent-scale automation needs provenance and policy hooks or the apparent convenience becomes latent operational debt.

sampled branch concentration medium stress
Heat score 0.57

The sampled branch history shows 18 contributors with 57.0% of commits concentrated in the top three authors, indicating medium coordination concentration.

History heat timeline

T-14d
Prototype ambiguity
The shell can demo well before the semantic boundary is fully explained.
T-5d
Boundary clarification
Separating Forgejo-native and Vaglio-native surfaces reduces confusion and lowers stress.
T-1d
Governance follow-through
The remaining heat sits in policy and provenance, not basic routing or host availability.
sampled
7.65/day cadence
Derived from 40 sampled commits on the tracked branch, using shallow history rather than curated-only narrative.

Sampled Repo Evidence

Tracked branch sample

This section is computed from a shallow sample of the public source branch, not hand-authored demo prose. It is meant to be the first visible proof that the page is tied to actual repository state.

Top sampled contributors

Author Email Commits
Renovate Bot bot@kriese.eu 15
Mathieu Fenniak mathieu@fenniak.net 6
Shiny Nematoda snematoda.751k2@aleeas.com 2
limiting-factor limiting-factor@posteo.com 2
steven.guiheux steven.guiheux@ovhcloud.com 2

Recent sampled commits

When Author SHA
2026-05-23 Renovate Bot 26f18a94
2026-05-23 limiting-factor 5c618080
2026-05-23 Renovate Bot 0f449ff8
2026-05-23 Renovate Bot 37b3b3a2
2026-05-23 Mai-Lapyst 5704b305
2026-05-23 Mathieu Fenniak 6d522ecb
2026-05-23 limiting-factor 03d336de
2026-05-23 Renovate Bot c749861d
2026-05-22 Renovate Bot 1a108e8f
2026-05-22 B0sh e49cb9e7
2026-05-22 hwipl 1ea5605e
2026-05-22 Renovate Bot 7054075b

Sampled path hotspots

Path Mentions
go.sum 6
go.mod 6
options/locale_next/locale_en-US.json 4
routers/web/web.go 3
package.json 2
options/locale/locale_en-US.ini 2
.forgejo/workflows/merge-requirements.yml 2
tests/e2e/user-settings.test.e2e.ts 2

JJ vs Git Infrastructure Benchmark

Forgejo shell benchmark

Use Forgejo for the shell, but keep the inside unmistakably `jj`-native so the product story remains differentiated.

Concurrent changes
18
Ephemeral workspaces
14
Conflict recovery cases
5
Ingest window
1.4 minutes
Reproducible workload hooks
  • shell-to-core boundary trace
  • PR envelope mapping
  • actions governance notes
jj-native core native
Throughput 1.00x Supports the product story of agent-heavy code production.
Ingest latency 0.78x Fast enough to keep the demo responsive without hiding core semantics.
Operational complexity 0.66x Lower long-term burden if the shell stays thin.
Ecosystem compatibility 0.88x Good enough when Forgejo remains the UI shell.
Provenance fidelity 0.97x Best fit for showing why Vaglio is more than hosted Git.
  • Best differentiation story for investors.
  • Still benefits from familiar Git entry points at the surface.
Git-compatible edge-first flow compatible
Throughput 0.84x Good enough for shell workflows, weaker for future agent scale.
Ingest latency 1.00x Baseline Git-edge experience for imports and PRs.
Operational complexity 1.00x Baseline includes translation and provenance repair burden.
Ecosystem compatibility 1.00x Strongest short-term fit for host-side integrations.
Provenance fidelity 0.71x Still loses semantics unless Vaglio reconstructs them.
  • Simplest procurement and familiarity story.
  • Makes Vaglio look more like repo analytics than a new substrate.

Keep native in jj

semantic history
Best handled inside the native Vaglio core.
agent workspace model
Best handled inside the native Vaglio core.
deliberation provenance
Best handled inside the native Vaglio core.
conflict recovery
Best handled inside the native Vaglio core.

Keep compatible at the edge

UI chrome
Expose through the Forgejo/Git-facing shell for adoption.
account/session management
Expose through the Forgejo/Git-facing shell for adoption.
repo import
Expose through the Forgejo/Git-facing shell for adoption.
developer entry points
Expose through the Forgejo/Git-facing shell for adoption.

Extension Seams

Git edge Roundtable.Adapters.Forgejo

Reads and writes discussion repos against Forgejo's API.

Semantic gateway Roundtable.Translation.GitToJj

Maps Git refs, pull requests, commits, and merges into `jj`-native analysis objects.

Vaglio analysis UI RoundtableWeb.DiscussionLive

Hosts the existing roundtable dashboard without requiring Git to become the internal source of truth.

Advanced Prototype Source Controls

These controls are here for operators and demo preparation. Most visitors should start with the recommended curated demo above instead of changing the shell inputs first.