Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Modernize RssReaderApp: update Aspire + migrate front end to React

Open
#2 34 comments 0 reactions 0 assignees View on GitHub

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

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.Sdk and Aspire.Hosting.* are on 9.0.0-rc.1.24511.1 (release candidate).
  • Aspire.Azure.* client integrations are on 9.0.0-rc.1.24511.1.
  • Microsoft.Extensions.ServiceDiscovery is on 9.0.0-rc.1.24511.1.
  • Microsoft.EntityFrameworkCore.SqlServer / .Tools are on 9.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 AppHost still 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, .razor pages/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 Aspirgregator vs Aspiregregator namespace/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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bradygaster/RssReaderApp

All issues in bradygaster/RssReaderApp

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.