Tools I build for the community.
Focused packages I use in production, shared under MIT. No paywalls, no telemetry, no open-core bait — just components I wanted to exist.
pullcord-vue
A ceiling pull-cord for Vue 3 with a real rope. Grab it, pull it, and it swings back — a theme switch with actual physics. This site uses it.
A real rope
Verlet nodes and distance constraints. It hangs under gravity, swings when grabbed, and goes to sleep when it settles — so an idle cord costs nothing.
Accessible by default
A real button with click and Enter support, aria-pressed state, and a focus ring. The drop-in and the pull gesture are disabled under reduced motion.
Small surface area
One component, one CSS file, zero runtime dependencies. Vue 3.5+ is the only peer dependency. MIT licensed, forever.
bun add pullcord-vue<script setup lang="ts">
import { PullCord } from 'pullcord-vue'
import 'pullcord-vue/pullcord.css'
const light = ref(false)
</script>
<template>
<PullCord :pulled="light" @pull="light = !light" />
</template>Desktop note: this portfolio uses the package as its theme switch. Pull the cord in the top-right corner.
Need something custom?
I build production components and design systems for teams. If you need a piece that does not exist yet, let's talk.