Live demos — fork any example

Built with
EdgeLiteDB.

Real, runnable examples. From a 20-line counter to a fully adaptive dashboard — study the pattern, fork the code, ship faster.

beginner
const Btn = edge({
template: `<button>${label}</button>`,
adaptive: adapt.tapTarget()
});
Adaptive button

A single button that auto-enlarges on touch devices using adapt.tapTarget(). The simplest possible adaptive component.

edge()adapt.tapTarget()
open →
intermediate
adaptive: adapt.compose(
adapt.compact(),
adapt.tapTarget(),
adapt.retina()
)
Multi-rule card

A card that adapts tap targets, compacts on narrow viewports, and swaps @2x images on retina screens — simultaneously.

adapt.compose()adapt.retina()
open →
intermediate
const r = router({
'/': Home,
'/u/:id': User,
'*': NotFound
});
r.init();
SPA router

Multi-route SPA using edgelitedb-router. History API push state, param extraction, nested layouts.

router()edge()
open →
intermediate
hooks: {
mounted(el) {
// runs after DOM insert
el.querySelector('input')
.focus();
}
}
Lifecycle hooks

Using beforeRender, afterRender, mounted, and updated to run imperative side effects around the render cycle.

hooksedge()
open →
advanced
// Deno edge function
import { renderToString }
from 'edgelitedb/ssr';

const html = renderToString(
Page, props
);
Edge SSR

Server-rendering components in a Deno Deploy edge function. Hydrates on the client with zero overhead for static routes.

@edgelitedb/ssrDeno
open →
advanced
EdgeLiteDB.rule('dark-mode',
(meta, env) => ({
theme: matchMedia(
'(prefers-color-scheme: dark)'
).matches ? 'dark' : 'light'
}));
Custom adapt rule

Register a global adaptive rule that injects OS-level dark mode preference into every component tree automatically.

EdgeLiteDB.rule()adapt
open →
advanced
// TypeScript
interface CardProps {
title: string;
compact?: boolean;
}
const Card = edge<CardProps>({...});
TypeScript setup

Full type safety with EdgeLiteDB's generic edge() overloads. Prop types, adapt rule types, and store generics all included.

TypeScriptedge()
open →
beginner
const store = sync({ user: null });
store.set('user', { name: 'ada' });
// all subscribers notified
store.subscribe(s =>
console.log(s.user.name)
);
State with sync()

Walkthrough of the sync() store: get, set, patch, subscribe, and reset. The entire reactive foundation of EdgeLiteDB.

sync()
open →