SSR-safe Convex client setup and query helpers for SvelteKit.
pnpm add better-sveltekit-convex-client convex
<script lang="ts">
import { PUBLIC_CONVEX_URL } from "$env/static/public";
import { setupConvexClient } from "better-sveltekit-convex-client";
import { fetchConvexToken } from "$lib/auth/convex-token";
let { data } = $props();
setupConvexClient({
convexUrl: PUBLIC_CONVEX_URL,
fetchToken: fetchConvexToken,
getServerState: () => data?.authState,
});
</script>
import { useConvexAuth } from "better-sveltekit-convex-client";
const convexAuth = useConvexAuth();
import { useQuery } from "better-sveltekit-convex-client";
import { api } from "$convex/_generated/api";
const usersQuery = useQuery(api.users.list, () => ({}));
const activeUser = useQuery(
api.users.getActive,
() => (isAuthed ? {} : "skip")
);
_id to idimport { useQueryMapped } from "better-sveltekit-convex-client";
const clientsQuery = useQueryMapped(api.clients.list, () => ({}));
setupConvexClient({ convexUrl, fetchToken, getServerState, clientOptions })useConvexClient()useConvexClientWrapper()useConvexAuth()useQuery()useQueryMapped()combineQueries()fetchToken() function.$state, $effect, $derived).$app/environment).MIT