Summary
Aspire is a developer tool, but the homepage JSON-LD only emits Organization + WebSite. SoftwareApplication / SoftwareSourceCode are high-leverage schema types for developer products (consumed by Google and AI engines) and are currently absent from the homepage.
Evidence / current state
- Live
https://aspire.dev/ emits exactly two JSON-LD blocks: Organization and WebSite.
src/frontend/src/utils/structured-data.ts already has a buildSoftwareApplication() helper (applicationCategory: 'DeveloperApplication', operatingSystem) — but it's only wired into the FAQ, aspireconf, TechArticle, and release-notes schemas via buildStructuredData(), not into buildHomePageSchema() (lines ~81–107).
SoftwareSourceCode, offers, and codeRepository do not appear anywhere in the codebase.
Where the change goes
src/frontend/src/utils/structured-data.ts:
- Extend
buildHomePageSchema() (lines ~81–107) to add a SoftwareApplication node (and optionally SoftwareSourceCode) into the @graph, wired to the org via @id (e.g. publisher/author/about → ${siteUrl}/#org, which is already defined as organizationId).
- Enrich
buildSoftwareApplication() (lines ~310–320) with:
offers → { '@type': 'Offer', price: '0', priceCurrency: 'USD' } plus isAccessibleForFree: true (free / OSS).
sameAs and/or codeRepository → the GitHub repos already listed in sameAsLinks (https://github.com/microsoft/aspire, https://github.com/dotnet/aspire).
- Update
tests/unit/structured-data.vitest.test.ts — the home page describe block (lines ~67–99) currently asserts only Organization + WebSite; add assertions for the new SoftwareApplication (and SoftwareSourceCode) node and its @id wiring to #org.
Done when
- The homepage passes Schema.org / Google Rich Results validation with no errors.
- The homepage
@graph includes a SoftwareApplication node (and, if added, SoftwareSourceCode) referencing #org, with offers and codeRepository/sameAs populated.
Source: SEO audit of https://aspire.dev/ (2026-07-29). Priority: Medium.
Summary
Aspire is a developer tool, but the homepage JSON-LD only emits
Organization+WebSite.SoftwareApplication/SoftwareSourceCodeare high-leverage schema types for developer products (consumed by Google and AI engines) and are currently absent from the homepage.Evidence / current state
https://aspire.dev/emits exactly two JSON-LD blocks:OrganizationandWebSite.src/frontend/src/utils/structured-data.tsalready has abuildSoftwareApplication()helper (applicationCategory: 'DeveloperApplication',operatingSystem) — but it's only wired into the FAQ, aspireconf,TechArticle, and release-notes schemas viabuildStructuredData(), not intobuildHomePageSchema()(lines ~81–107).SoftwareSourceCode,offers, andcodeRepositorydo not appear anywhere in the codebase.Where the change goes
src/frontend/src/utils/structured-data.ts:buildHomePageSchema()(lines ~81–107) to add aSoftwareApplicationnode (and optionallySoftwareSourceCode) into the@graph, wired to the org via@id(e.g.publisher/author/about→${siteUrl}/#org, which is already defined asorganizationId).buildSoftwareApplication()(lines ~310–320) with:offers→{ '@type': 'Offer', price: '0', priceCurrency: 'USD' }plusisAccessibleForFree: true(free / OSS).sameAsand/orcodeRepository→ the GitHub repos already listed insameAsLinks(https://github.com/microsoft/aspire,https://github.com/dotnet/aspire).tests/unit/structured-data.vitest.test.ts— thehome pagedescribe block (lines ~67–99) currently asserts onlyOrganization+WebSite; add assertions for the newSoftwareApplication(andSoftwareSourceCode) node and its@idwiring to#org.Done when
@graphincludes aSoftwareApplicationnode (and, if added,SoftwareSourceCode) referencing#org, withoffersandcodeRepository/sameAspopulated.Source: SEO audit of
https://aspire.dev/(2026-07-29). Priority: Medium.