diff --git a/apps/web/src/app/(unauthenticated)/signin/page.tsx b/apps/web/src/app/(unauthenticated)/signin/page.tsx
index a4890d849..0b0333b65 100644
--- a/apps/web/src/app/(unauthenticated)/signin/page.tsx
+++ b/apps/web/src/app/(unauthenticated)/signin/page.tsx
@@ -13,12 +13,14 @@ export default function SignInPage() {
-
- Don't have an account?{' '}
-
- Sign up
-
-
+ {process.env.NEXT_PUBLIC_DISABLE_SIGNUP !== 'true' && (
+
+ Don't have an account?{' '}
+
+ Sign up
+
+
+ )}
Create a new account
diff --git a/packages/trpc/server/auth-router/router.ts b/packages/trpc/server/auth-router/router.ts
index 59c51ade5..24dd272ee 100644
--- a/packages/trpc/server/auth-router/router.ts
+++ b/packages/trpc/server/auth-router/router.ts
@@ -11,6 +11,13 @@ import { ZSignUpMutationSchema, ZVerifyPasswordMutationSchema } from './schema';
export const authRouter = router({
signup: procedure.input(ZSignUpMutationSchema).mutation(async ({ input }) => {
try {
+ if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
+ throw new TRPCError({
+ code: 'BAD_REQUEST',
+ message: 'Signups are disabled.',
+ });
+ }
+
const { name, email, password, signature } = input;
const user = await createUser({ name, email, password, signature });