Skip to content

Commit 3f37c97

Browse files
docs: add editor hero, live-demo link, social card, and "Why Apollon" (#823)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent d04150a commit 3f37c97

22 files changed

Lines changed: 800 additions & 23 deletions

.changeset/proud-donkeys-shine.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@tumaet/apollon": patch
3+
---
4+
5+
Polish the npm README: an editor screenshot in a browser-window frame plus "Try the live demo" / "Documentation" buttons, so the package page shows the product, not just badges. All images are generated from the live editor by the `readme-assets` Playwright project and hosted from the repository, using npm-safe plain markdown images (npmjs.com strips GitHub's `<picture>` theme swap and img sizing attributes).

.github/workflows/update-visual-baselines.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ jobs:
6363
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
6464
# Scope strictly to generated snapshot PNGs so a render bug can't
6565
# smuggle other tree changes back onto the branch. The how-to-use modal
66-
# assets are regenerated by the same run (howto-assets project) but land
67-
# under assets/images/, not a *-snapshots dir, so stage them explicitly.
66+
# assets and the README/social-card assets are regenerated by the same
67+
# run (howto-assets + readme-assets projects) but land outside the
68+
# *-snapshots dirs, so stage them explicitly.
6869
git add 'standalone/webapp/tests/**/*-snapshots/*.png' \
69-
'standalone/webapp/assets/images/how-to-use-*.png'
70+
'standalone/webapp/assets/images/how-to-use-*.png' \
71+
'docs/static/img/apollon-*.png'
7072
if git diff --cached --quiet; then
7173
echo "Baselines already match — nothing to commit." >> "$GITHUB_STEP_SUMMARY"
7274
exit 0

README.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,51 @@
1-
# Apollon
1+
<div align="center">
2+
3+
<picture>
4+
<source media="(prefers-color-scheme: dark)" srcset="docs/static/img/apollon-lockup-dark.png" />
5+
<img src="docs/static/img/apollon-lockup-light.png" alt="Apollon" height="84" />
6+
</picture>
27

38
[![npm version](https://img.shields.io/npm/v/@tumaet/apollon)](https://www.npmjs.com/package/@tumaet/apollon)
9+
[![npm downloads](https://img.shields.io/npm/dm/@tumaet/apollon)](https://www.npmjs.com/package/@tumaet/apollon)
410
[![npm license](https://img.shields.io/npm/l/@tumaet/apollon)](./LICENSE)
511

6-
Apollon is an open-source UML modeling editor for the web. Draw 13 UML and modeling diagram types (class, component, activity, BPMN, SFC, and more) in the browser, collaborate in real time, and export to SVG, PNG, PDF, or JSON.
12+
**Open-source UML modeling editor for the web.** Draw 13 UML and modeling diagram types (class, component, activity, BPMN, SFC, and more) in the browser, collaborate in real time, and export to SVG, PNG, PDF, PPTX, or JSON.
13+
14+
<p>
15+
<a href="https://apollon.aet.cit.tum.de">
16+
<picture>
17+
<source media="(prefers-color-scheme: dark)" srcset="docs/static/img/apollon-btn-demo-dark.png" />
18+
<img src="docs/static/img/apollon-btn-demo-light.png" alt="Try the live demo" height="64" />
19+
</picture>
20+
</a>
21+
<a href="https://ls1intum.github.io/Apollon/">
22+
<picture>
23+
<source media="(prefers-color-scheme: dark)" srcset="docs/static/img/apollon-btn-docs-dark.png" />
24+
<img src="docs/static/img/apollon-btn-docs-light.png" alt="Documentation" height="64" />
25+
</picture>
26+
</a>
27+
</p>
28+
29+
[npm package](https://www.npmjs.com/package/@tumaet/apollon) · [VS Code extension](https://marketplace.visualstudio.com/items?itemName=aet-tum.apollon-extension)
30+
31+
<a href="https://apollon.aet.cit.tum.de">
32+
<picture>
33+
<source media="(prefers-color-scheme: dark)" srcset="docs/static/img/apollon-editor-dark.png" />
34+
<img src="docs/static/img/apollon-editor-light.png" alt="The Apollon editor showing a UML class diagram, with the element palette on the left and the app chrome on top" />
35+
</picture>
36+
</a>
37+
38+
</div>
39+
40+
## Why Apollon
41+
42+
- **Made for learning and teaching.** Apollon powers the UML modeling exercises and grading workflows in [Artemis](https://artemis.tum.de/), TUM's interactive learning platform, and holds up in large university courses — but it is a general-purpose editor that works just as well outside the classroom.
43+
- **Embeddable first.** The editor is an npm library with an imperative API (plus a React component); the standalone web app and the VS Code extension in this repo are built on top of it. If you need diagramming inside your own product, you embed the exact editor you see in the demo.
44+
- **Framework-agnostic.** One API works from Angular, Vue, Svelte, vanilla JS, or React.
45+
- **Real-time collaboration built in.** Opt-in multi-user editing over [Yjs](https://yjs.dev/), with any transport you like.
46+
- **MIT-licensed and self-hostable.** No account, no cloud dependency — run the whole stack yourself.
47+
48+
## What's in this repo
749

850
This monorepo contains every piece of the Apollon platform:
951

docs/contributor/development/visual-tests.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@ cd standalone/webapp
4141
pnpm exec playwright test tests/visual/svg-export --update-snapshots
4242
```
4343

44+
## Generated UI assets
45+
46+
Two Playwright projects double as asset generators — their baselines **are** the shipped files, so the images can never drift from the real editor:
47+
48+
- `howto-assets` writes the "How this editor works" modal images to `standalone/webapp/assets/images/`.
49+
- `readme-assets` writes the README hero screenshots (`apollon-editor-light.png`, `apollon-editor-dark.png`), the README header widgets (`apollon-lockup-*.png`, `apollon-btn-*.png` — brand lockup and call-to-action buttons, per color scheme), and the 1280×640 social preview card (`apollon-social-card.png`) to `docs/static/img/`. These are referenced by `README.md`, `library/README.md` (the npm page), and `themeConfig.image` in `docs/docusaurus.config.ts`.
50+
51+
Both regenerate through the same baseline-refresh flows above, or individually:
52+
53+
```sh
54+
cd standalone/webapp
55+
pnpm exec playwright test --project readme-assets --update-snapshots
56+
```
57+
58+
One manual step remains: GitHub has no API for the repository social preview, so after `apollon-social-card.png` changes, a maintainer re-uploads it under **Settings → General → Social preview**.
59+
4460
## Triage
4561

4662
If `visual-regression-tests` fails on a PR, download the `playwright-report-visual` artifact from the run, open `playwright-report/index.html` locally, and inspect the actual-vs-expected diff before deciding whether to refresh the baseline (intentional UI change — see above) or fix the regression (unintended).

docs/docusaurus.config.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,10 @@ const config: Config = {
141141
],
142142

143143
themeConfig: {
144-
// Link-unfurl preview image. The logo works; a dedicated 1200×630 card
145-
// would render better in social embeds.
146-
image: "img/logo.png",
144+
// Link-unfurl preview image: the 1280×640 social card generated from the
145+
// live editor by the "readme-assets" Playwright project (see
146+
// standalone/webapp/tests/visual/readme-assets.visual.spec.ts).
147+
image: "img/apollon-social-card.png",
147148
colorMode: {
148149
respectPrefersColorScheme: true,
149150
disableSwitch: false,

docs/src/pages/index.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@ function Hero() {
100100
browser.
101101
</h1>
102102
<p className={styles.heroSubtitle}>
103-
An open-source UML modeling editor. 13 diagram types, SVG/PNG/PDF/JSON
104-
export, real-time collaboration. Use it in the browser, in VS Code, or
105-
as an npm library.
103+
An open-source UML modeling editor. 13 diagram types,
104+
SVG/PNG/PDF/PPTX/JSON export, real-time collaboration. Use it in the
105+
browser, in VS Code, or as an npm library.
106106
</p>
107107
<div className={styles.buttons}>
108108
<Link className="button button--primary button--lg" href={HOSTED_URL}>
@@ -286,7 +286,7 @@ const FEATURES = [
286286
{
287287
kicker: "Output",
288288
title: "Export anywhere",
289-
body: "SVG, PNG, PDF, and JSON — from a mounted editor or a headless model. Round-trips through JSON without loss.",
289+
body: "SVG, PNG, PDF, and JSON — from a mounted editor or a headless model; the web app adds PPTX slides. Round-trips through JSON without loss.",
290290
},
291291
{
292292
kicker: "Collaboration",
7.37 KB
Loading
3.82 KB
Loading
7.75 KB
Loading
7.57 KB
Loading

0 commit comments

Comments
 (0)