Skrip

Using Skrip with SvelteKit

Setup

Install the package in your SvelteKit project.

npm install skriplet

Loading a Collection

// src/routes/blog/+page.server.ts
import type { PageServerLoad } from './$types'

export const load: PageServerLoad = async ({ fetch }) => {
  const res = await fetch('/api/collections/blog')
  const { collection } = await res.json()
  return { posts: collection.items }
}
<!-- src/routes/blog/+page.svelte -->
<script lang="ts">
  export let data
</script>

<ul>
  {#each data.posts as post}
    <li><a href="/blog/{post.slug}">{post.data.title}</a></li>
  {/each}
</ul>

Loading a Single Item

// src/routes/blog/[slug]/+page.server.ts
export const load: PageServerLoad = async ({ fetch, params }) => {
  const res = await fetch(`/api/collections/blog/${params.slug}`)
  if (!res.ok) return { status: 404 }
  const { item } = await res.json()
  return { item }
}

SvelteKit's fetch is isomorphic — this works identically during SSR and in the browser.

{
  "title": "Using Skrip with SvelteKit",
  "framework": "SvelteKit",
  "difficulty": "beginner",
  "description": "Load Skrip collections in SvelteKit load functions for server-rendered pages."
}

GET /api/collections/examples/sveltekit