Meet Peek!an adorable peekling
that lives on the web
A character can be a companion, a creation, a tool, a mascot, or
something nobody has imagined yet. Peekling gives them a place to
exist, quietly, playfully, and without getting in your way.
Choose a situation to apply it to the live companion. The working
controls open inside Peek's bubble when the scenario needs them.
Motion-only scenarios stay clear so you can watch Peek move.
Motion has a clear owner. Pointer Plans respond to
the visitor. The search patrol follows its own bounded bottom-edge
route and never follows the cursor.
Applied live
Website companion
A general companion for a normal landing page.
When this happens
A visitor moves the pointer, clicks, scrolls, or your app
reports a named result.
Peek does this
Peek follows the pointer, plays a matching reaction, then
returns to idle.
FollowsEight-direction pursuit at a controlled cadence
ReactsClick, scroll, success, happy, and error semantics
zzRestsIdle, sleep, background-tab, and reduced-motion behavior
Bring a character
Art in. Code stays out.
A native pack is a manifest, one or more PNG density variants, and a
licence. The validator checks geometry, hashes, frames, paths, and
state cycles before rendering.
Community-contributed Peeklings will live in one searchable
collection. Until submissions open, this orbit uses our own roster
to show how many kinds of little lives can belong here.
Peekling does not send analytics, identifiers, or page content
anywhere.
Host-page isolation
A closed Shadow DOM, pointer-events none, passive capture, and
complete teardown keep controls and styles yours.
Data-only characters
Packs cannot ship executable code. Paths, sizes, atlas geometry,
states, and resources are validated.
Measured locally, gated in CI
Small enough to stay polite.
31.09KiBruntime gzip
27.52KiBruntime Brotli
36.63KiBtree-shaken hatch gzip
340.81KiBcomplete first embed
Published runtime 0.1.0, a measured tree-shaken hatch import, and the
complete Peek pack. Transfer size depends on server compression and
delivery configuration.
Peekling is an open-source browser runtime for small, data-only
animated characters. Peek is the first Peekling. Other
characters can bring their own appearance, states, and way of
moving.
02Is Peekling free and open source?
Yes. The engine is licensed under Apache-2.0. Character packs
carry their own license and provenance metadata, so their reuse
terms remain explicit instead of being assumed.
03Does Peekling collect data?
No. The runtime has no telemetry, account, or required backend.
Interaction state stays in the browser, and site visibility
preferences are stored locally without a network request.
04Will a Peekling interfere with my page?
It is designed not to. The browser host uses a closed Shadow
DOM, stays pointer-transparent, listens passively where
appropriate, and provides complete teardown when destroyed.
05How do I add one to a website?
The browser setup is two HTML lines: load a version-pinned
build, then place a
<peekling-character> element. Advanced hosts
can use Peekling.hatch(...) or ESM with the same
public runtime contract.
06Can I use my own character?
Yes. Compile and validate a data-only Peekling pack, then use
its immutable HTTPS manifest or a configured resolver. The
runtime fetches only that manifest and one suitable density
atlas.
07Does it work with my framework or server?
If the page runs JavaScript, it can run Peekling. React, Vue,
Svelte, Rails, Laravel, Django, and other stacks all integrate
through the same browser API. Wrappers are optional
conveniences.
08Can a visitor hide a Peekling?
Yes. Holding the bottom-right corner reveals temporary and
site-local rest choices. The preference needs no account or
server, and a site can always provide a normal “Show again”
control.