Rune Lab is your modern toolkit for crafting stunning, reactive web applications with Svelte 5. Harnessing the power of Svelte's new Runes system, Rune Lab offers a suite of elegant UI components designed for seamless data handling and beautiful theming.
It's built to integrate effortlessly with your data sources, especially shining when connected to the prism-py and prism-ts ecosystem for end-to-end type-safe API interactions.
- ✨ Svelte 5 Runes Core: Experience fine-grained reactivity and cleaner component logic.
- 🎨 Dynamic Theming: Powered by DaisyUI & Tailwind CSS for extensive customization and out-of-the-box themes.
- 🔒 TypeScript First: Robust type-safety for a confident and productive development workflow.
- 📊 Data-Aware Components: Tools and components built to handle and visualize complex data.
- 🛰️ Interactive Schema Explorer: A standout feature! Visually explore and
interact with database schemas exposed by
prism-pyAPIs directly within your Svelte application. Test CRUD operations, execute functions, and understand your data structure like never before. - 🌐 Smart API Integration: Includes
apiStore(usingprism-ts) for easy and type-safe connection to backend APIs. - 📦 Lightweight Core: Designed to be lean, with optional integrations.
- 🦕 Universal Access: Available on JSR (for Deno) and NPM (for Node.js/Bun/Yarn).
Rune Lab is designed to be a perfect companion to the Prism ecosystem:
- prism-py: Automatically generates REST APIs from your database schema.
- prism-ts: A TypeScript client that consumes these APIs with full type-safety.
When used together, Rune Lab's API integration tools (like the apiStore and
RLSchemaExplorer) provide a remarkably streamlined and type-safe path from
your backend data to your frontend UI.
Using Deno / JSR
# Add to your Deno project
deno add @yrrrrrf/rune-labUsing NPM / Bun / Yarn
npm install rune-lab
bun add rune-lab
yarn add rune-labBecause Deno's Vite SSR module runner externalizes node_modules by default,
.svelte files from this package would be loaded as raw ES modules, bypassing
the Svelte compiler. To prevent this, you need to tell Vite to process
rune-lab through its plugin pipeline.
Add the following to your consuming project's vite.config.ts:
export default defineConfig({
plugins: [sveltekit()],
ssr: {
noExternal: ["rune-lab"],
},
});This ensures the Svelte plugin transforms the components correctly during SSR, just as it would for your own source files.
MIT License - See LICENSE for details.