Skip to content

feat: migrate client to TypeScript and Next.js examples - #10

Merged
arjayby merged 1 commit into
mainfrom
feat/typescript-next-examples
Sep 12, 2026
Merged

arjayby merged 1 commit into
mainfrom
feat/typescript-next-examples

Conversation

@arjayby

@arjayby arjayby commented Sep 12, 2026

Copy link
Copy Markdown
Owner

The browser examples and SDK used JavaScript and a Vite application. This change converts their sources, tests, and Node tooling to TypeScript, and rebuilds all eight examples with Next.js App Router, React, shadcn/ui, and Tailwind CSS. Elixir/Phoenix continues to handle accounts, permissions, persistence, and WebSockets.

The React application manages accounts, rooms, presence, and connection cleanup. Existing collaborative editor and canvas bindings mount inside React hosts, preserving shared undo, offline edits, permissions, and live cursors. Existing .html example URLs remain supported.

The SDK ships compiled ESM with generated declarations. Next.js exports static pages into the Phoenix release, so production requires no Node server. CI, Docker packaging, development proxying, and documentation are updated accordingly.

Validation completed locally:

  • TypeScript checks for the SDK, examples, tests, and tools.
  • 59 Playwright browser tests, 58 Elixir tests, 8 SDK tests, 14 model tests, and 7 standalone operations tests.
  • Packed SDK imports, shared Yjs identity, NodeNext/bundler type resolution, and a Vite consumer build.
  • Next.js production build and ARM64 Docker release build.
  • HTTPS staging rehearsal covering all eight exported examples, collaboration, permissions, offline reconnect, release replacement, database outage recovery, and backup restoration.
  • Isolated TypeScript load run with 4 clients across 2 rooms, including a 1.1 MB transfer, reconnect, persisted replay, and connection cleanup.

@arjayby
arjayby merged commit f4a11c3 into main Sep 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant