npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@warpkit/core

v0.0.6

Published

Svelte 5 application framework with state-driven routing, navigation lifecycle, and provider architecture

Readme

WarpKit

Alpha Software — WarpKit is being built and used in production by Upstat to power their own application. While this real-world usage drives rapid improvements, the framework is still early stage. Use at your own risk. APIs and behaviors are subject to change.

A standalone Svelte 5 SPA framework providing state-based routing, data fetching, forms, and real-time capabilities.

Features

  • State-Based Routing - Routes organized by application state (unauthenticated, onboarding, authenticated)
  • Navigation Pipeline - Every navigation flows through 10 predictable phases with guards and middleware
  • Auth-Provider Agnostic - Bring your own auth adapter (Firebase, Auth0, custom)
  • Config-Driven Data Layer - E-Tag caching, stale-while-revalidate, automatic refetching
  • Schema-Driven Forms - Deep proxy binding with StandardSchema validation (TypeBox, Zod)
  • Real-Time WebSockets - Type-safe messages, rooms, automatic reconnection
  • Pluggable Provider System - Swap browser APIs for testing or custom implementations
  • Generic Type System - Extend with your own user and data types

Packages

| Package | Description | | ------- | ----------- | | @warpkit/core | Router, state machine, events, components | | @warpkit/data | Data fetching, caching, mutations | | @warpkit/cache | Cache implementations (Memory, Storage, E-Tag) | | @warpkit/forms | Schema-driven form state management | | @warpkit/validation | StandardSchema validation (Zod, TypeBox) | | @warpkit/websocket | WebSocket client with reconnection | | @warpkit/auth-firebase | Firebase authentication adapter | | @warpkit/types | Shared TypeScript types |

Installation

bun add @warpkit/core @warpkit/data @warpkit/cache

Optional packages:

bun add @warpkit/forms @warpkit/validation
bun add @warpkit/websocket
bun add @warpkit/auth-firebase firebase

Quick Start

1. Define Routes

import { createRoute, createStateRoutes } from '@warpkit/core';

type AppState = 'authenticated' | 'unauthenticated';

export const routes = createStateRoutes<AppState>({
  unauthenticated: {
    routes: [
      createRoute({
        path: '/login',
        component: () => import('./pages/Login.svelte'),
        meta: { title: 'Login' }
      })
    ],
    default: '/login'
  },
  authenticated: {
    routes: [
      createRoute({
        path: '/dashboard',
        component: () => import('./pages/Dashboard.svelte'),
        meta: { title: 'Dashboard' }
      }),
      createRoute({
        path: '/settings',
        component: () => import('./pages/Settings.svelte'),
        meta: { title: 'Settings' }
      })
    ],
    default: '/dashboard'
  }
});

2. Create WarpKit Instance

import { createWarpKit } from '@warpkit/core';
import { routes } from './routes';

export const warpkit = createWarpKit({
  routes,
  initialState: 'unauthenticated'
});

3. Set Up App Component

<!-- App.svelte -->
<script lang="ts">
  import { WarpKitProvider, RouterView } from '@warpkit/core';
  import { warpkit } from './warpkit';

  $effect(() => {
    warpkit.start();
    return () => warpkit.destroy();
  });
</script>

<WarpKitProvider {warpkit}>
  <RouterView />
</WarpKitProvider>

4. Navigate

<script lang="ts">
  import { Link, useWarpKit } from '@warpkit/core';

  const warpkit = useWarpKit();

  function handleLogin() {
    warpkit.setState('authenticated');
  }
</script>

<Link href="/settings">Settings</Link>
<button onclick={handleLogin}>Login</button>

What WarpKit Does NOT Provide

WarpKit is intentionally minimal. These concerns are left to consumers:

  • Title Management - Update document.title yourself based on route meta
  • Focus Management - Handle accessibility announcements yourself
  • Error Boundary UI - Provide your own error handling UI

Requirements

  • Svelte 5.0.0+
  • Node.js 18+

Documentation

Guide

The WarpKit Guide is a comprehensive walkthrough covering everything from first setup to advanced architecture:

  1. Introduction & Philosophy — What WarpKit is, why it exists, and the design principles behind it
  2. Quick Start — Get a WarpKit app running in 5 minutes
  3. State-Based Routing — The core innovation: routes organized by application state
  4. The Navigation Pipeline — How every navigation flows through 10 predictable phases
  5. The Provider System — Pluggable abstractions for browser APIs
  6. Data Fetching & Caching — Config-driven data layer with E-Tag caching
  7. Forms & Validation — Schema-driven forms with deep proxy binding
  8. WebSockets & Real-Time — Type-safe real-time communication
  9. Authentication — Pluggable auth adapter pattern
  10. Testing — Mock providers, assertion helpers, and testing strategies
  11. Architecture & Design Decisions — Why WarpKit is built the way it is

API Reference

The API docs cover package internals, components, providers, and testing utilities.

License

MIT