Stack Auth
GuidesSDKComponentsAPI Reference
Back to home
Platform
OverviewFAQ
Getting Started
SetupComponentsUsersProduction
Concepts
API KeysBackend IntegrationCustom User DataEmailsJWT TokensOAuth
OAuth Providers
Orgs and TeamsPermissionsStack AppTeam SelectionUser OnboardingWebhooks
Customization
Custom PagesCustom StylesDark ModeInternationalization
Page Examples
Other
Self-hostSupabaseMCP SetupConvex
Stack Auth Docs

Custom User Data

How to store custom user metadata in Stack Auth

Stack Auth allows storing additional user information through three types of metadata fields:

  1. clientMetadata: Readable and writable from a client.
  2. serverMetadata: Readable and writable only from a server.
  3. clientReadOnlyMetadata: Readable from a client, writable only from a server.

Client metadata

You can use the clientMetadata field to store non-sensitive information that both the client and server can read and write.

await user.update({
  clientMetadata: {
    mailingAddress: "123 Main St",
  },
});

// On the client:
const user = useUser();
console.log(user.clientMetadata);

Server-side metadata

For sensitive information, use the serverMetadata field. This ensures the data is only accessible and modifiable by the server.

const user = await stackServerApp.getUser();
await user.update({
  serverMetadata: {
    secretInfo: "This is a secret",
  },
});

// To read:
const user = await stackServerApp.getUser();
console.log(user.serverMetadata);

Client read-only metadata

Use clientReadOnlyMetadata for data that clients need to read but never modify, such as subscription status.

// On the server:
const user = await stackServerApp.getUser();
await user.update({
  clientReadOnlyMetadata: {
    subscriptionPlan: "premium",
  },
});

// On the client:
const user = useUser();
console.log(user.clientReadOnlyMetadata);
Previous PageBackend Integration
Next PageEmails

Table of Contents

Navigate this page

On this page

Client metadataServer-side metadataClient read-only metadata

Stack Auth AI

Documentation assistant

Experimental: AI responses may not always be accurate—please verify important details.

For the most accurate information, please join our Discord or email us.

How can I help?

Ask me about Stack Auth while you browse the docs.