Goal
Run Hackers' Pub on Node.js as its single server-side JavaScript runtime. This includes retiring the legacy Fresh application, moving the standalone GraphQL API and federation worker to Node.js, consolidating the workspace and toolchain under pnpm, and removing Deno from development, CI, containers, and production.
The migration should preserve behavior and production safety. It is not a line-by-line replacement of Deno APIs: runtime-neutral application boundaries must exist before the adapters and entry points change.
Scope
- Inventory and retire the legacy
web/ Fresh application.
- Make
web-next use the standalone GraphQL service in every environment.
- Consolidate package metadata and dependency versions under pnpm.
- Run validation and tests under Node.js.
- Port the GraphQL HTTP service, federation worker, observability, and operational scripts.
- Switch CI, containers, deployment, and health checks to Node.js.
- Remove Deno configuration, lockfiles, dependencies, and documentation.
Completion criteria
- Every sub-issue is complete.
web/ and all Fresh-only code and dependencies are removed.
- The GraphQL API, federation endpoints, queue worker, scheduled jobs,
web-next, migrations, and operational scripts run on the pinned Node.js version.
- CI and production images no longer install or invoke Deno.
- No Deno configuration or lockfile remains.
- Production cutover and rollback procedures have been exercised.
Dependency
Blocked by #336. The package boundaries and application composition model tracked there must be stable before runtime-specific entry points are replaced.
AI assistance: This issue was drafted and organized with Codex after a maintainer-led audit of the current codebase.
Goal
Run Hackers' Pub on Node.js as its single server-side JavaScript runtime. This includes retiring the legacy Fresh application, moving the standalone GraphQL API and federation worker to Node.js, consolidating the workspace and toolchain under pnpm, and removing Deno from development, CI, containers, and production.
The migration should preserve behavior and production safety. It is not a line-by-line replacement of
DenoAPIs: runtime-neutral application boundaries must exist before the adapters and entry points change.Scope
web/Fresh application.web-nextuse the standalone GraphQL service in every environment.Completion criteria
web/and all Fresh-only code and dependencies are removed.web-next, migrations, and operational scripts run on the pinned Node.js version.Dependency
Blocked by #336. The package boundaries and application composition model tracked there must be stable before runtime-specific entry points are replaced.