Skip to main content
This section is for the AIpkg build team. It assumes NuGetGallery as the starting point and documents every decision about how we build and migrate to AIpkg.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 AIpkg.slnx succeeds
1Core Registry API, push/download/registration, auth, AIpkg.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

AIpkg.slnx project layout and how it maps from NuGetGallery source.

03 · Data Layer

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

04 · Frontend Implementation

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

05 · Server Implementation

Auth, storage, search, background jobs, deletion lists, NuGet→AIpkg endpoint mapping.

06 · SDK Implementation

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

07 · Docs Portal Setup

DotNetDocs.com for AIpkg.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 ComponentAIpkg 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 AIpkg.slnx from scratch

Guiding Principles for Implementation

  1. New SLNX, not converted solutionAIpkg.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 codeAIpkg.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.