1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
<!--
SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1
-->
# Visual X# website
This repository owns the public language website at [xsharp-lang.xyz](https://xsharp-lang.xyz). It does not own
Progmasoft's corporate or account sites. Visual X# uses its own supplied purple leopard SVG identity;
the Progmasoft mark is a different brand.
## Routes and rollout
- `/` answers why Visual X# exists and gives an honest implementation-status caveat.
- `/docs/overview` explains the design direction.
- `/docs/getting-started` links the real compiler checkout and toolchain.
- `forum.xsharp-lang.xyz` is a standalone informational page. It is *not* a forum service; accounts and posts do not exist
there yet. It stays noindex until a real community forum is launched.
The language domain remains on its maintenance page during the redesign. Do not replace the maintenance Nginx config with
`ops/nginx/xsharp.conf` merely because the new frontend builds. Publishing the site requires content review, route checks,
and an explicit rollout decision. The forum placeholder can be deployed independently. See the
[operations runbook](Documents/OPERATIONS.md) for the exact route and rollout boundaries.
## Frontend
The frontend is Vue 3 + Vite + TypeScript. It defaults to dark mode and `en-US`, with `de-DE` and `ru-RU` options and a light theme.
Preferences stay in local storage. Motion is limited to short interaction transitions and obeys reduced-motion preferences.
The site uses self-hosted Fira Sans and no third-party runtime font request.
```text
cd frontend
npm ci
npm run check
npm run format:check
npm test
npm run build
npm run dev
```
The production artifact is `frontend/dist/`. Deploy its *contents* to the static root named
`/srv/xsharp/website/current/frontend/` in `ops/nginx/xsharp.conf`. Vue Router history URLs require the Nginx
`try_files ... /index.html` fallback. The sitemap lists only the three canonical language pages; forum remains noindex.
## Backend
The small language-site API is Kotlin/JVM 25 and Spring Boot 4.1.1. Its package root is
`com.progmasoft.visual.xsharp.website`. It exposes `/api/v1/site` for the website's own public state and `/health`
for the local service manager. It has no account, package, publication, or registry endpoints. Progmaweb owns those
separate services and uses Next.js with ASP.NET Core 10; neither that stack nor its status API belongs in this repository.
```text
cd backend
gradle test bootJar
```
The jar is built under `backend/build/libs/`. The server unit in `ops/systemd/xsharp-site-api.service` expects it at
`/srv/xsharp/website/current/backend/visual-xsharp-website-api-1.0.0.jar` and binds it only to loopback port 5086.
The old .NET process remains on loopback port 5080 solely because Progmaweb's temporary ViGet status route still
depends on it; the language site does not proxy to that process. Migrate the ViGet route within Progmaweb before
retiring the old process. The server needs a Java 25 runtime. Committing these files alone does not deploy them.
## Links and language accuracy
The code example in the site is the repository's `Examples/HelloWorld/HelloWorld.vxs`, not an invented syntax sample.
All links to the compiler, examples, and specification point to the `Progmasoft/visual-xsharp` repository. The design
examples in `Spec/` can be ahead of compiler support; website text must not turn them into implementation claims. The
retired `docs/ARCHITECTURE.md` link has been removed; architecture documentation now lives under `Documents/` in the
compiler repository.
The [content contract](Documents/CONTENT.md) records the intended page roles, translation rules, and fact-checking
boundary for future copy changes.
## License
Project-owned website source is `AGPL-3.0-or-later` with the Progmasoft Patent Grant, Version 1.1. Users interacting
with a deployed modified version over a network must be offered its corresponding source. See `LICENSE.txt`, `PATENTS`,
and `LICENSES/AdditionRef-Progmasoft-Patent-Grant-1.1.txt`. Fira Sans has its own OFL notice in
`third_party/fonts/FiraSans-OFL.txt`.
|