Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
edc2570
Add design spec for RCommon documentation website
jasonmwebb-lv Mar 24, 2026
aeaf8b6
Fix spec review issues: map ApplicationServices, Stateless, and SMTP
jasonmwebb-lv Mar 24, 2026
82435d4
Add implementation plan for RCommon documentation website
jasonmwebb-lv Mar 24, 2026
734c4f7
chore: clone Hasura ddn-docs as website/ base
jasonmwebb-lv Mar 24, 2026
ec951a0
chore: convert website from Yarn to pnpm, strip Hasura deps
jasonmwebb-lv Mar 24, 2026
10fb2ae
chore: strip all Hasura content, components, and assets
jasonmwebb-lv Mar 24, 2026
b7e348b
feat: configure docusaurus.config.ts for RCommon
jasonmwebb-lv Mar 24, 2026
1db9b81
feat: configure RCommon sidebar navigation structure
jasonmwebb-lv Mar 24, 2026
1ec9a7e
feat: set up RCommon theme, branding, and CNAME
jasonmwebb-lv Mar 24, 2026
b3f7207
feat: adapt Hasura components for RCommon use
jasonmwebb-lv Mar 24, 2026
1fa7d92
fix: clean Hasura references from theme overrides
jasonmwebb-lv Mar 24, 2026
07a010b
feat: add NuGetInstall and ProviderComparison components
jasonmwebb-lv Mar 24, 2026
a8b8ab7
feat: build marketing landing page with hero, features, and code sect…
jasonmwebb-lv Mar 24, 2026
d041226
feat: create docs directory structure with stub pages for all documen…
jasonmwebb-lv Mar 24, 2026
a5efbf9
ci: add GitHub Actions workflow for website deployment to GitHub Pages
jasonmwebb-lv Mar 24, 2026
be000eb
feat: add local search plugin as Algolia fallback
jasonmwebb-lv Mar 24, 2026
117418e
fix: resolve build issues from initial integration
jasonmwebb-lv Mar 24, 2026
6ac7fa5
docs: write Getting Started section (5 pages)
jasonmwebb-lv Mar 24, 2026
c44073a
docs: write Core Concepts section (5 pages)
jasonmwebb-lv Mar 24, 2026
90bcd71
docs: write Domain-Driven Design section (5 pages)
jasonmwebb-lv Mar 24, 2026
9a2b6a2
docs: write CQRS & Mediator section (5 pages)
jasonmwebb-lv Mar 24, 2026
a3b5cfe
docs: write Event Handling section (7 pages)
jasonmwebb-lv Mar 24, 2026
124bada
docs: write Persistence section (8 pages)
jasonmwebb-lv Mar 24, 2026
6e55b02
docs: write Blob Storage section (3 pages)
jasonmwebb-lv Mar 24, 2026
f83059f
docs: write Multi-Tenancy section (2 pages)
jasonmwebb-lv Mar 24, 2026
16978c4
docs: write Security & Web section (2 pages)
jasonmwebb-lv Mar 24, 2026
ada5c61
docs: write Serialization section (3 pages)
jasonmwebb-lv Mar 24, 2026
a005e85
docs: write Validation section (1 page)
jasonmwebb-lv Mar 24, 2026
4df492c
docs: write Messaging section (5 pages)
jasonmwebb-lv Mar 24, 2026
ed30e30
docs: write State Machines section (2 pages)
jasonmwebb-lv Mar 24, 2026
febdb86
docs: write Caching section (3 pages)
jasonmwebb-lv Mar 24, 2026
65278b7
docs: write Email section (2 pages)
jasonmwebb-lv Mar 24, 2026
26ce563
docs: write Architecture Guides section (3 pages)
jasonmwebb-lv Mar 24, 2026
1c674e0
docs: write Examples & Recipes section (4 pages)
jasonmwebb-lv Mar 24, 2026
ce92760
docs: write Testing section (2 pages)
jasonmwebb-lv Mar 24, 2026
1ecbc5d
docs: write API Reference section (3 pages)
jasonmwebb-lv Mar 24, 2026
f1798b4
docs: snapshot version 1.0 of documentation
jasonmwebb-lv Mar 24, 2026
6ec14e7
feat: use rcommon-logo.png as site logo
jasonmwebb-lv Mar 24, 2026
4ab1689
fix: restore footer layout, remove test placeholder
jasonmwebb-lv Mar 24, 2026
1156048
feat: add sidebar icons, flatten nav, switch to Hasura-style footer w…
jasonmwebb-lv Mar 24, 2026
7590399
fix: distinguish navbar and sidebar colors, add navbar border
jasonmwebb-lv Mar 24, 2026
1ed320b
fix: match Hasura dark theme — same navbar/sidebar color, uppercase l…
jasonmwebb-lv Mar 24, 2026
febf3f0
feat: use separate logo variants for light/dark modes
jasonmwebb-lv Mar 24, 2026
1ee584c
fix: remove RCommon text from navbar, logo only
jasonmwebb-lv Mar 24, 2026
e138bf0
fix: center-align main content area
jasonmwebb-lv Mar 24, 2026
38e4b24
Created new RCommon website on Github pages
jasonmwebb-lv Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
58 changes: 58 additions & 0 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Deploy Website to GitHub Pages

