Skip to main content
This section is for the AI•Pkg build team. It assumes NuGetGallery as the starting point and documents every decision about how we build and migrate to AI•Pkg.org. A third-party implementer building a compatible registry does not need this section — see the Specifications instead.

Phase Summary

PhaseGoalKey Deliverable
0Clean SLNX solution, SQL DB project, EasyAF scaffoldingdotnet build AI•Pkg.slnx succeeds
1Core Registry API, push/download/registration, auth, AI•Pkg.CorePackage round-trip works
2Search + catalog pipeline (Azure AI Search)Packages appear in search after push
3Blazor web UIFull browser experience
4aipkg CLI MVP (Native AOT)Single-binary install/push/search

Plan Documents

01 · Tech Stack

Technology choices for runtime, API framework, ORM, auth, storage, and search.

02 · Solution Structure

AI•Pkg.slnx project layout and how it maps from NuGetGallery source.

03 · Data Layer

EasyAF setup, SQL Server DB Project schema, entity generation workflow.

04 · Backend

Auth, storage, search, background jobs, deletion lists, NuGet→AI•Pkg endpoint mapping.

05 · Frontend

Blazor component tree, Tailwind/Lucide styling, what NOT to include.

06 · SDK

Native AOT publish flags, RID matrix, distribution channels, TypeScript SDK strategy.

07 · Docs Portal Setup

DotNetDocs.com for AI•Pkg.Core, Mintlify developer portal, OpenAPI CI/CD.

08 · Migration

Four migration phases: source file mapping, deletion lists, verification checklists.

Quick Reference: What Stays vs. What Goes

NuGetGallery ComponentAI•Pkg Fate
V3 API logic (push, download, registration, search)Keep & adapt — new schemas, new field names
V2/OData APIDelete
OWIN / Autofac / Razor viewsDelete
Symbol package supportDelete — not applicable
Azure Blob storage abstractionKeep & adapt — rename .nupkg.aipkg
Azure AI Search integrationKeep & adapt — new document model
CDN stats parsing jobsKeep & adapt.aipkg download events
GitHub OAuth + PBKDF2 API keysKeep & port — no structural changes
NuGetGallery.sln (139 projects)Do not convert — new AI•Pkg.slnx from scratch

Guiding Principles for Implementation

  1. New SLNX, not converted solutionAI•Pkg.slnx is created from scratch; NuGetGallery projects are ported, not referenced.
  2. EasyAF owns the data layer.sqlproj is schema source of truth; no hand-written EF migrations.
  3. Blazor SSR only — no Razor views, no jQuery, no OWIN. Static SSR for public pages, Interactive Server for authenticated flows.
  4. AOT-safe codeAI•Pkg.Core must be AOT compatible; no reflection emit or dynamic code.
  5. Port, don’t preserve — NuGetGallery source is a reference, not a constraint. Strip aggressively.