Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d4f6f58
feat(hexclave): PR 2 — visible rebrand to Hexclave
BilalG1 May 24, 2026
ff44d4e
fix(hexclave): update url-targets snapshots for shortened HexclaveAss…
BilalG1 May 24, 2026
5f8175a
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
d358f42
ci(hexclave): scope mirror publish to @hexclave/* packages
BilalG1 May 26, 2026
4de242c
fix(hexclave): update redirect-urls snapshot for shortened HexclaveAs…
BilalG1 May 26, 2026
b401e6f
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
bf772b7
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
29b214b
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
2e8b951
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
dff79c4
fix(hexclave): rewrite-packages — fix sentinel version bump
BilalG1 May 26, 2026
d59cc37
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
f696943
Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
0fced48
Merge origin/dev into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
d15bf68
Keep using r.stack-auth.com for analytics despite the rebrand
N2D4 May 26, 2026
663cb55
docs: flip shared-sender example to sent-with-hexclave.com
BilalG1 May 26, 2026
c1b887a
Merge origin/dev into cl/romantic-mendel-5a2c25
BilalG1 May 26, 2026
3716e54
fix(template): drop stray await on synchronous Result.or in _serverUs…
BilalG1 May 26, 2026
0006fae
chore(examples): flip remaining Stack → Hexclave brand strings in exa…
BilalG1 May 27, 2026
8f6e319
docs: rename build-a-saas-with-stack-auth tutorial slug to -hexclave
BilalG1 May 27, 2026
ebcef12
feat(brand): swap Stack Auth logos for Hexclave benzene mark + wordmark
BilalG1 May 27, 2026
c8abb72
feat(brand): regenerate favicons and OG image with Hexclave benzene mark
BilalG1 May 27, 2026
4011916
feat(dashboard): one-time Stack Auth → Hexclave rebrand modal (#1493)
BilalG1 May 27, 2026
5775c7b
chore(ci): remove @hexclave/* mirror publish from npm-publish workflow
BilalG1 May 27, 2026
175b47b
chore(db): drop internal-project rename migration
BilalG1 May 27, 2026
394a151
Merge branch 'dev' into cl/romantic-mendel-5a2c25
BilalG1 May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Return contract:

Why the two-consecutive-stable-reads check: a single `ready` flicker can land between a skeleton disappearing and the real content swapping in. Two consecutive 250ms ticks with identical body HTML length means the DOM has actually settled.

Tune the skeleton selector list for your codebase. The Stack Auth dashboard uses Tailwind `.animate-pulse` extensively for loading rows — that's the highest-signal one. Inspect the diff or the running app once and add any project-specific loading markers (`Spinner` component class, etc.) to the selector list in the subagent prompt rather than guessing.
Tune the skeleton selector list for your codebase. The Hexclave dashboard uses Tailwind `.animate-pulse` extensively for loading rows — that's the highest-signal one. Inspect the diff or the running app once and add any project-specific loading markers (`Spinner` component class, etc.) to the selector list in the subagent prompt rather than guessing.

After `wait-for-ready` returns `ok`, still sleep ~300ms before screenshotting so any final animations (slide-in, fade, etc.) land on their resting frame.

Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/pr-visual-writeup/scripts/detect_dev_server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
#
# Output (one per line): <port>\t<title>\t<url>
# Example:
# 8101 Stack Auth Dashboard http://localhost:8101
# 8102 Stack Auth API http://localhost:8102
# 8101 Hexclave Dashboard http://localhost:8101
# 8102 Hexclave API http://localhost:8102
#
# Use the output to pick the right port for screenshotting. A common convention
# is that the "dashboard" / "app" is the one you want; the API/docs/OAuth servers
Expand Down
4 changes: 2 additions & 2 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Stack Auth Development Container
# Hexclave Development Container

This development container provides a standardized development environment for working on Stack Auth.
This development container provides a standardized development environment for working on Hexclave.

## Getting Started

Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "Stack Auth Development",
"name": "Hexclave Development",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": {
Expand Down
8 changes: 4 additions & 4 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

## Supported Versions

Only the latest versions of Stack Auth's server and client packages are supported. We do not provide security updates for older versions.
Only the latest versions of Hexclave's server and client packages are supported. We do not provide security updates for older versions.

If you would like to get security consulting regarding older versions of on-prem or self-hosted deployments of Stack Auth, please [contact us](mailto:team@stack-auth.com).
If you would like to get security consulting regarding older versions of on-prem or self-hosted deployments of Hexclave, please [contact us](mailto:team@hexclave.com).

## Reporting a Vulnerability

Stack Auth practices [responsible disclosure](https://en.wikipedia.org/wiki/Coordinated_vulnerability_disclosure). This helps us protect our users, but requires your cooperation.
Hexclave practices [responsible disclosure](https://en.wikipedia.org/wiki/Coordinated_vulnerability_disclosure). This helps us protect our users, but requires your cooperation.

Please disclose security vulnerabilities responsibly by emailing us at security@stack-auth.com. In this case, we will get back to you within 96 hours, and aim to get a fix released as soon as possible. We will disclose the issue publicly after at most 90 days.
Please disclose security vulnerabilities responsibly by emailing us at security@hexclave.com. In this case, we will get back to you within 96 hours, and aim to get a fix released as soon as possible. We will disclose the issue publicly after at most 90 days.

Hence, we ask you not to publicize issues until the 90 days deadline is over. Also, please do not create GitHub issues with security vulnerabilities; instead, email us directly at the address above.
Binary file added .github/assets/hexclave-rebrand-modal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--

Make sure you've read the CONTRIBUTING.md guidelines: https://github.com/hexclave/stack-auth/blob/dev/CONTRIBUTING.md
Make sure you've read the CONTRIBUTING.md guidelines: https://github.com/hexclave/hexclave/blob/dev/CONTRIBUTING.md

-->
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ You should ALWAYS add new E2E tests when you change the API or SDK interface. Ge

## Architecture Overview

Stack Auth is a monorepo using Turbo for build orchestration. The main components are:
Hexclave is a monorepo using Turbo for build orchestration. The main components are:

### Apps (`/apps`)
- **backend** (`/apps/backend`): Next.js API backend running on port `${NEXT_PUBLIC_STACK_PORT_PREFIX:-81}02` (defaults to 8102)
Expand Down Expand Up @@ -82,7 +82,7 @@ To see all development ports, refer to the index.html of `apps/dev-launchpad/pub
- Whenever you make backwards-incompatible changes to the config schema, you must update the migration functions in `packages/stack-shared/src/config/schema.ts`!
- NEVER try-catch-all, NEVER void a promise, and NEVER .catch(console.error) (or similar). In most cases you don't actually need to be asynchronous, especially when UI is involved (instead, use a loading indicator! eg. our <Button> component already takes an async callback for onClick and sets its loading state accordingly — if whatever component doesn't do that, update the component instead). If you really do need things to be asynchronous, use `runAsynchronously` or `runAsynchronouslyWithAlert` instead as it deals with error logging.
- WHENEVER you create hover transitions, avoid hover-enter transitions, and just use hover-exit transitions. For example, `transition-colors hover:transition-none`.
- Any environment variables you create should be prefixed with `STACK_` (or NEXT_PUBLIC_STACK_ if they are public). This ensures that their changes are picked up by Turborepo (and helps readability).
- Any environment variables you create should be prefixed with `HEXCLAVE_` (or `NEXT_PUBLIC_HEXCLAVE_` if they are public) for new customer-facing or framework-internal vars. This ensures that their changes are picked up by Turborepo (and helps readability). Self-host operator vars (e.g. `STACK_DATABASE_CONNECTION_STRING`) and build/dev/test vars (e.g. `NEXT_PUBLIC_STACK_API_URL` in dev fixtures) stay `STACK_`-prefixed for now — the dual-read shim accepts both. The Hexclave SDK reads both prefixes; new names take precedence when both are set.
- NEVER just silently use fallback values or whatever when you don't know how to fix type errors. If there is a state that should never happen because of higher-level logic, and the type system doesn't represent that, either update the types or throw an error. Stuff like `?? 0` or `?? ""` is often code smell when `?? throwErr("this should never happen because XYZ")` would be better.
- Code defensively. Prefer `?? throwErr(...)` over non-null assertions, with good error messages explicitly stating the assumption that must've been violated for the error to be thrown.
- Try to avoid the `any` type. Whenever you need to use `any`, leave a comment explaining why you're using it (optimally it explains why the type system fails here, and how you can be certain that any errors in that code path would still be flagged at compile-, test-, or runtime).
Expand All @@ -92,7 +92,7 @@ To see all development ports, refer to the index.html of `apps/dev-launchpad/pub
- IMPORTANT: Any assumption you make should either be validated through type system (preferred), assertions, or tests. Optimally, two out of three.
- If there is an external browser tool connected, use it to test changes you make to the frontend when possible.
- Whenever you update an SDK implementation in `sdks/implementations`, make sure to update the specs accordingly in `sdks/specs` such that if you reimplemented the entire SDK from the specs again, you would get the same implementation. (For example, if the specs are not precise enough to describe a change you made, make the specs more precise.)
- When building internal tools for Stack Auth developers (eg. internal interfaces like the WAL info log etc.): Make the interfaces look very concise, assume the user is a pro-user. This only applies to internal tools that are used primarily by Stack Auth developers.
- When building internal tools for Hexclave developers (eg. internal interfaces like the WAL info log etc.): Make the interfaces look very concise, assume the user is a pro-user. This only applies to internal tools that are used primarily by Hexclave developers.
- The dev server already builds the packages in the background whenever you update a file. If you run into issues with typechecking or linting in a dependency after updating something in a package, just wait a few seconds, and then try again, and they will likely be resolved.
- When asked to review PR comments, you can use `gh pr status` to get the current pull request you're working on.
- NEVER EVER AUTOMATICALLY COMMIT OR STAGE ANY CHANGES — DON'T MODIFY GIT WITHOUT USER CONSENT! if its already staged and you didnt do it then dont unstage it.
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Stack Auth Changelog
# Hexclave Changelog

---

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Stack Auth
# Hexclave

## Commands
- **Lint**: `pnpm lint`
Expand Down
16 changes: 8 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to Stack Auth
# Contributing to Hexclave

Welcome to Stack Auth!
Welcome to Hexclave!

Due to the nature of authentication, this may not be the easiest project to contribute to, so if you are looking for projects to help gain programming experience, we may not be a great match. If you're looking for projects for beginners, check out [Awesome First PR Opportunities](https://github.com/MunGell/awesome-for-beginners).

Expand All @@ -19,18 +19,18 @@ Due to the nature of authentication, this may not be the easiest project to cont

## How to contribute

If you think Stack Auth is a good fit for you, follow these steps:
If you think Hexclave is a good fit for you, follow these steps:

1. Join [our Discord](https://discord.stack-auth.com)
2. [Use Stack Auth](https://docs.stack-auth.com/). The best way to understand the project is to use it. Build an application on top of Stack Auth, and post it on GitHub or write a blog post about how you built it. This also lets us assess your skills and understand where you could best help the project.
1. Join [our Discord](https://discord.hexclave.com)
2. [Use Hexclave](https://docs.hexclave.com/). The best way to understand the project is to use it. Build an application on top of Hexclave, and post it on GitHub or write a blog post about how you built it. This also lets us assess your skills and understand where you could best help the project.
3. Give us feedback on Discord or GitHub; let us know where you got stuck, and which things you wish were easier. (We appreciate contributions most when they solve problems the authors encountered themselves in real usage.)
4. Contribute to the [documentation](https://docs.stack-auth.com) and create examples & guides. This way, you can share your knowledge and expertise with everyone else who's just getting started.
4. Contribute to the [documentation](https://docs.hexclave.com) and create examples & guides. This way, you can share your knowledge and expertise with everyone else who's just getting started.
5. Only then, start [contributing to the codebase](README.md#-development--contribution). Coordinate with us on Discord beforehand to ensure we are not working on the same thing already, and to make sure a task is not more difficult than it seems.


## Security & bug bounties

For any security-related concerns & bug bounties, please email us at [security@stack-auth.com](mailto:security@stack-auth.com).
For any security-related concerns & bug bounties, please email us at [security@hexclave.com](mailto:security@hexclave.com).

## Vibecoding setup

Expand All @@ -47,7 +47,7 @@ For vibecoding, it can help to have multiple parallel copies of the codebase ope
eval "$(/path/to/direnv hook <bash|zsh>)"
eval "$(/path/to/direnv export <bash|zsh>)"
```
3. Now, create a `.envrc` file in the root of Stack Auth's codebase with the following content:
3. Now, create a `.envrc` file in the root of Hexclave's codebase with the following content:
```sh
# .envrc
# make sure to install direnv and add it to your shell rc file (e.g. ~/.bashrc or ~/.zshrc)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ Stack is licensed per-package, and 100% open-source.

Generally speaking, client code and examples are licensed under an open-source MIT license, while server components are licensed under an open-source AGPLv3 license. Please refer to each package's `LICENSE` files for more information.

We also have enterprise licenses available, if you prefer; please contact [enterprise@stack-auth.com](mailto:enterprise@stack-auth.com).
We also have enterprise licenses available, if you prefer; please contact [enterprise@hexclave.com](mailto:enterprise@hexclave.com).
Loading
Loading