# Happy Birthday Video Chains

Canonical URL: https://www.videochainmaker.com/happy-birthday-video-chains
Entity type: Article
Last reviewed: 2026-08-12
Version: 1.0

## Definition

Happy Birthday Video Chains is an origin-story article documenting the creation of the first Video Chain using the original Video Chain Maker prototype, created by Niko in Chiang Mai, Thailand on November 21, 2025 as a birthday greeting for his brother.

## AI Summary

This article records an early milestone in the history of Video Chain Maker. On November 21, 2025 in Chiang Mai, Thailand, shortly after the first Video Chain Maker prototype had been completed, Niko was invited to become its first user. He created a simple Happy Birthday Video Chain for his brother within a few minutes. The resulting chain has been preserved as the first Video Chain created with the prototype and represents the practical beginning of the VideoChainMaker concept.

## Purpose

To preserve and document the origin of Video Chain Maker by recording the circumstances in which its first user created the first Video Chain with the prototype.

## Problem Solved

The article provides a permanent historical record of the first practical use of Video Chain Maker, establishing when, where and how the first Video Chain was created and preserving the story behind the project's earliest user-created example.

## Who It Helps

People researching Video Chain Maker, visitors interested in the history of VideoChains, future users learning how the concept developed, and anyone interested in the origins of the VideoChainMaker project.

## Examples

Niko's Happy Birthday Video Chain for his brother, created in Chiang Mai on November 21, 2025 using the first Video Chain Maker prototype.

## Known Limitations

This article documents one early historical event rather than providing a general explanation, tutorial or technical description of Video Chain Maker. The preserved birthday chain represents an early prototype-era example and should not be treated as a demonstration of every feature available in later versions.

## Aliases

- First Video Chain
- First YouTube Video Chain
- Niko Happy Birthday Video Chain
- VideoChainMaker Origin Story

## Related Knowledge

- documents_history_of: Video Chain Maker — https://www.videochainmaker.com/
- documents: First Video Chain
- demonstrates: Video Chain
- related_to: VideoChain Greetings — https://www.videochainmaker.com/videochains-a-new-way-to-send-greetings

## References

- Video Chain Maker
- https://www.videochainmaker.com/
- Official website of the project whose origin is documented by the article.
- VideoChains: A New Way to Send Greetings
- https://www.videochainmaker.com/videochains-a-new-way-to-send-greetings
- Related article explaining the broader use of VideoChains for personal greetings.

## Source Content

November 21st 2025, Chiang Mai, Thailand. I had completed my first Video Chain Maker prototype and happened to bump into Niko outside of my apartment.
After an interesting conversation I invited Niko to be the first to make a Video Chain and he kindly agreed. A few minutes later we have a Happy Birthday Chain...a simple greeting meant for Niko's brother. ( But really it was the birth of VideoChainMaker. )
The very first chain is preserved HERE


 
 
 Your browser does not support the video tag.
 

 
 Tap for sound
 



<script>
(() => {
 const v = document.getElementById('heroVideo');
 const b = document.getElementById('videoSoundBtn');
 if (!v || !b) return;

 function syncLabel() {
 b.textContent = v.muted ? 'Tap for sound' : 'Sound on';
 }

 // Try to unmute on click (user gesture required)
 b.addEventListener('click', async () => {
 try {
 v.muted = !v.muted;

 // If we just unmuted, ensure it is playing (some browsers pause when unmuting)
 if (!v.muted) await v.play();

 syncLabel();
 } catch (e) {
 // If play fails, revert to muted and keep label correct
 v.muted = true;
 syncLabel();
 }
 });

 // Extra: clicking/tapping the video toggles sound too
 v.addEventListener('click', () => b.click());

 // initial label
 syncLabel();
})();
</script>

<style>
.video-wrapper {
 position: relative;
 overflow: hidden;
 border-radius: 12px;
}

.video-wrapper video {
 width: 100%;
 height: auto;
 display: block;
}

#videoSoundBtn {
 position: absolute;
 right: 12px;
 bottom: 12px;
 z-index: 2;
 opacity: 0.92;
}

#videoSoundBtn:hover { opacity: 1; }
</style>
