Blazor WebAssembly site for Directive Athena. Built as a writing-first, sci-fi themed experience.
Directive Athena is a standalone website, not a library. This repo focuses on content, presentation, and a custom writing workflow with localization.
- Space/sci-fi visual direction with animated backgrounds
- Multi-page layout (Home, Archive, Story, Contact)
- Writing-first archive with tags and localized metadata
- Writings Manager for local authoring
- Responsive layout with mobile-friendly navigation
- GitHub Pages deployment workflow
cd src/DirectiveAthenaWebdotnet watch run- Open
http://localhost:5000(or the port in the output)
Use the Writings Manager locally:
- Run the site locally:
dotnet watch run - Open
http://localhost:5000/notes-manager - Create/edit posts, tags, and translations
Where content lives:
- Writing index and localized markdown files live in the site content directory
- Tag and UI strings live in the localization resources
Note: direct file writes use the browser File System Access API and are only available on localhost. In production,
the manager offers download/copy workflows.
The public site reads content from a public R2 bucket. The wwwroot/appsettings.json file is generated during the
GitHub Pages workflow and is not committed.
Public config shape:
{
"ContentStorage": {
"R2": {
"PublicBaseUrl": "https://content.example.com/",
"EnableWrites": false
}
}
}Manager-only config (local file, not committed):
{
"ContentStorage": {
"R2": {
"PublicBaseUrl": "https://content.example.com/",
"BucketName": "directiveathena-website-content",
"AccountId": "YOUR_ACCOUNT_ID",
"AccessKeyId": "YOUR_R2_ACCESS_KEY_ID",
"SecretAccessKey": "YOUR_R2_SECRET_ACCESS_KEY",
"EnableWrites": true
}
}
}- UI strings and tag labels are stored in
.resxfiles undersrc/DirectiveAthenaWeb/Resources. - Localized markdown files are resolved by culture code:
content/notes/{culture}/{file}. - User language selection is stored in
localStorageand applied at startup.
Adding a new culture:
- Add the culture to the supported localization list in the code
- Run locally and open
/notes-manager - The manager can generate missing localization files and stubs for new cultures
Deployment runs through the GitHub Pages workflow with SPA-friendly routing.
- Framework: Blazor WebAssembly (.NET 10)
- UI: MudBlazor
- Markdown: InfiniLore.InfiniBlazor (custom built by Anna Sas)
- Icons: Material Icons and custom brands
- Keep changes focused and small per PR.
- Prefer editing content via the Writings Manager when possible.
- Add or update tests for new behavior.