diff --git a/.changeset/video-initial.md b/.changeset/video-initial.md
new file mode 100644
index 000000000..2a7e4f22c
--- /dev/null
+++ b/.changeset/video-initial.md
@@ -0,0 +1,27 @@
+---
+"@solid-primitives/video": minor
+---
+
+New package: `@solid-primitives/video`
+
+Layered primitives for managing HTML video playback, built for Solid 2.0 (beta.14).
+
+### `makeVideo`
+
+Non-reactive base. Creates an `HTMLVideoElement` with optional event handlers and initial configuration (`autoPlay`, `loop`, `muted`, `preload`). Returns a `[player, cleanup]` tuple. No Solid owner required.
+
+### `makeVideoPlayer`
+
+Wraps `makeVideo` with imperative controls: `play`, `pause`, `seek`, `setVolume`, `setMuted`, `setPlaybackRate`, and `setLoop`.
+
+### `createVideo`
+
+Reactive primitive covering essential playback state: `playing`/`setPlaying`, `currentTime`/`seek`, `ended`, `seeking`, `error` (`MediaError | null`), and `duration` (throws `NotReadyError` until metadata loads — integrates with `
+
+
Video Primitive Demo
+
{video.duration()}s
+ * + * ``` + */ +export const createVideo = ( + src: VideoSource | Accessor