on:
push:
branches: [main]
paths:
- 'website/**'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: website
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 9

- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
cache-dependency-path: website/pnpm-lock.yaml

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build website
run: pnpm build

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: website/build

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions .superpowers/brainstorm/134-1774322348/.server-stopped
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"reason":"idle timeout","timestamp":1774325170588}
143 changes: 143 additions & 0 deletions .superpowers/brainstorm/134-1774322348/content-organization.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<h2>RCommon Documentation Sidebar Structure</h2>
<p class="subtitle">Proposed navigation hierarchy for all 37+ packages — organized by domain, not by package name</p>

<div style="display: flex; gap: 24px; flex-wrap: wrap;">

<!-- Left column: Main docs nav -->
<div style="flex: 1; min-width: 320px;">
<div class="mockup">
<div class="mockup-header">Sidebar Navigation</div>
<div class="mockup-body" style="font-family: monospace; font-size: 13px; line-height: 2;">
<div><strong>Getting Started</strong></div>
<div style="padding-left: 16px;">Overview &amp; Philosophy</div>
<div style="padding-left: 16px;">Installation</div>
<div style="padding-left: 16px;">Quick Start Guide</div>
<div style="padding-left: 16px;">Configuration &amp; Bootstrapping</div>
<div style="padding-left: 16px;">Dependency Injection</div>
<br/>
<div><strong>Core Concepts</strong></div>
<div style="padding-left: 16px;">Fluent Configuration Builder</div>
<div style="padding-left: 16px;">Guards &amp; Validation</div>
<div style="padding-left: 16px;">GUID Generation</div>
<div style="padding-left: 16px;">System Time Abstraction</div>
<div style="padding-left: 16px;">Execution Results &amp; Models</div>
<br/>
<div><strong>Domain-Driven Design</strong></div>
<div style="padding-left: 16px;">Entities &amp; Aggregate Roots</div>
<div style="padding-left: 16px;">Domain Events</div>
<div style="padding-left: 16px;">Value Objects</div>
<div style="padding-left: 16px;">Auditing (Created, Updated)</div>
<div style="padding-left: 16px;">Soft Delete</div>
<br/>
<div><strong>Persistence</strong></div>
<div style="padding-left: 16px;">Repository Pattern</div>
<div style="padding-left: 16px;">Specifications</div>
<div style="padding-left: 16px;">Unit of Work</div>
<div style="padding-left: 16px; color: #888;">Providers:</div>
<div style="padding-left: 32px;">Entity Framework Core</div>
<div style="padding-left: 32px;">Dapper</div>
<div style="padding-left: 32px;">Linq2Db</div>
<div style="padding-left: 16px;">Persistence Caching</div>
<div style="padding-left: 32px;">Memory Cache</div>
<div style="padding-left: 32px;">Redis Cache</div>
<br/>
<div><strong>CQRS &amp; Mediator</strong></div>
<div style="padding-left: 16px;">Command &amp; Query Bus</div>
<div style="padding-left: 16px;">Commands &amp; Handlers</div>
<div style="padding-left: 16px;">Queries &amp; Handlers</div>
<div style="padding-left: 16px; color: #888;">Providers:</div>
<div style="padding-left: 32px;">MediatR</div>
<div style="padding-left: 32px;">Wolverine</div>
</div>
</div>
</div>

