Skip to content

Umbrella: migrate the application from Deno to Node.js #343

Description

@dahlia

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions