diff --git a/README.md b/README.md
index d093746dcc39b63a454b53539156385ec96f92c7..c3502fa2b689e09d45bbbb3cc272ae6756905d55 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
 # websocket
 
-[![Go Reference](https://pkg.go.dev/badge/nhooyr.io/websocket.svg)](https://pkg.go.dev/nhooyr.io/websocket)
-[![Go Coverage](https://img.shields.io/badge/coverage-91%25-success)](https://nhooyr.io/websocket/coverage.html)
+[![Go Reference](https://pkg.go.dev/badge/github.com/coder/websocket.svg)](https://pkg.go.dev/github.com/coder/websocket)
+[![Go Coverage](https://img.shields.io/badge/coverage-91%25-success)](https://github.com/coder/websocket/coverage.html)
 
 websocket is a minimal and idiomatic WebSocket library for Go.
 
 ## Install
 
 ```sh
-go get nhooyr.io/websocket
+go get github.com/coder/websocket
 ```
 
 ## Highlights
@@ -16,16 +16,16 @@ go get nhooyr.io/websocket
 - Minimal and idiomatic API
 - First class [context.Context](https://blog.golang.org/context) support
 - Fully passes the WebSocket [autobahn-testsuite](https://github.com/crossbario/autobahn-testsuite)
-- [Zero dependencies](https://pkg.go.dev/nhooyr.io/websocket?tab=imports)
-- JSON helpers in the [wsjson](https://pkg.go.dev/nhooyr.io/websocket/wsjson) subpackage
+- [Zero dependencies](https://pkg.go.dev/github.com/coder/websocket?tab=imports)
+- JSON helpers in the [wsjson](https://pkg.go.dev/github.com/coder/websocket/wsjson) subpackage
 - Zero alloc reads and writes
 - Concurrent writes
-- [Close handshake](https://pkg.go.dev/nhooyr.io/websocket#Conn.Close)
-- [net.Conn](https://pkg.go.dev/nhooyr.io/websocket#NetConn) wrapper
-- [Ping pong](https://pkg.go.dev/nhooyr.io/websocket#Conn.Ping) API
+- [Close handshake](https://pkg.go.dev/github.com/coder/websocket#Conn.Close)
+- [net.Conn](https://pkg.go.dev/github.com/coder/websocket#NetConn) wrapper
+- [Ping pong](https://pkg.go.dev/github.com/coder/websocket#Conn.Ping) API
 - [RFC 7692](https://tools.ietf.org/html/rfc7692) permessage-deflate compression
-- [CloseRead](https://pkg.go.dev/nhooyr.io/websocket#Conn.CloseRead) helper for write only connections
-- Compile to [Wasm](https://pkg.go.dev/nhooyr.io/websocket#hdr-Wasm)
+- [CloseRead](https://pkg.go.dev/github.com/coder/websocket#Conn.CloseRead) helper for write only connections
+- Compile to [Wasm](https://pkg.go.dev/github.com/coder/websocket#hdr-Wasm)
 
 ## Roadmap
 
@@ -102,14 +102,14 @@ Advantages of [gorilla/websocket](https://github.com/gorilla/websocket):
 - Mature and widely used
 - [Prepared writes](https://pkg.go.dev/github.com/gorilla/websocket#PreparedMessage)
 - Configurable [buffer sizes](https://pkg.go.dev/github.com/gorilla/websocket#hdr-Buffers)
-- No extra goroutine per connection to support cancellation with context.Context. This costs nhooyr.io/websocket 2 KB of memory per connection.
+- No extra goroutine per connection to support cancellation with context.Context. This costs github.com/coder/websocket 2 KB of memory per connection.
   - Will be removed soon with [context.AfterFunc](https://github.com/golang/go/issues/57928). See [#411](https://github.com/nhooyr/websocket/issues/411)
 
-Advantages of nhooyr.io/websocket:
+Advantages of github.com/coder/websocket:
 
 - Minimal and idiomatic API
-  - Compare godoc of [nhooyr.io/websocket](https://pkg.go.dev/nhooyr.io/websocket) with [gorilla/websocket](https://pkg.go.dev/github.com/gorilla/websocket) side by side.
-- [net.Conn](https://pkg.go.dev/nhooyr.io/websocket#NetConn) wrapper
+  - Compare godoc of [github.com/coder/websocket](https://pkg.go.dev/github.com/coder/websocket) with [gorilla/websocket](https://pkg.go.dev/github.com/gorilla/websocket) side by side.
+- [net.Conn](https://pkg.go.dev/github.com/coder/websocket#NetConn) wrapper
 - Zero alloc reads and writes ([gorilla/websocket#535](https://github.com/gorilla/websocket/issues/535))
 - Full [context.Context](https://blog.golang.org/context) support
 - Dial uses [net/http.Client](https://golang.org/pkg/net/http/#Client)
@@ -117,24 +117,24 @@ Advantages of nhooyr.io/websocket:
   - Gorilla writes directly to a net.Conn and so duplicates features of net/http.Client.
 - Concurrent writes
 - Close handshake ([gorilla/websocket#448](https://github.com/gorilla/websocket/issues/448))
-- Idiomatic [ping pong](https://pkg.go.dev/nhooyr.io/websocket#Conn.Ping) API
+- Idiomatic [ping pong](https://pkg.go.dev/github.com/coder/websocket#Conn.Ping) API
   - Gorilla requires registering a pong callback before sending a Ping
 - Can target Wasm ([gorilla/websocket#432](https://github.com/gorilla/websocket/issues/432))
-- Transparent message buffer reuse with [wsjson](https://pkg.go.dev/nhooyr.io/websocket/wsjson) subpackage
+- Transparent message buffer reuse with [wsjson](https://pkg.go.dev/github.com/coder/websocket/wsjson) subpackage
 - [1.75x](https://github.com/nhooyr/websocket/releases/tag/v1.7.4) faster WebSocket masking implementation in pure Go
   - Gorilla's implementation is slower and uses [unsafe](https://golang.org/pkg/unsafe/).
     Soon we'll have assembly and be 3x faster [#326](https://github.com/nhooyr/websocket/pull/326)
 - Full [permessage-deflate](https://tools.ietf.org/html/rfc7692) compression extension support
   - Gorilla only supports no context takeover mode
-- [CloseRead](https://pkg.go.dev/nhooyr.io/websocket#Conn.CloseRead) helper for write only connections ([gorilla/websocket#492](https://github.com/gorilla/websocket/issues/492))
+- [CloseRead](https://pkg.go.dev/github.com/coder/websocket#Conn.CloseRead) helper for write only connections ([gorilla/websocket#492](https://github.com/gorilla/websocket/issues/492))
 
 #### golang.org/x/net/websocket
 
 [golang.org/x/net/websocket](https://pkg.go.dev/golang.org/x/net/websocket) is deprecated.
 See [golang/go/issues/18152](https://github.com/golang/go/issues/18152).
 
-The [net.Conn](https://pkg.go.dev/nhooyr.io/websocket#NetConn) can help in transitioning
-to nhooyr.io/websocket.
+The [net.Conn](https://pkg.go.dev/github.com/coder/websocket#NetConn) can help in transitioning
+to github.com/coder/websocket.
 
 #### gobwas/ws
 
@@ -143,7 +143,7 @@ in an event driven style for performance. See the author's [blog post](https://m
 
 However it is quite bloated. See https://pkg.go.dev/github.com/gobwas/ws
 
-When writing idiomatic Go, nhooyr.io/websocket will be faster and easier to use.
+When writing idiomatic Go, github.com/coder/websocket will be faster and easier to use.
 
 #### lesismal/nbio
 
@@ -152,4 +152,4 @@ event driven for performance reasons.
 
 However it is quite bloated. See https://pkg.go.dev/github.com/lesismal/nbio
 
-When writing idiomatic Go, nhooyr.io/websocket will be faster and easier to use.
+When writing idiomatic Go, github.com/coder/websocket will be faster and easier to use.
diff --git a/accept.go b/accept.go
index 285b31035c8027892afeab0170097694e553bca0..f672a730a939ed28c87106943b5136cb55ae484e 100644
--- a/accept.go
+++ b/accept.go
@@ -17,7 +17,7 @@ import (
 	"path/filepath"
 	"strings"
 
-	"nhooyr.io/websocket/internal/errd"
+	"github.com/coder/websocket/internal/errd"
 )
 
 // AcceptOptions represents Accept's options.
diff --git a/accept_test.go b/accept_test.go
index 18233b1e6e7d61e199eed5dbd1f72c73bfb1ab68..4f7991267e2162e9e880b2d820555eff9c872518 100644
--- a/accept_test.go
+++ b/accept_test.go
@@ -13,8 +13,8 @@ import (
 	"sync"
 	"testing"
 
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/test/xrand"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/xrand"
 )
 
 func TestAccept(t *testing.T) {
diff --git a/autobahn_test.go b/autobahn_test.go
index 57ceebd5d8f9f4962223f2ec1ded1816ad7fcce1..b1b3a7e9d7ad65f2f5441730680b079c807245f3 100644
--- a/autobahn_test.go
+++ b/autobahn_test.go
@@ -17,11 +17,11 @@ import (
 	"testing"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/errd"
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/test/wstest"
-	"nhooyr.io/websocket/internal/util"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/errd"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/wstest"
+	"github.com/coder/websocket/internal/util"
 )
 
 var excludedAutobahnCases = []string{
diff --git a/close.go b/close.go
index 31504b0e904f0f6169dd9a680f4c91a68189e566..ff2e878a93b5ce989c7566d95cca5eb9085602e3 100644
--- a/close.go
+++ b/close.go
@@ -11,7 +11,7 @@ import (
 	"net"
 	"time"
 
-	"nhooyr.io/websocket/internal/errd"
+	"github.com/coder/websocket/internal/errd"
 )
 
 // StatusCode represents a WebSocket status code.
diff --git a/close_test.go b/close_test.go
index 6bf3c256f941fb2a93044ca1b1490a14dba6570a..aec582c1507f74725f0acd3d980f35b829a31597 100644
--- a/close_test.go
+++ b/close_test.go
@@ -9,7 +9,7 @@ import (
 	"strings"
 	"testing"
 
-	"nhooyr.io/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/assert"
 )
 
 func TestCloseError(t *testing.T) {
diff --git a/compress_test.go b/compress_test.go
index 667e14082a940ddace16987eb54ffea60034f1f1..d97492cf8dc29356c49c0d4da890e234c19b6434 100644
--- a/compress_test.go
+++ b/compress_test.go
@@ -10,8 +10,8 @@ import (
 	"strings"
 	"testing"
 
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/test/xrand"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/xrand"
 )
 
 func Test_slidingWindow(t *testing.T) {
diff --git a/conn_test.go b/conn_test.go
index 2b44ad222ccf009f1e4cad7402380eafb5577bfa..be7c9983751d0fc3b84c2eef02d54ed2a5265788 100644
--- a/conn_test.go
+++ b/conn_test.go
@@ -16,13 +16,13 @@ import (
 	"testing"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/errd"
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/test/wstest"
-	"nhooyr.io/websocket/internal/test/xrand"
-	"nhooyr.io/websocket/internal/xsync"
-	"nhooyr.io/websocket/wsjson"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/errd"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/wstest"
+	"github.com/coder/websocket/internal/test/xrand"
+	"github.com/coder/websocket/internal/xsync"
+	"github.com/coder/websocket/wsjson"
 )
 
 func TestConn(t *testing.T) {
diff --git a/dial.go b/dial.go
index e4c4daa1134e5ceb4b54305be321ec04fecd5107..ad61a35d589d175d6c75ceaed3edbd3bb6947443 100644
--- a/dial.go
+++ b/dial.go
@@ -17,7 +17,7 @@ import (
 	"sync"
 	"time"
 
-	"nhooyr.io/websocket/internal/errd"
+	"github.com/coder/websocket/internal/errd"
 )
 
 // DialOptions represents Dial's options.
diff --git a/dial_test.go b/dial_test.go
index 237a2874fbee30b4d8cf72b0793cacb4cd201772..f94cd73b98d4c57a13f94a80591fd9d857ee248e 100644
--- a/dial_test.go
+++ b/dial_test.go
@@ -15,10 +15,10 @@ import (
 	"testing"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/util"
-	"nhooyr.io/websocket/internal/xsync"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/util"
+	"github.com/coder/websocket/internal/xsync"
 )
 
 func TestBadDials(t *testing.T) {
diff --git a/doc.go b/doc.go
index 2ab648a690e2f33a75faf8f7d77fbeec363a3e8a..03edf1292c675c9dc392c3a1080f729c5d64a8d1 100644
--- a/doc.go
+++ b/doc.go
@@ -15,7 +15,7 @@
 //
 // The wsjson subpackage contain helpers for JSON and protobuf messages.
 //
-// More documentation at https://nhooyr.io/websocket.
+// More documentation at https://github.com/coder/websocket.
 //
 // # Wasm
 //
@@ -31,4 +31,4 @@
 //   - Conn.CloseNow is Close(StatusGoingAway, "")
 //   - HTTPClient, HTTPHeader and CompressionMode in DialOptions are no-op
 //   - *http.Response from Dial is &http.Response{} with a 101 status code on success
-package websocket // import "nhooyr.io/websocket"
+package websocket // import "github.com/coder/websocket"
diff --git a/example_test.go b/example_test.go
index 590c0411d346a27c4690b9cc2dcfb363d8777230..4cc0cf11b88d887ea05ef6447269d2ee6210f8cd 100644
--- a/example_test.go
+++ b/example_test.go
@@ -6,8 +6,8 @@ import (
 	"net/http"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/wsjson"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/wsjson"
 )
 
 func ExampleAccept() {
diff --git a/export_test.go b/export_test.go
index a644d8f034605c67ecee14f1333c52f536c8415f..d34439912d5c0e3946a584def1780caa8788d378 100644
--- a/export_test.go
+++ b/export_test.go
@@ -6,7 +6,7 @@ package websocket
 import (
 	"net"
 
-	"nhooyr.io/websocket/internal/util"
+	"github.com/coder/websocket/internal/util"
 )
 
 func (c *Conn) RecordBytesWritten() *int {
diff --git a/frame.go b/frame.go
index d5631863c5f855a3ea471b4129207b7c4d539b39..e7ab76bedfd82584a77125acbb4b0726e4fddba0 100644
--- a/frame.go
+++ b/frame.go
@@ -9,7 +9,7 @@ import (
 	"io"
 	"math"
 
-	"nhooyr.io/websocket/internal/errd"
+	"github.com/coder/websocket/internal/errd"
 )
 
 // opcode represents a WebSocket opcode.
diff --git a/frame_test.go b/frame_test.go
index bd626358587b549d46021a70821bc4ff8c518c7d..08874cb52d8d3dfbb07471503740c5bdda95401e 100644
--- a/frame_test.go
+++ b/frame_test.go
@@ -13,7 +13,7 @@ import (
 	"testing"
 	"time"
 
-	"nhooyr.io/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/assert"
 )
 
 func TestHeader(t *testing.T) {
diff --git a/go.mod b/go.mod
index 715a9f7ab6b9c1787bddda86b46e24cfaa1ac6dc..336411a53fb4190faba1398d8a2ca554991145ad 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,3 @@
-module nhooyr.io/websocket
+module github.com/coder/websocket
 
 go 1.19
diff --git a/internal/examples/chat/README.md b/internal/examples/chat/README.md
index 574c6994885b480c8c9ce225a50e3a68674aa251..4d354586730ab97937495f3b1fb760b98e185a68 100644
--- a/internal/examples/chat/README.md
+++ b/internal/examples/chat/README.md
@@ -1,6 +1,6 @@
 # Chat Example
 
-This directory contains a full stack example of a simple chat webapp using nhooyr.io/websocket.
+This directory contains a full stack example of a simple chat webapp using github.com/coder/websocket.
 
 ```bash
 $ cd examples/chat
diff --git a/internal/examples/chat/chat.go b/internal/examples/chat/chat.go
index 8b1e30c19ef2412c60688a3fa368fad219d18117..3cb1e021ba2547291ecd376b3ee34c060d7d05c2 100644
--- a/internal/examples/chat/chat.go
+++ b/internal/examples/chat/chat.go
@@ -12,7 +12,7 @@ import (
 
 	"golang.org/x/time/rate"
 
-	"nhooyr.io/websocket"
+	"github.com/coder/websocket"
 )
 
 // chatServer enables broadcasting to a set of subscribers.
diff --git a/internal/examples/chat/chat_test.go b/internal/examples/chat/chat_test.go
index f80f1de1daba5ae31dfeea1f526a5d38135e671f..8eb7205137601535bb6d827bd8c392793c61b2b5 100644
--- a/internal/examples/chat/chat_test.go
+++ b/internal/examples/chat/chat_test.go
@@ -14,7 +14,7 @@ import (
 
 	"golang.org/x/time/rate"
 
-	"nhooyr.io/websocket"
+	"github.com/coder/websocket"
 )
 
 func Test_chatServer(t *testing.T) {
diff --git a/internal/examples/chat/index.html b/internal/examples/chat/index.html
index 64edd28691f635072522d16406c2856b7a11b5a4..7038342dc7329cc7ec58010783cbf300b5b666d1 100644
--- a/internal/examples/chat/index.html
+++ b/internal/examples/chat/index.html
@@ -2,7 +2,7 @@
 <html lang="en-CA">
   <head>
     <meta charset="UTF-8" />
-    <title>nhooyr.io/websocket - Chat Example</title>
+    <title>github.com/coder/websocket - Chat Example</title>
     <meta name="viewport" content="width=device-width" />
 
     <link href="https://unpkg.com/sanitize.css" rel="stylesheet" />
diff --git a/internal/examples/echo/README.md b/internal/examples/echo/README.md
index ac03f640b75e13a1725039751df1aa96c2193853..3abbbb57780210a118682f21f7fe00257d97fa71 100644
--- a/internal/examples/echo/README.md
+++ b/internal/examples/echo/README.md
@@ -1,6 +1,6 @@
 # Echo Example
 
-This directory contains a echo server example using nhooyr.io/websocket.
+This directory contains a echo server example using github.com/coder/websocket.
 
 ```bash
 $ cd examples/echo
diff --git a/internal/examples/echo/server.go b/internal/examples/echo/server.go
index 246ad582396995328484ca9cfd270a3fe42c57b9..a44d20b5773e863bf00a54d890f98e1b43b3b602 100644
--- a/internal/examples/echo/server.go
+++ b/internal/examples/echo/server.go
@@ -9,7 +9,7 @@ import (
 
 	"golang.org/x/time/rate"
 
-	"nhooyr.io/websocket"
+	"github.com/coder/websocket"
 )
 
 // echoServer is the WebSocket echo server implementation.
diff --git a/internal/examples/echo/server_test.go b/internal/examples/echo/server_test.go
index 9b608301140a63b07aa7ca03ec6def794d52ee80..81e8cfc25504926852bc104378a8621f5a2badf8 100644
--- a/internal/examples/echo/server_test.go
+++ b/internal/examples/echo/server_test.go
@@ -6,8 +6,8 @@ import (
 	"testing"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/wsjson"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/wsjson"
 )
 
 // Test_echoServer tests the echoServer by sending it 5 different messages
diff --git a/internal/examples/go.mod b/internal/examples/go.mod
index c98b81ce529ea3feb9d2e68cb95832500352cc99..4f7a8a70f47dbd3014b038a62607a71f4281a2e2 100644
--- a/internal/examples/go.mod
+++ b/internal/examples/go.mod
@@ -1,10 +1,10 @@
-module nhooyr.io/websocket/examples
+module github.com/coder/websocket/examples
 
 go 1.19
 
-replace nhooyr.io/websocket => ../..
+replace github.com/coder/websocket => ../..
 
 require (
+	github.com/coder/websocket v0.0.0-00010101000000-000000000000
 	golang.org/x/time v0.3.0
-	nhooyr.io/websocket v0.0.0-00010101000000-000000000000
 )
diff --git a/internal/test/wstest/echo.go b/internal/test/wstest/echo.go
index dc21a8f029dc189fac7a936fe85e93e5d7ae23f7..c0c8dcd76d5e7e9a617bbc06ac02358d1e0c8ab4 100644
--- a/internal/test/wstest/echo.go
+++ b/internal/test/wstest/echo.go
@@ -7,9 +7,9 @@ import (
 	"io"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/test/xrand"
-	"nhooyr.io/websocket/internal/xsync"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/test/xrand"
+	"github.com/coder/websocket/internal/xsync"
 )
 
 // EchoLoop echos every msg received from c until an error
diff --git a/internal/test/wstest/pipe.go b/internal/test/wstest/pipe.go
index 8e1deb47971a6ce2854e68664e1cf1e28b60d867..b8cf094d20d4ce9e642c5ab7315a6dbb47f9853d 100644
--- a/internal/test/wstest/pipe.go
+++ b/internal/test/wstest/pipe.go
@@ -10,7 +10,7 @@ import (
 	"net/http"
 	"net/http/httptest"
 
-	"nhooyr.io/websocket"
+	"github.com/coder/websocket"
 )
 
 // Pipe is used to create an in memory connection
diff --git a/internal/thirdparty/frame_test.go b/internal/thirdparty/frame_test.go
index 89042e53c57ae97c9ddb015faef24f8435f6f658..75b0529130a6abe22618da3e1e98be8962fc0e12 100644
--- a/internal/thirdparty/frame_test.go
+++ b/internal/thirdparty/frame_test.go
@@ -11,7 +11,7 @@ import (
 	_ "github.com/gorilla/websocket"
 	_ "github.com/lesismal/nbio/nbhttp/websocket"
 
-	_ "nhooyr.io/websocket"
+	_ "github.com/coder/websocket"
 )
 
 func basicMask(b []byte, maskKey [4]byte, pos int) int {
@@ -22,10 +22,10 @@ func basicMask(b []byte, maskKey [4]byte, pos int) int {
 	return pos & 3
 }
 
-//go:linkname maskGo nhooyr.io/websocket.maskGo
+//go:linkname maskGo github.com/coder/websocket.maskGo
 func maskGo(b []byte, key32 uint32) int
 
-//go:linkname maskAsm nhooyr.io/websocket.maskAsm
+//go:linkname maskAsm github.com/coder/websocket.maskAsm
 func maskAsm(b *byte, len int, key32 uint32) uint32
 
 //go:linkname nbioMaskBytes github.com/lesismal/nbio/nbhttp/websocket.maskXOR
diff --git a/internal/thirdparty/gin_test.go b/internal/thirdparty/gin_test.go
index 6d59578d3f2e65f0a7e39a2db252c038d050176e..bd30ebddc0f3955d4d4a2fad12d01ef9dcb6112f 100644
--- a/internal/thirdparty/gin_test.go
+++ b/internal/thirdparty/gin_test.go
@@ -10,11 +10,11 @@ import (
 
 	"github.com/gin-gonic/gin"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/errd"
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/test/wstest"
-	"nhooyr.io/websocket/wsjson"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/errd"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/wstest"
+	"github.com/coder/websocket/wsjson"
 )
 
 func TestGin(t *testing.T) {
diff --git a/internal/thirdparty/go.mod b/internal/thirdparty/go.mod
index d991dd64314ef9a609afbb667433b2f1d5217e83..d946ffae2e07d036046e2a6d87932d4a803eb622 100644
--- a/internal/thirdparty/go.mod
+++ b/internal/thirdparty/go.mod
@@ -1,15 +1,15 @@
-module nhooyr.io/websocket/internal/thirdparty
+module github.com/coder/websocket/internal/thirdparty
 
 go 1.19
 
-replace nhooyr.io/websocket => ../..
+replace github.com/coder/websocket => ../..
 
 require (
+	github.com/coder/websocket v0.0.0-00010101000000-000000000000
 	github.com/gin-gonic/gin v1.9.1
 	github.com/gobwas/ws v1.3.0
 	github.com/gorilla/websocket v1.5.0
 	github.com/lesismal/nbio v1.3.18
-	nhooyr.io/websocket v0.0.0-00010101000000-000000000000
 )
 
 require (
diff --git a/internal/xsync/go_test.go b/internal/xsync/go_test.go
index dabea8a5fa742c186ba49ad56efdb98e175debbd..a3f7053bd1552da30cfcc1fd93dc206cc7dea4ab 100644
--- a/internal/xsync/go_test.go
+++ b/internal/xsync/go_test.go
@@ -3,7 +3,7 @@ package xsync
 import (
 	"testing"
 
-	"nhooyr.io/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/assert"
 )
 
 func TestGoRecover(t *testing.T) {
diff --git a/mask_test.go b/mask_test.go
index 54f55e4367b1529e052f449ca044bbac5a7bde22..00a9f0a23c805ea41fd80a09f283a44894563558 100644
--- a/mask_test.go
+++ b/mask_test.go
@@ -8,7 +8,7 @@ import (
 	"math/bits"
 	"testing"
 
-	"nhooyr.io/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/assert"
 )
 
 func basicMask(b []byte, key uint32) uint32 {
diff --git a/read.go b/read.go
index a59e71d9b9fde0d341b9dde9d2307030f8a1684e..1b9404b8277a3c008b7bc66234ea359ed04e91e4 100644
--- a/read.go
+++ b/read.go
@@ -13,9 +13,9 @@ import (
 	"strings"
 	"time"
 
-	"nhooyr.io/websocket/internal/errd"
-	"nhooyr.io/websocket/internal/util"
-	"nhooyr.io/websocket/internal/xsync"
+	"github.com/coder/websocket/internal/errd"
+	"github.com/coder/websocket/internal/util"
+	"github.com/coder/websocket/internal/xsync"
 )
 
 // Reader reads from the connection until there is a WebSocket
diff --git a/write.go b/write.go
index d7222f2d2e39b05547e80337fcd0d619ae9a1816..e294a680e534703a21a6bddc063422f41c23ce46 100644
--- a/write.go
+++ b/write.go
@@ -16,8 +16,8 @@ import (
 
 	"compress/flate"
 
-	"nhooyr.io/websocket/internal/errd"
-	"nhooyr.io/websocket/internal/util"
+	"github.com/coder/websocket/internal/errd"
+	"github.com/coder/websocket/internal/util"
 )
 
 // Writer returns a writer bounded by the context that will write
diff --git a/ws_js.go b/ws_js.go
index 02d61f28c13e6ddacf36126227ad2a3d48209ed3..a8de0c63651f7ffec00e9e907a36e13402c41f26 100644
--- a/ws_js.go
+++ b/ws_js.go
@@ -1,4 +1,4 @@
-package websocket // import "nhooyr.io/websocket"
+package websocket // import "github.com/coder/websocket"
 
 import (
 	"bytes"
@@ -14,9 +14,9 @@ import (
 	"sync"
 	"syscall/js"
 
-	"nhooyr.io/websocket/internal/bpool"
-	"nhooyr.io/websocket/internal/wsjs"
-	"nhooyr.io/websocket/internal/xsync"
+	"github.com/coder/websocket/internal/bpool"
+	"github.com/coder/websocket/internal/wsjs"
+	"github.com/coder/websocket/internal/xsync"
 )
 
 // opcode represents a WebSocket opcode.
diff --git a/ws_js_test.go b/ws_js_test.go
index ba98b9a0af39889bc513bb0c910859d5879c44ae..b56ad16b5683d6a96d0df01bb20e9303c97b6824 100644
--- a/ws_js_test.go
+++ b/ws_js_test.go
@@ -7,9 +7,9 @@ import (
 	"testing"
 	"time"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/test/assert"
-	"nhooyr.io/websocket/internal/test/wstest"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/test/assert"
+	"github.com/coder/websocket/internal/test/wstest"
 )
 
 func TestWasm(t *testing.T) {
diff --git a/wsjson/wsjson.go b/wsjson/wsjson.go
index 7c986a0d6f72ab66fae8bb0fd58518b9d2572821..05e7cfa11c10fca673ae87ab17ad84d86c18a2db 100644
--- a/wsjson/wsjson.go
+++ b/wsjson/wsjson.go
@@ -1,15 +1,15 @@
 // Package wsjson provides helpers for reading and writing JSON messages.
-package wsjson // import "nhooyr.io/websocket/wsjson"
+package wsjson // import "github.com/coder/websocket/wsjson"
 
 import (
 	"context"
 	"encoding/json"
 	"fmt"
 
-	"nhooyr.io/websocket"
-	"nhooyr.io/websocket/internal/bpool"
-	"nhooyr.io/websocket/internal/errd"
-	"nhooyr.io/websocket/internal/util"
+	"github.com/coder/websocket"
+	"github.com/coder/websocket/internal/bpool"
+	"github.com/coder/websocket/internal/errd"
+	"github.com/coder/websocket/internal/util"
 )
 
 // Read reads a JSON message from c into v.
diff --git a/wsjson/wsjson_test.go b/wsjson/wsjson_test.go
index 080ab38dec9cafb81ad1c3d909b7d149461cc8a8..87a728549d27357b881edede7235d7a3e817fda3 100644
--- a/wsjson/wsjson_test.go
+++ b/wsjson/wsjson_test.go
@@ -6,7 +6,7 @@ import (
 	"strconv"
 	"testing"
 
-	"nhooyr.io/websocket/internal/test/xrand"
+	"github.com/coder/websocket/internal/test/xrand"
 )
 
 func BenchmarkJSON(b *testing.B) {