diff --git a/.changeset/refresh-package-readmes.md b/.changeset/refresh-package-readmes.md
new file mode 100644
index 00000000..2fd97f85
--- /dev/null
+++ b/.changeset/refresh-package-readmes.md
@@ -0,0 +1,11 @@
+---
+'@cipherstash/stack': patch
+'stash': patch
+'@cipherstash/protect': patch
+'@cipherstash/schema': patch
+'@cipherstash/drizzle': patch
+'@cipherstash/nextjs': patch
+'@cipherstash/protect-dynamodb': patch
+---
+
+Documentation: refresh package READMEs after the protectjs → stack repository rename. Fixed repository and license links, replaced dead in-repo docs links with cipherstash.com/docs URLs, rewrote the incorrect @cipherstash/nextjs README, and added guidance pointing new projects to @cipherstash/stack.
diff --git a/packages/cli/README.md b/packages/cli/README.md
index 8e61e42c..1e8e9b45 100644
--- a/packages/cli/README.md
+++ b/packages/cli/README.md
@@ -1,7 +1,7 @@
# stash
[](https://www.npmjs.com/package/stash)
-[](https://github.com/cipherstash/protectjs/blob/main/LICENSE.md)
+[](https://github.com/cipherstash/stack/blob/main/LICENSE.md)
The single CLI for CipherStash. It handles authentication, project initialization, EQL database lifecycle (install, upgrade, validate, push, migrate), schema building, and encrypted secrets management. Install it as a devDependency alongside the runtime SDK `@cipherstash/stack`.
diff --git a/packages/drizzle/README.md b/packages/drizzle/README.md
index 5957a726..3bc1d527 100644
--- a/packages/drizzle/README.md
+++ b/packages/drizzle/README.md
@@ -1,8 +1,11 @@
-# Protect.js Drizzle ORM Integration
+# CipherStash Drizzle ORM Integration
**Type-safe encryption for Drizzle ORM with searchable queries**
-Seamlessly integrate Protect.js with Drizzle ORM and PostgreSQL to encrypt your data while maintaining full query capabilities—equality, range queries, text search, and sorting—all with complete TypeScript type safety.
+Seamlessly integrate CipherStash encryption with Drizzle ORM and PostgreSQL to encrypt your data while maintaining full query capabilities—equality, range queries, text search, and sorting—all with complete TypeScript type safety.
+
+> [!TIP]
+> For new projects we recommend [`@cipherstash/stack`](https://www.npmjs.com/package/@cipherstash/stack), which provides this integration as `encryptedType`, `extractEncryptionSchema`, and `createEncryptionOperators` from `@cipherstash/stack/drizzle`. See the [Drizzle docs](https://cipherstash.com/docs/stack/cipherstash/encryption/drizzle). This package documents the legacy `@cipherstash/protect`-based API.
## Features
diff --git a/packages/nextjs/README.md b/packages/nextjs/README.md
index 4a26fb46..04ff4c60 100644
--- a/packages/nextjs/README.md
+++ b/packages/nextjs/README.md
@@ -1,4 +1,12 @@
-# @cipherstash/protect
+# @cipherstash/nextjs
-This is the main package for the CipherStash Protect JavaScript Package.
-Please refer to the [main README](https://github.com/cipherstash/protectjs) for more information.
\ No newline at end of file
+Next.js helpers for CipherStash encryption, including Clerk integration via the `@cipherstash/nextjs/clerk` export.
+
+This package is part of the [CipherStash Stack](https://github.com/cipherstash/stack). For most applications we recommend the main [`@cipherstash/stack`](https://www.npmjs.com/package/@cipherstash/stack) package.
+
+- [Documentation](https://cipherstash.com/docs)
+- [Identity-aware encryption](https://cipherstash.com/docs/stack/cipherstash/encryption/identity)
+
+> [!IMPORTANT]
+> The default `@cipherstash/stack` entry relies on a native Node.js module and must be excluded from bundling — see the [bundling guide](https://cipherstash.com/docs/stack/deploy/bundling) for the required `serverExternalPackages` configuration in Next.js.
+> Alternatively, `@cipherstash/stack/wasm-inline` is designed to be bundled (no native module) and works in edge/serverless runtimes.
diff --git a/packages/protect-dynamodb/README.md b/packages/protect-dynamodb/README.md
index e52ffe66..1489f336 100644
--- a/packages/protect-dynamodb/README.md
+++ b/packages/protect-dynamodb/README.md
@@ -1,10 +1,13 @@
-# Protect.js DynamoDB Helpers
+# CipherStash DynamoDB Helpers
-Helpers for using CipherStash [Protect.js](https://github.com/cipherstash/protectjs) with DynamoDB.
+Helpers for using [CipherStash encryption](https://github.com/cipherstash/stack) with DynamoDB.
+
+> [!TIP]
+> For new projects we recommend [`@cipherstash/stack`](https://www.npmjs.com/package/@cipherstash/stack), which provides this functionality as `encryptedDynamoDB` from `@cipherstash/stack/dynamodb`. See the [DynamoDB docs](https://cipherstash.com/docs/stack/cipherstash/encryption/dynamodb). This package documents the legacy `@cipherstash/protect` API.
[](https://cipherstash.com)
[](https://www.npmjs.com/package/@cipherstash/protect-dynamodb)
-[](https://github.com/cipherstash/protectjs/blob/main/LICENSE.md)
+[](https://github.com/cipherstash/stack/blob/main/LICENSE.md)
## Installation
diff --git a/packages/protect/README.md b/packages/protect/README.md
index ec3bd463..06e45b53 100644
--- a/packages/protect/README.md
+++ b/packages/protect/README.md
@@ -25,19 +25,19 @@
src="https://img.shields.io/npm/dm/@cipherstash/protect.svg?style=for-the-badge&labelColor=000000"
/>
-
+
-
+
-
+
+> [!TIP]
+> `@cipherstash/protect` is the core encryption library that powers [`@cipherstash/stack`](https://www.npmjs.com/package/@cipherstash/stack). For new projects we recommend `@cipherstash/stack`, which re-exports this functionality alongside integrations for Drizzle, Supabase, DynamoDB, secrets, and identity-aware encryption. See the [CipherStash docs](https://cipherstash.com/docs) for the current API.
+
Protect.js lets you encrypt every value with its own key—without sacrificing performance or usability. Encryption happens in your app; ciphertext is stored in your database.
Per‑value unique keys are powered by CipherStash [ZeroKMS](https://cipherstash.com/products/zerokms) bulk key operations, backed by a root key in [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).
@@ -58,7 +61,7 @@ Encrypted data is structured as an [EQL](https://github.com/cipherstash/encrypt-
> [!IMPORTANT]
> Searching, sorting, and filtering on encrypted data is currently only supported when storing encrypted data in PostgreSQL.
-> Read more about [searching encrypted data](./docs/concepts/searchable-encryption.md).
+> Read more about [searching encrypted data](https://cipherstash.com/docs/stack/cipherstash/encryption/searchable-encryption).
Looking for DynamoDB support? Check out the [Protect.js for DynamoDB helper library](https://www.npmjs.com/package/@cipherstash/protect-dynamodb).
@@ -100,7 +103,7 @@ const decrypted = await client.decrypt(encrypted.data);
## Architecture (high level)
-
+
## Table of contents
@@ -120,7 +123,7 @@ const decrypted = await client.decrypt(encrypted.data);
- [Contributing](#contributing)
- [License](#license)
-For more specific documentation, refer to the [docs](https://github.com/cipherstash/protectjs/tree/main/docs).
+For more specific documentation, refer to the [docs](https://cipherstash.com/docs).
## Features
@@ -173,7 +176,7 @@ Read more about [building and bundling with Protect.js](#builds-and-bundling).
## Getting started
- 🆕 **Existing app?** Skip to [the next step](#configuration).
-- 🌱 **Clean slate?** Check out the [getting started tutorial](./docs/getting-started.md).
+- 🌱 **Clean slate?** Check out the [getting started tutorial](https://cipherstash.com/docs/stack/quickstart).
### Configuration
@@ -249,7 +252,7 @@ export const documents = csTable("documents", {
});
```
-Read more about [defining your schema](./docs/reference/schema.md).
+Read more about [defining your schema](https://cipherstash.com/docs/stack/cipherstash/encryption/schema).
### Initialize the Protect client
@@ -850,15 +853,15 @@ CREATE TABLE users (
> [!WARNING]
> The `eql_v2_encrypted` type is a [composite type](https://www.postgresql.org/docs/current/rowtypes.html) and each ORM/client has a different way of handling inserts and selects.
-> We've documented how to handle inserts and selects for the different ORMs/clients in the [docs](./docs/reference/working-with-composite-types.md).
+> We've documented how to handle inserts and selects for the different ORMs/clients in the [docs](https://cipherstash.com/docs).
-Read more about [how to search encrypted data](./docs/reference/searchable-encryption-postgres.md) in the docs.
+Read more about [how to search encrypted data](https://cipherstash.com/docs/stack/cipherstash/encryption/searchable-encryption) in the docs.
## Identity-aware encryption
> [!IMPORTANT]
> Right now identity-aware encryption is only supported if you are using [Clerk](https://clerk.com/) as your identity provider.
-> Read more about [lock contexts with Clerk and Next.js](./docs/how-to/lock-contexts-with-clerk.md).
+> Read more about [lock contexts with Clerk and Next.js](https://cipherstash.com/docs/stack/cipherstash/encryption/identity).
Protect.js can add an additional layer of protection to your data by requiring a valid JWT to perform a decryption.
@@ -993,7 +996,7 @@ const bulkDecryptedResult = await protectClient
Protect.js currently supports encrypting and decrypting text.
Other data types like booleans, dates, ints, floats, and JSON are well-supported in other CipherStash products, and will be coming to Protect.js soon.
-Until support for other data types are available, you can express interest in this feature by adding a :+1: on this [GitHub Issue](https://github.com/cipherstash/protectjs/issues/48).
+Until support for other data types are available, you can express interest in this feature by adding a :+1: on this [GitHub Issue](https://github.com/cipherstash/stack/issues/48).
## Searchable encryption
@@ -1002,7 +1005,7 @@ Protect.js supports searching encrypted data in PostgreSQL:
- **Text columns**: Use `.equality()`, `.freeTextSearch()`, and `.orderAndRange()` for exact match, text search, and sorting/range queries.
- **JSONB columns**: Use `.searchableJson()` (recommended) to enable encrypted JSONPath selector and containment queries on JSON data. The query operation is automatically inferred from the plaintext type.
-Read more about [searching encrypted data](./docs/concepts/searchable-encryption.md) and the [PostgreSQL implementation details](./docs/reference/searchable-encryption-postgres.md) in the docs.
+Read more about [searching encrypted data](https://cipherstash.com/docs/stack/cipherstash/encryption/searchable-encryption) and the [PostgreSQL implementation details](https://cipherstash.com/docs/stack/cipherstash/encryption/searchable-encryption) in the docs.
## Multi-tenant encryption
@@ -1056,9 +1059,9 @@ PROTECT_LOG_LEVEL=error # Enable error logging
## CipherStash Client
Protect.js is built on top of the CipherStash Client Rust SDK which is embedded with the `@cipherstash/protect-ffi` package.
-The `@cipherstash/protect-ffi` source code is available on [GitHub](https://github.com/cipherstash/protectjs-ffi).
+The `@cipherstash/protect-ffi` source code is available on [GitHub](https://github.com/cipherstash/stack-ffi).
-Read more about configuring the CipherStash Client in the [configuration docs](./docs/reference/configuration.md).
+Read more about configuring the CipherStash Client in the [configuration docs](https://cipherstash.com/docs/stack/reference).
## Example applications
@@ -1070,7 +1073,7 @@ Check out the [example applications](./examples):
- [Next.js and lock contexts example using Clerk](/examples/nextjs-clerk) demonstrates how to protect data with identity-aware encryption
`@cipherstash/protect` can be used with most ORMs.
-If you're interested in using `@cipherstash/protect` with a specific ORM, please [create an issue](https://github.com/cipherstash/protectjs/issues/new).
+If you're interested in using `@cipherstash/protect` with a specific ORM, please [create an issue](https://github.com/cipherstash/stack/issues/new).
## Builds and bundling
@@ -1078,11 +1081,11 @@ If you're interested in using `@cipherstash/protect` with a specific ORM, please
Here are a few resources to help based on your tool set:
-- [Required Next.js configuration](./docs/how-to/nextjs-external-packages.md).
-- [SST and AWS serverless functions](./docs/how-to/sst-external-packages.md).
+- [Required Next.js configuration](https://cipherstash.com/docs/stack/deploy/bundling).
+- [SST and AWS serverless functions](https://cipherstash.com/docs/stack/deploy/bundling).
> [!TIP]
-> Deploying to Linux (e.g., AWS Lambda) with npm lockfile v3 and seeing runtime module load errors? See the troubleshooting guide: [`docs/how-to/npm-lockfile-v3`](./docs/how-to/npm-lockfile-v3-linux-deployments.md).
+> Deploying to Linux (e.g., AWS Lambda) with npm lockfile v3 and seeing runtime module load errors? See the troubleshooting guide: [bundling guide](https://cipherstash.com/docs/stack/deploy/bundling).
## Contributing
@@ -1096,4 +1099,4 @@ Protect.js is [MIT licensed](./LICENSE.md).
### Didn't find what you wanted?
-[Click here to let us know what was missing from our docs.](https://github.com/cipherstash/protectjs/issues/new?template=docs-feedback.yml&title=[Docs:]%20Feedback%20on%20README.md)
+[Click here to let us know what was missing from our docs.](https://github.com/cipherstash/stack/issues/new?template=docs-feedback.yml&title=[Docs:]%20Feedback%20on%20README.md)
diff --git a/packages/schema/README.md b/packages/schema/README.md
index b444bc85..f9cc9828 100644
--- a/packages/schema/README.md
+++ b/packages/schema/README.md
@@ -1,10 +1,13 @@
# @cipherstash/schema
-A TypeScript schema builder for CipherStash Protect.js that enables you to define encryption schemas with searchable encryption capabilities.
+A TypeScript schema builder for CipherStash encryption that enables you to define encryption schemas with searchable encryption capabilities.
## Overview
-`@cipherstash/schema` is a standalone package that provides the schema building functionality used by `@cipherstash/protect`. While not required for basic Protect.js usage, this package is available if you need to build encryption configuration schemas directly or want to understand the underlying schema structure.
+`@cipherstash/schema` is a standalone package that provides the schema building functionality used by `@cipherstash/protect`. While not required for typical usage, this package is available if you need to build encryption configuration schemas directly or want to understand the underlying schema structure.
+
+> [!TIP]
+> For new projects we recommend [`@cipherstash/stack`](https://www.npmjs.com/package/@cipherstash/stack), which exposes this functionality as `encryptedTable` / `encryptedColumn` from `@cipherstash/stack/schema`. The `csTable` / `csColumn` API documented below is the legacy naming used by `@cipherstash/protect`.
## Installation
diff --git a/packages/stack/README.md b/packages/stack/README.md
index 1a57a8cb..37548764 100644
--- a/packages/stack/README.md
+++ b/packages/stack/README.md
@@ -3,7 +3,7 @@
The all-in-one TypeScript SDK for the CipherStash data security stack.
[](https://www.npmjs.com/package/@cipherstash/stack)
-[](https://github.com/cipherstash/protectjs/blob/main/LICENSE.md)
+[](https://github.com/cipherstash/stack/blob/main/LICENSE.md)
[](https://www.typescriptlang.org/)
--
@@ -687,4 +687,4 @@ All method signatures on the encryption client (`encrypt`, `decrypt`, `encryptMo
## License
-MIT - see [LICENSE.md](https://github.com/cipherstash/protectjs/blob/main/LICENSE.md).
+MIT - see [LICENSE.md](https://github.com/cipherstash/stack/blob/main/LICENSE.md).