The Orbitope landing page. A single self-contained index.html — all styles,
scripts, the logo (inline SVG), and the favicon are embedded. Fonts load from
Google Fonts. No build step, no dependencies.
- Create a new repository named
orbitope.github.io(replaceorbitopewith your GitHub username/org — for the org account it's literallyorbitope.github.io). - Upload
index.htmland.nojekyllto the repo root. - Repo → Settings → Pages → Source: Deploy from a branch →
Branch:
main/ folder:/ (root)→ Save. - Live at https://orbitope.github.io within ~60 seconds.
- Custom domain: the
CNAMEfile in this repo points Pages at orbitope.com (also set under Settings → Pages → Custom domain). That is the canonical host —orbitope.github.iostill resolves and redirects there, but every in-page link, theog:url, and the footer useorbitope.com. Project sites live beneath it asorbitope.com/<repo>/.
- Links — search
index.htmlforgithub.comand themailto:to update destinations. The YouTube, X, and Instagram buttons were removed while those accounts are empty; the.link-btnstyling still supports them, so adding one back is a matter of pasting the anchor into.links. - Tagline / description — the
.taglineand.descelements near the bottom of the<body>. - Projects — two
section.projectsblocks, Interactive Articles (things you read, that happen to run in the browser) and Applications & Games (things you play, download, or install). Each owns its own.project-grid; copy a.projectblock into whichever grid fits. The.entrieslist under a card is optional (RLevator has none). - Colors — the
:rootblock at the top of the<style>(Palette B: charcoal + amber + steel).
.project-grid owns the layout; .project makes no assumptions about its own
width. To go from a two-column grid to a single-column list, change one line:
grid-template-columns: repeat(auto-fill, minmax(min(360px, 100%), 1fr)); /* grid */
grid-template-columns: 1fr; /* list */Keep the min(360px, 100%) wrapper. A bare minmax(360px, 1fr) outweighs the
container on narrow screens and scrolls the page sideways on a phone.
Each project's article/site is served from its own repo via GitHub Pages, not
from here — see Orbitope/pushman (main:/docs) and Orbitope/RLevator
(main:/docs). This repo only holds the landing page that links to them.
GitHub Pages project paths are case-sensitive. The path segment must match
the repo name exactly: /RLevator/ resolves, /rlevator/ returns a 404 with no
redirect attempt. (Confusingly, repo URLs on github.com are
case-insensitive.) The rlevator/ directory here is a redirect stub that
catches the lowercase spelling; /RLevator/ stays canonical.
Every article lives in its own repo under this one domain, so nothing crawls from the landing page to all of them unaided and there is no generator here to emit a sitemap. Both files are hand-maintained:
sitemap.xml— one<url>block per published page. Paths are case-sensitive:/RLevator/is canonical and/rlevator/is only a redirect stub, so the stub is deliberately not listed.robots.txt— allow all, and points at the sitemap.
Adding an article means a <url> block here and an entry in
tools/og-card/articles.json.
Each article page carries an absolute og:image, og:url, rel=canonical,
twitter:card, and JSON-LD Article schema. Social scrapers reject relative
image URLs — that is not a style preference.
| File | Purpose |
|---|---|
index.html |
The landing page — the entire site. |
sitemap.xml |
Hand-maintained; every published page. |
robots.txt |
Allow-all, points at the sitemap. |
og.png |
The landing page's own social card. |
tools/og-card/ |
Generates every article's social card. |
rlevator/index.html |
Lowercase redirect to canonical /RLevator/. |
.nojekyll |
Tells GitHub Pages to serve files as-is. |