āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā š shadcn/directory/clerk/clerk-docs/_partials/billing/create-an-organization-pricing-table ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
const clerkPubKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY
const clerk = new Clerk(clerkPubKey) await clerk.load()
document.getElementById('app').innerHTML = <div id="pricing-table"></div>
const pricingTableDiv = document.getElementById('pricing-table')
clerk.mountPricingTable(pricingTableDiv, { for: 'organization' })
</If>
<If sdk="nextjs">
```tsx {{ filename: 'app/pricing/page.tsx' }}
import { PricingTable } from '@clerk/nextjs'
export default function PricingPage() {
return (
<div style={{ maxWidth: '800px', margin: '0 auto', padding: '0 1rem' }}>
<PricingTable for="organization" />
</div>
)
}
</If>
<If sdk="nuxt">
```vue {{ filename: 'pages/pricing.vue' }}
<script setup lang="ts">
// Components are automatically imported
</script>
<template>
<main>
<PricingTable for="organization" />
</main>
</template>
```
</If>
<If sdk="vue">
```vue {{ filename: 'pages/pricing.vue' }}
<script setup lang="ts">
import { PricingTable } from '@clerk/vue'
</script>
<template>
<main>
<PricingTable for="organization" />
</main>
</template>
```
</If>
<If sdk="react">
```tsx {{ filename: 'src/screens/pricing.tsx' }}
import { PricingTable } from '@clerk/clerk-react'
export default function PricingScreen() { return ( <div style={{ maxWidth: '800px', margin: '0 auto', padding: '0 1rem' }}> <PricingTable for="organization" /> </div> ) }
</If>
<If sdk="react-router">
```tsx {{ filename: 'app/routes/pricing.tsx' }}
import type { Route } from './+types/pricing'
import { PricingTable } from '@clerk/react-router'
export function meta({}: Route.MetaArgs) {
return [{ title: 'Pricing' }]
}
export default function PricingPage() {
return (
<div style={{ maxWidth: '800px', margin: '0 auto', padding: '0 1rem' }}>
<PricingTable for="organization" />
</div>
)
}
</If>
<If sdk="remix">
```tsx {{ filename: 'app/routes/pricing.tsx' }}
import { PricingTable } from '@clerk/remix'
export default function PricingPage() { return ( <div style={{ maxWidth: '800px', margin: '0 auto', padding: '0 1rem' }}> <PricingTable for="organization" /> </div> ) }
</If>
<If sdk="tanstack-react-start">
```tsx {{ filename: 'app/routes/pricing.tsx' }}
import { PricingTable } from '@clerk/tanstack-react-start'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/')({
component: PricingPage,
})
function PricingPage() {
return (
<div style={{ maxWidth: '800px', margin: '0 auto', padding: '0 1rem' }}>
<PricingTable for="organization" />
</div>
)
}
</If>
<If sdk="expo">
> [!NOTE]
> Expo only supports the `<PricingTable />` component on the **web**.
import { PricingTable } from '@clerk/clerk-expo/web'
import { View } from 'react-native'
export default function PricingPage() {
return (
<View>
<PricingTable for="organization" />
</View>
)
}
</If>
<If sdk={["expressjs", "fastify", "js-backend"]}>
[!NOTE] To see an example of how to create a pricing table page, please select one of the frontend SDKs on the sidebar.
</If>
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā