Modernize RssReaderApp: update Aspire + migrate front end to React
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- csharp, react, typescript
- Domain
- backend, distributed-systems, frontend, full-stack
Research direction
Start with the AppHost and Frontend projects, the Frontend/Components Razor pages, and the named view models; run the existing solution and distributed AppHost to establish a baseline. Trace the current feed, entry, and Orleans interactions before planning the React API boundary. Done means stable Aspire dependencies, a React SPA orchestrated through Aspire, and preserved browse, entry-viewing, and add-feed functionality.
Written by the indexing model from the issue text.
Description
Goal
Modernize the RssReaderApp codebase. Two main workstreams: (1) bring the .NET Aspire stack up to date, and (2) modernize the front end, including moving it off Blazor to a React SPA.
1. Update .NET Aspire (and related dependencies)
Today the app pins pre-release / release-candidate Aspire packages:
Aspire.AppHost.SdkandAspire.Hosting.*are on9.0.0-rc.1.24511.1(release candidate).Aspire.Azure.*client integrations are on9.0.0-rc.1.24511.1.Microsoft.Extensions.ServiceDiscoveryis on9.0.0-rc.1.24511.1.Microsoft.EntityFrameworkCore.SqlServer/.Toolsare on9.0.0-rtm.24511.3.
Tasks:
- Upgrade the Aspire AppHost SDK and all
Aspire.Hosting.*/Aspire.Azure.*packages to the latest stable Aspire release. - Move EF Core and
Microsoft.Extensions.*packages to matching stable versions. - Review Orleans packages (currently
8.2.0) and update to a compatible current version. - Reconcile any target-framework / SDK changes the new Aspire version requires.
- Verify
AppHoststill builds and the distributed app runs (storage, Orleans, feedupdater, frontend).
2. Front-end modernization: migrate to React
The Frontend project is currently a Blazor app (FluentUI components, MVVM-style ViewModels/Services). Modernize it to a React single-page app.
Tasks:
- Replace the Blazor UI (
Frontend/Components,.razorpages/layouts) with a React app (e.g., Vite + TypeScript). - Expose the feed/entry data currently rendered server-side (Home, Entries, AddNewFeed, NavMenu) via a minimal API / JSON endpoints that React can consume.
- Port the existing view models (
EntriesPageViewModel,HomePageViewModel,AddNewFeedFormViewModel,NavMenuViewModel,EntryItemViewModel) to React components/state. - Wire the React front end into Aspire (AppHost) with the appropriate resource + external HTTP endpoints, preserving OpenTelemetry/service-discovery integration.
- Keep the Orleans grain interaction working (feed sources, entries) through the new API layer.
Additional modernization ideas (optional)
- Consolidate package versions via
Directory.Packages.props(central package management). - Add basic unit/integration tests around grains and the feed-update worker.
- Fix the
AspirgregatorvsAspiregregatornamespace/assembly-name inconsistency across projects.
Acceptance criteria
- Aspire and related dependencies are on current stable versions and the solution builds.
- The front end is a React SPA served/orchestrated through Aspire, replacing the Blazor UI.
- Existing functionality (browse feeds, view entries, add a new feed) is preserved.
- Dominant language
- C#
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bradygaster/RssReaderApp
-
Introduce Directory.Packages.props for centralized package version managementPossibly taken @copilot-swe-agent claimed this 57 days ago. Opensquad
bradygaster/RssReaderApp#9 · 1 reaction · 1 assignee ·
-
Reconcile EF Core / Microsoft.Extensions.* package versions after Aspire+Orleans upgradePossibly taken @copilot-swe-agent claimed this 57 days ago. Opensquad
bradygaster/RssReaderApp#8 · 1 reaction · 1 assignee ·
-
Upgrade Orleans packages to version compatible with new Aspire releasePossibly taken @copilot-swe-agent claimed this 57 days ago. Opensquad
bradygaster/RssReaderApp#7 · 1 reaction · 1 assignee ·
-
Upgrade Aspire AppHost SDK and Aspire.Hosting.* / Aspire.Azure.* packages to latest stablePossibly taken @copilot-swe-agent claimed this 57 days ago. Opensquad
bradygaster/RssReaderApp#6 · 1 reaction · 1 assignee ·
-
squad
Difficulty 4/5 3-5 days Newbie friendliness 38/100
All issues in bradygaster/RssReaderApp
Similar issues
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
area-integrations
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
:watch: Not Triaged dotnet-framework/svc install-deployment/subsvc
Difficulty 1/5 Under an hour Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
[Tool] DirectBenchOpenhas-image has-readme needs-attention new-tool repo-verified
Difficulty 1/5 1-3 hours Newbie friendliness 62/100
shanselman/TinyToolTown#844 · 2 comments ·
Maintainers usually reply within 3 days
-
:watch: Not Triaged Pri3
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day