This is the source for phasenexa.github.io, the public website for Phase Nexa - developer tools for European energy trading professionals. The site is built with Retype and deployed to GitHub Pages.
# Install Retype
npm install retypeapp --global
# Local development (auto-reload)
retype start
# Production build
retype buildThe site deploys automatically via GitHub Actions to the retype branch, which GitHub Pages serves.
phasenexa.github.io/
├── .github/workflows/
│ ├── build.yml # Manual trigger: clone repos, update content, build, deploy
│ └── claude.yml # @claude interaction for issues/PRs
├── _includes/
│ └── head.html # Injects custom CSS into all pages
├── static/
│ ├── css/custom.css # Phase Nexa theme overrides
│ └── images/logo.png # Logo file
├── libraries/ # Per-library documentation pages
│ ├── index.md # Library overview
│ ├── nexa-marketdata.md
│ ├── nexa-bidkit.md
│ └── nexa-mfrr-nordic-eam.md
├── index.md # Landing page (hero, CTA)
├── getting-started.md # Quick start guide
├── premium.md # Premium tiers (coming soon)
├── community.md # Community page, logos, contributing
├── retype.yml # Retype project configuration
└── CLAUDE.md # This file
When the build.yml workflow runs with update_content: true, Claude Code is invoked to:
- Read each sibling repo cloned into
.repos/(nexa-marketdata, nexa-bidkit, nexa-mfrr-nordic-eam, etc.) - Analyse their README.md, CHANGELOG.md, pyproject.toml/go.mod, source code, and tests
- Update the corresponding
libraries/*.mdpages with current information - Update the landing page stats or messaging if anything material has changed
- Commit changes back to
mainbefore the Retype build runs
Each library page in libraries/ follows a consistent structure:
- YAML frontmatter with
label,icon,order, anddescription - Hero section with library name, one-line description, and install command
- "What it does" section with key features
- Quick start code example
- API reference highlights
- Link to full GitHub repo
When updating these pages, pull information from:
- The repo's
README.mdfor description and examples pyproject.tomlorgo.modfor version and dependenciesCHANGELOG.mdor git tags for latest versionsrc/or source directories for module/package structure- Test files for usage patterns
index.mdhero copy and CTA (marketing copy, change only if instructed)premium.mdpricing or tier detailscommunity.mdcompany logos or testimonialsretype.ymlconfigurationstatic/css/custom.cssstyling
- Professional but approachable. Not corporate, not overly casual.
- Write for developers and quants who are sceptical of marketing.
- Show code first, explain second. These people want to see
pip installbefore they want to read about "our vision". - British English spelling throughout (colour, analyse, optimise, licence).
- No em-dashes. Use standard punctuation.
- No sycophantic language. No "revolutionary", "cutting-edge", "game-changing".
- Keep it honest. If a feature is coming soon, say "coming soon", don't imply it exists.
The site uses Phase Nexa's design system. Key principles:
- Less, but better (Dieter Rams). Every element justifies its existence.
- Colour is functional. Green = positive/success. Red = negative/error. Violet = action. Cyan = active. Gold = value.
- Dark theme preferred. The Retype dark theme is configured with Phase Nexa colours.
| Name | Hex | Use |
|---|---|---|
| Deep Space | #0A1E36 |
Sidebar, recessed areas |
| Quantum Blue | #0E2A47 |
Page background |
| Nebula | #122F4D |
Cards, elevated surfaces |
| Pulse Violet | #8A6CFF |
Primary action, buttons, links |
| Cyber Cyan | #00E5FF |
Active state, info, highlights |
| Neon Gold | #FFD700 |
Value display, emphasis |
| Mint | #4DFFC3 |
Positive, success, buy |
| Electric Coral | #FF6B6B |
Negative, sell, decline |
| Neon Rose | #FF4D6A |
Error, destructive actions |
| Amber Flux | #FFAA33 |
Warning, caution |
Use Retype's built-in components where appropriate:
!!!callouts for warnings, tips, info===panels for grouped content+++tabs for language/platform alternatives[!badge]for version badges- Code blocks with language identifiers
These are the repos Claude should analyse when updating content:
| Repository | Language | Description |
|---|---|---|
| nexa-marketdata | Python | Unified API client for European power market data |
| nexa-bidkit | Python | Day-ahead and intraday auction bid generation |
| nexa-mfrr-nordic-eam | Python | mFRR energy activation market bids for Nordic TSOs |
More repositories will be added over time. The workflow dynamically discovers repos in the phasenexa GitHub organisation.
- build.yml: Manually triggered. Clones sibling repos, optionally runs Claude Code to update content, builds with Retype, deploys to
retypebranch for GitHub Pages. - claude.yml: Responds to
@claudementions in issues and PR comments. - GitHub Pages serves from the
retypebranch.
- Never introduce colours outside the Phase Nexa palette.
- All numerical data in examples should use realistic European energy market values (EUR/MWh, bidding zones like NO1, DE-LU, FR, etc.).
- Code examples must be correct and runnable. Do not fabricate API responses.
- Keep page count under 100 (Retype free tier limit, unless Community Key is configured).