<!-- Right column: continued -->
<div style="flex: 1; min-width: 320px;">
<div class="mockup">
<div class="mockup-header">Sidebar Navigation (continued)</div>
<div class="mockup-body" style="font-family: monospace; font-size: 13px; line-height: 2;">
<div><strong>Event Handling</strong></div>
<div style="padding-left: 16px;">Event Bus Overview</div>
<div style="padding-left: 16px;">In-Memory Events</div>
<div style="padding-left: 16px;">Distributed Events</div>
<div style="padding-left: 16px;">Transactional Outbox</div>
<div style="padding-left: 16px; color: #888;">Providers:</div>
<div style="padding-left: 32px;">MediatR</div>
<div style="padding-left: 32px;">MassTransit</div>
<div style="padding-left: 32px;">Wolverine</div>
<br/>
<div><strong>Messaging</strong></div>
<div style="padding-left: 16px;">Message Bus Overview</div>
<div style="padding-left: 16px;">Transactional Outbox</div>
<div style="padding-left: 16px;">State Machines</div>
<div style="padding-left: 16px; color: #888;">Providers:</div>
<div style="padding-left: 32px;">MassTransit</div>
<div style="padding-left: 32px;">Wolverine</div>
<br/>
<div><strong>Caching</strong></div>
<div style="padding-left: 16px;">Caching Overview</div>
<div style="padding-left: 16px;">Memory Cache</div>
<div style="padding-left: 16px;">Redis Cache</div>
<br/>
<div><strong>Blob Storage</strong></div>
<div style="padding-left: 16px;">Blob Storage Overview</div>
<div style="padding-left: 16px;">Azure Blob Storage</div>
<div style="padding-left: 16px;">Amazon S3</div>
<br/>
<div><strong>Serialization</strong></div>
<div style="padding-left: 16px;">JSON Abstraction</div>
<div style="padding-left: 16px;">Newtonsoft.Json</div>
<div style="padding-left: 16px;">System.Text.Json</div>
<br/>
<div><strong>Validation</strong></div>
<div style="padding-left: 16px;">FluentValidation Integration</div>
<br/>
<div><strong>Email</strong></div>
<div style="padding-left: 16px;">Email Abstraction</div>
<div style="padding-left: 16px;">SMTP</div>
<div style="padding-left: 16px;">SendGrid</div>
<br/>
<div><strong>Multi-Tenancy</strong></div>
<div style="padding-left: 16px;">Multi-Tenancy Overview</div>
<div style="padding-left: 16px;">Finbuckle Integration</div>
<br/>
<div><strong>Security &amp; Web</strong></div>
<div style="padding-left: 16px;">Authorization</div>
<div style="padding-left: 16px;">Web Utilities</div>
<br/>
<div><strong>Architecture Guides</strong></div>
<div style="padding-left: 16px;">Clean Architecture</div>
<div style="padding-left: 16px;">Microservices</div>
<div style="padding-left: 16px;">Event-Driven Architecture</div>
<br/>
<div><strong>Examples &amp; Recipes</strong></div>
<div style="padding-left: 16px;">HR Leave Management (Clean + CQRS)</div>
<div style="padding-left: 16px;">Event Handling Examples</div>
<div style="padding-left: 16px;">Caching Examples</div>
<div style="padding-left: 16px;">Messaging Examples</div>
<br/>
<div><strong>Testing</strong></div>
<div style="padding-left: 16px;">Testing with RCommon</div>
<div style="padding-left: 16px;">Test Base Classes</div>
<br/>
<div><strong>API Reference</strong></div>
<div style="padding-left: 16px;">NuGet Packages</div>
<div style="padding-left: 16px;">Changelog</div>
<div style="padding-left: 16px;">Migration Guide</div>
</div>
</div>
</div>

</div>

<div style="margin-top: 24px; padding: 16px; background: rgba(255,255,255,0.05); border-radius: 8px;">
<h3 style="margin-top: 0;">Key Design Decisions</h3>
<ul style="line-height: 2;">
<li><strong>Domain-organized, not package-organized</strong> — users think in terms of "persistence" or "events", not "RCommon.EfCore"</li>
<li><strong>Abstraction → Provider pattern</strong> — each section explains the abstraction first, then shows provider-specific setup</li>
<li><strong>Progressive complexity</strong> — Getting Started → Core Concepts → Domain features → Architecture → Examples</li>
<li><strong>Recipes section</strong> — real-world patterns combining multiple features together</li>
<li><strong>Every page includes</strong>: concept overview, NuGet install, configuration, usage examples, provider comparison (where applicable)</li>
</ul>
</div>
Loading
Loading