Skip to content

Epic: Migrate codebase from CoffeeScript to TypeScript #6

@jessefreeman

Description

@jessefreeman

Objective:
Eliminate CoffeeScript from the microstudio8 codebase and adopt modern TypeScript for improved type safety, maintainability, and developer experience.

Benefits:

  • Remove legacy CoffeeScript compilation layer
  • Strong typing catches errors earlier
  • Modern syntax (ES2018+) improves readability
  • Better IDE tooling (IntelliSense, refactoring)
  • Clear interfaces & contracts ease onboarding
  • Source maps & direct TS debugging

Scope Summary:

  • Backend: DB, session, server bootstrap, API, application subsystems (build, content, forum, relay, filestorage)
  • Frontend: Editor, project management, language parsers
  • Tooling: Introduce tsconfig, replace coffee build steps, integrate tests
  • Documentation & cleanup post migration

Task Checklist (subtasks):

Execution Guidelines:

  • Copy existing compiled .js to .ts then refactor incrementally
  • Introduce interfaces progressively; prefer correctness over premature optimization
  • Replace var with const/let, remove CoffeeScript binding IIFEs
  • Keep PRs scoped per subsystem to reduce review risk
  • Maintain passing startup smoke test after each phase

Acceptance Criteria for Epic Completion:

  • No .coffee files remain in repository
  • All server and client code compiles via TypeScript (tsc) without errors (strict mode)
  • Updated README & migration docs committed
  • Test suite covers critical paths (startup, DB ops, session, core API endpoints)
  • Documented before/after metrics (file counts, LOC, type coverage snapshot)

Risks & Mitigations:

  • Large refactor instability → phased approach with smoke tests per phase
  • Type gaps: start with loose types, tighten in later commits
  • Build complexity: adopt minimal tooling first, optimize later

Tracking:
This issue remains open until all checklist items are completed and closed.

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