Skip to content

Add SoftwareApplication (+ SoftwareSourceCode) JSON-LD to the homepage #1417

Description

@IEvangelist

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:

  1. 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).
  2. 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).
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions