Project site
The GitHub Pages site has its own landing page in site/index.md. Documentation
is generated directly from docs/**/*.md, README.md and CHANGELOG.md; edit those
files with the code they describe. The build makes a temporary snapshot, discovers
documentation pages automatically, and copies supporting assets such as CSV files.
There are no maintained copies of the documentation and no separate wiki.
The site uses MkDocs with a small custom theme in site/theme/. Its palette and
button foundations are extracted from frontend/styles.css during the build;
site layout styles live in site/assets/site.css. Light and dark appearance follow
the device preference without persisting browser settings. Mermaid code fences
render using a pinned external renderer, with readable source as a fallback.
Build and preview
Install Rust/Cargo (as for app development), then run from the repository root:
python3 -m venv /tmp/open-webide-pages-venv
/tmp/open-webide-pages-venv/bin/pip install -r site/requirements.txt
/tmp/open-webide-pages-venv/bin/python site/build.py --output /tmp/open-webide-site
python3 -m http.server 8000 --directory /tmp/open-webide-site
Open http://localhost:8000/. Builds run in strict mode and check generated HTML,
so missing documentation links, anchors and local assets fail the build. Keep
generated output outside the repository; the build only replaces directories it
previously generated, to avoid deleting unrelated files.
Markdown links between source documents remain ordinary relative .md links;
MkDocs converts them to site URLs. Images should use Markdown image syntax for
relative-path rewriting. Keep raw HTML image paths relative to the generated page.
Publishing
In the repository's Settings → Pages → Build and deployment, set Source
to GitHub Actions. .github/workflows/pages.yml validates builds on pull
requests, then publishes site changes on main; it can also run manually.
The canonical address is https://openwebide.com/. Set Custom domain to
openwebide.com in the same Pages settings. With an Actions deployment, GitHub
uses this setting rather than a repository CNAME file.
At the DNS provider, replace the registrar's parking/redirect records for @
and www with these records:
| Type | Host | Value |
|---|---|---|
| A | @ |
185.199.108.153 |
| A | @ |
185.199.109.153 |
| A | @ |
185.199.110.153 |
| A | @ |
185.199.111.153 |
| CNAME | www |
openwebide.github.io |
GitHub redirects www to the configured apex domain. Enable Enforce HTTPS
once GitHub has provisioned its certificate. See
GitHub's custom-domain guide
for DNS configuration and propagation checks. To build for another deployment,
pass --site-url https://example.com/ to the build command.
The build does not compile the Rust/WASM app and works the same for visitors using either workspace mode. It links GitHub Issues for feedback and support. Issue templates, an optional demo, and launch announcements remain part of the 1.0 public-release work.
Social profiles
- Bluesky: account DID
did:plc:vw3hdjhj2253v3hc6cjtt4ys. The site uses this stable profile URL so handle changes do not break links. For@openwebide.com, the DNS TXT record at_atprotomust bedid=did:plc:vw3hdjhj2253v3hc6cjtt4ys; verify it in Bluesky's handle settings. - Mastodon:
@openwebide@mastodon.social. Puthttps://openwebide.com/in a profile metadata field named Website. The site footer links back withrel="me", allowing Mastodon to verify that website field once the site is deployed. Save the Mastodon profile again after deployment if verification has not appeared.
The discovery alias @openwebide@openwebide.com is served by
site/static/.well-known/webfinger. Its subject stays
acct:openwebide@mastodon.social, so clients resolve to the existing account;
the displayed handle stays @openwebide@mastodon.social. GitHub Pages serves
one static response regardless of query parameters; this is a single-account
alias rather than a general WebFinger service. Mastodon parses its JSON body,
but clients requiring a specific response content type may not support it.
The Pages workflow packages .well-known explicitly; the convenience Pages
upload action excludes dot directories.
- YouTube: @OpenWebIDE, channel ID
UCRRWQeyGWL1kkG0vjNIFtzA. Demos, setup walkthroughs, and feature updates.
The editable banner source and
upload-ready PNG use the app logo and palette.
The social header source and upload-ready PNG provide matching Bluesky and Mastodon headers. Keep these assets alongside the YouTube banner when updating branding.
Use GitHub Issues for support and bug reports; social profiles are for project updates and discovery.
Link previews and acknowledgements
Every page includes Open Graph and Twitter large-image card metadata, with its
own title, description and canonical URL. The shared preview uses
site/assets/social-card.png (1200 × 630); its editable source is the adjacent
SVG. The homepage canonical URL is the domain root.
The open source software page combines its repository
Markdown introduction with an inventory generated by site/credits.py during
site builds. Cargo metadata uses --locked --all-features to include resolved
third-party crates across the workspace, including platform, development,
benchmark and vendored dependencies. The inventory reports package versions,
upstream links and declared licenses, with direct dependencies listed first.
The site builder also inventories MkDocs and its installed Python dependencies.
Generated tables only exist in the build output; there is no second list to edit.
Pages rebuilds when Cargo manifests or the lockfile change. CI uses stable Cargo
for metadata without compiling the app or installing WASM targets.