---
canonical_url: "https://supabase.nuxtjs.org"
---
<u-page-hero orientation="horizontal">

```vue [pages/login.vue]
<script setup lang="ts">
const supabase = useSupabaseClient()
const email = ref('')

async function signInWithOtp() {
  await supabase.auth.signInWithOtp({
    email: email.value
  })
}
</script>

<template>
  <input
    type="email"
    v-model="email"
    @keyup.enter="signInWithOtp()"
    placeholder="Login with email" 
  />
</template>
```

<template v-slot:title="">
<span className="text-primary">

Nuxt

</span>

 Supabase

</template>

<template v-slot:description="">

A supa simple wrapper around supabase-js to enable usage and integration within Nuxt.

</template>

<template v-slot:links="">
<u-button size="xl" to="https://supabase.nuxtjs.org/getting-started/introduction" trailing-icon="i-lucide-arrow-right">

Get started

</u-button>

<u-button size="xl" to="https://github.com/nuxt-modules/supabase" variant="subtle" color="neutral" icon="i-lucide-star" target="_blank">

Star on GitHub

</u-button>
</template>

<template v-slot:headline="">
<u-button size="sm" to="https://supabase.nuxtjs.org/getting-started/migration" variant="outline">

Nuxt Supabase v2 →

</u-button>
</template>
</u-page-hero>

<u-page-section>
<template v-slot:title="">

Shipped with many features

</template>

<template v-slot:features="">
<u-page-feature icon="i-simple-icons-nuxtdotjs" to="https://nuxt.com" target="_blank">
<template v-slot:title="">

Nuxt 3 and 4 ready

</template>

<template v-slot:description="">

Experience the power and flexibility of Nuxt 3 and Nuxt 4, optimized for modern web development.

</template>
</u-page-feature>

<u-page-feature icon="i-simple-icons-vuedotjs" to="https://vuejs.org/guide/reusability/composables.html" target="_blank">
<template v-slot:title="">

Vue 3 composables

</template>

<template v-slot:description="">

Leverage the reusability and efficiency of Vue 3 composables in your projects.

</template>
</u-page-feature>

<u-page-feature icon="i-simple-icons-supabase" to="https://supabase.com" target="_blank">
<template v-slot:title="">

Supabase-js V2

</template>

<template v-slot:description="">

Empower Supabase for robust backend functionality.

</template>
</u-page-feature>

<u-page-feature icon="i-lucide-server" to="services/serversupabaseclient">
<template v-slot:title="">

Usage in API server routes

</template>

<template v-slot:description="">

Implement Supabase in your API server routes.

</template>
</u-page-feature>

<u-page-feature icon="i-lucide-key" to="https://supabase.nuxtjs.org/getting-started/authentication">
<template v-slot:title="">

Authentication support with JWT signing keys

</template>

<template v-slot:description="">

Secure your applications with authentication support provided by Supabase with JWT signing keys support.

</template>
</u-page-feature>

<u-page-feature icon="i-simple-icons-typescript" to="https://www.typescriptlang.org" target="_blank">
<template v-slot:title="">

TypeScript support

</template>

<template v-slot:description="">

Enjoy a fully typed development experience.

</template>
</u-page-feature>
</template>
</u-page-section>

## Resources for Agents

- [API catalog: every service document this site publishes](https://supabase.nuxtjs.org/.well-known/api-catalog)
- [Sitemap (XML)](https://supabase.nuxtjs.org/sitemap.xml)
- [Sitemap (Markdown): every page on the site](https://supabase.nuxtjs.org/sitemap.md)
- [MCP server card: MCP endpoint at https://supabase.nuxtjs.org/mcp](https://supabase.nuxtjs.org/.well-known/mcp/server-card.json)
- [MCP endpoint (streamable HTTP)](https://supabase.nuxtjs.org/mcp)
- [llms.txt: index of the documentation for LLMs](https://supabase.nuxtjs.org/llms.txt)
- [llms-full.txt: the full documentation as a single file](https://supabase.nuxtjs.org/llms-full.txt)
- [OpenAPI document: every route this site serves to agents](https://supabase.nuxtjs.org/openapi.json)


## Sitemap

See the full [sitemap](https://supabase.nuxtjs.org/sitemap.md) for all pages.
