OpenVibe started in 2026, not 2022: fix the experience entry, network lead and project year
Changes
nnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Sep_2026_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Sep_2026_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_amber_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_amber_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_cyan_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_cyan_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_green_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_green_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_indigo_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_indigo_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_lime_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_lime_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_orange_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_orange_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_pink_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_pink_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_red_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_red_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_teal_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_teal_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_violet_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_violet_76413598.pdf and /dev/null differnnew file mode 100644BBinary files /dev/null and b/public/Alex_Frison_Resume_Themed_yellow_69f82554.pdf differddeleted file mode 100644BBinary files a/public/Alex_Frison_Resume_Themed_yellow_76413598.pdf and /dev/null differ@@@ -29,7 +29,7 @@ const edges = [<div class="sec-index">The OpenVibe network</div><h2 class="sec-title" id="network-title">Seven services. One sign-in. <em>One engineer.</em></h2></div>-- <p class="sec-lead">An open, community-run streaming and tools network I started in 2022 and re-architected in 2026. Every service below is designed, built, deployed and operated by me, and every one is live.</p>++ <p class="sec-lead">An open, community-run streaming and tools network I started in 2026 and grew from one streaming site into seven services. Every service below is designed, built, deployed and operated by me, and every one is live.</p></div><div class="bento">@@@ -1,7 +1,7 @@{"company": "OpenVibe","role": "Founder · Architect · Sole Engineer",-- "start": "2022",++ "start": "2026","end": "Present","location": "openvibe.live and 20+ domains","kind": "founder",@@@ -9,7 +9,7 @@"featured": true,"current": true,"order": 2,-- "summary": "An open, community-run live-streaming network I own end to end. Started in 2022 as a single streaming site; by 2026 it had grown into seven connected apps sharing one login, and I'm still the only engineer on it.",++ "summary": "An open, community-run live-streaming network I own end to end. Launched in 2026 as a single streaming site and grown, in the same year, into seven connected apps sharing one login, with me as the only engineer on it.","bullets": ["Designed and built an entire network of seven apps that work together under one account: live streaming, sign-in and a virtual-currency wallet, media storage, a 169-tool toolbox, a browser game and a community hub. About 363,000 lines of code and 900+ web endpoints — all built, deployed and kept running by me alone.","Built the live-streaming engine from the ground up: anyone can broadcast from a browser or an app, and it automatically re-broadcasts to Twitch, YouTube, Kick and more at the same time, saves the recording and auto-generates short clips. It also produces live captions and translates them into about 21 languages in real time, and uses AI to spot and label the best moments in every stream.",@@@ -4,7 +4,7 @@ category: "openvibe"summary: "Open live-streaming platform: RTMP, WHIP and WebRTC ingest, multi-destination restream, VODs, clips, chat, live captions and translation. 529 routes, one engineer."tech: ["Node.js", "Express", "SQLite", "mediasoup", "werift", "node-media-server", "ffmpeg", "whisper.cpp", "WebSockets", "OAuth2"]role: "Founder · Architect · Sole Engineer"--year: "2022–Present"++year: "2026–Present"image: "/assets/img/sites/live.webp"icon: "fa-solid fa-tower-broadcast"links: { "live": "https://openvibe.live", "docs": "https://openvibe.live/docs/whip" }@@@ -36,7 +36,7 @@"githubDisplay": "github.com/OpenVibers","linkedin": "https://www.linkedin.com/in/fris/","linkedinDisplay": "linkedin.com/in/fris",-- "resumePdf": "/Alex_Frison_Resume_Sep_2026_76413598.pdf",++ "resumePdf": "/Alex_Frison_Resume_Sep_2026_69f82554.pdf","availability": "Open to pretty much anything — engineering, platform, analytics, ops, sales, whatever fits · remote or Pacific Northwest","status": {"now": "Contract software engineer at PowerChat, building its developer platform and payments program.",@@@ -1,15 +1,15 @@{-- "amber": "/Alex_Frison_Resume_Themed_amber_76413598.pdf",-- "blue": "/Alex_Frison_Resume_Sep_2026_76413598.pdf",-- "cyan": "/Alex_Frison_Resume_Themed_cyan_76413598.pdf",-- "default": "/Alex_Frison_Resume_Sep_2026_76413598.pdf",-- "green": "/Alex_Frison_Resume_Themed_green_76413598.pdf",-- "indigo": "/Alex_Frison_Resume_Themed_indigo_76413598.pdf",-- "lime": "/Alex_Frison_Resume_Themed_lime_76413598.pdf",-- "orange": "/Alex_Frison_Resume_Themed_orange_76413598.pdf",-- "pink": "/Alex_Frison_Resume_Themed_pink_76413598.pdf",-- "red": "/Alex_Frison_Resume_Themed_red_76413598.pdf",-- "teal": "/Alex_Frison_Resume_Themed_teal_76413598.pdf",-- "violet": "/Alex_Frison_Resume_Themed_violet_76413598.pdf",-- "yellow": "/Alex_Frison_Resume_Themed_yellow_76413598.pdf"++ "amber": "/Alex_Frison_Resume_Themed_amber_69f82554.pdf",++ "blue": "/Alex_Frison_Resume_Sep_2026_69f82554.pdf",++ "cyan": "/Alex_Frison_Resume_Themed_cyan_69f82554.pdf",++ "default": "/Alex_Frison_Resume_Sep_2026_69f82554.pdf",++ "green": "/Alex_Frison_Resume_Themed_green_69f82554.pdf",++ "indigo": "/Alex_Frison_Resume_Themed_indigo_69f82554.pdf",++ "lime": "/Alex_Frison_Resume_Themed_lime_69f82554.pdf",++ "orange": "/Alex_Frison_Resume_Themed_orange_69f82554.pdf",++ "pink": "/Alex_Frison_Resume_Themed_pink_69f82554.pdf",++ "red": "/Alex_Frison_Resume_Themed_red_69f82554.pdf",++ "teal": "/Alex_Frison_Resume_Themed_teal_69f82554.pdf",++ "violet": "/Alex_Frison_Resume_Themed_violet_69f82554.pdf",++ "yellow": "/Alex_Frison_Resume_Themed_yellow_69f82554.pdf"}
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Sep_2026_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Sep_2026_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Sep_2026_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Sep_2026_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_amber_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_amber_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_amber_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_amber_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_cyan_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_cyan_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_cyan_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_cyan_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_green_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_green_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_green_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_green_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_indigo_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_indigo_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_indigo_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_indigo_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_lime_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_lime_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_lime_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_lime_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_orange_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_orange_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_orange_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_orange_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_pink_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_pink_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_pink_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_pink_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_red_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_red_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_red_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_red_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_teal_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_teal_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_teal_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_teal_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_violet_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_violet_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_violet_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_violet_76413598.pdf and /dev/null differ
new file mode 100644
new file mode 100644
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_yellow_69f82554.pdf differ
Binary files /dev/null and b/public/Alex_Frison_Resume_Themed_yellow_69f82554.pdf differ
deleted file mode 100644
deleted file mode 100644
Binary files a/public/Alex_Frison_Resume_Themed_yellow_76413598.pdf and /dev/null differ
Binary files a/public/Alex_Frison_Resume_Themed_yellow_76413598.pdf and /dev/null differ
@@ -29,7 +29,7 @@ const edges = [
@@ -29,7 +29,7 @@ const edges = [
<div class="sec-index">The OpenVibe network</div>
<div class="sec-index">The OpenVibe network</div>
<h2 class="sec-title" id="network-title">Seven services. One sign-in. <em>One engineer.</em></h2>
<h2 class="sec-title" id="network-title">Seven services. One sign-in. <em>One engineer.</em></h2>
</div>
</div>
- <p class="sec-lead">An open, community-run streaming and tools network I started in 2022 and re-architected in 2026. Every service below is designed, built, deployed and operated by me, and every one is live.</p>
+ <p class="sec-lead">An open, community-run streaming and tools network I started in 2026 and grew from one streaming site into seven services. Every service below is designed, built, deployed and operated by me, and every one is live.</p>
</div>
</div>
<div class="bento">
<div class="bento">
@@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
{
{
"company": "OpenVibe",
"company": "OpenVibe",
"role": "Founder · Architect · Sole Engineer",
"role": "Founder · Architect · Sole Engineer",
- "start": "2022",
+ "start": "2026",
"end": "Present",
"end": "Present",
"location": "openvibe.live and 20+ domains",
"location": "openvibe.live and 20+ domains",
"kind": "founder",
"kind": "founder",
@@ -9,7 +9,7 @@
@@ -9,7 +9,7 @@
"featured": true,
"featured": true,
"current": true,
"current": true,
"order": 2,
"order": 2,
- "summary": "An open, community-run live-streaming network I own end to end. Started in 2022 as a single streaming site; by 2026 it had grown into seven connected apps sharing one login, and I'm still the only engineer on it.",
+ "summary": "An open, community-run live-streaming network I own end to end. Launched in 2026 as a single streaming site and grown, in the same year, into seven connected apps sharing one login, with me as the only engineer on it.",
"bullets": [
"bullets": [
"Designed and built an entire network of seven apps that work together under one account: live streaming, sign-in and a virtual-currency wallet, media storage, a 169-tool toolbox, a browser game and a community hub. About 363,000 lines of code and 900+ web endpoints — all built, deployed and kept running by me alone.",
"Designed and built an entire network of seven apps that work together under one account: live streaming, sign-in and a virtual-currency wallet, media storage, a 169-tool toolbox, a browser game and a community hub. About 363,000 lines of code and 900+ web endpoints — all built, deployed and kept running by me alone.",
"Built the live-streaming engine from the ground up: anyone can broadcast from a browser or an app, and it automatically re-broadcasts to Twitch, YouTube, Kick and more at the same time, saves the recording and auto-generates short clips. It also produces live captions and translates them into about 21 languages in real time, and uses AI to spot and label the best moments in every stream.",
"Built the live-streaming engine from the ground up: anyone can broadcast from a browser or an app, and it automatically re-broadcasts to Twitch, YouTube, Kick and more at the same time, saves the recording and auto-generates short clips. It also produces live captions and translates them into about 21 languages in real time, and uses AI to spot and label the best moments in every stream.",
@@ -4,7 +4,7 @@ category: "openvibe"
@@ -4,7 +4,7 @@ category: "openvibe"
summary: "Open live-streaming platform: RTMP, WHIP and WebRTC ingest, multi-destination restream, VODs, clips, chat, live captions and translation. 529 routes, one engineer."
summary: "Open live-streaming platform: RTMP, WHIP and WebRTC ingest, multi-destination restream, VODs, clips, chat, live captions and translation. 529 routes, one engineer."
tech: ["Node.js", "Express", "SQLite", "mediasoup", "werift", "node-media-server", "ffmpeg", "whisper.cpp", "WebSockets", "OAuth2"]
tech: ["Node.js", "Express", "SQLite", "mediasoup", "werift", "node-media-server", "ffmpeg", "whisper.cpp", "WebSockets", "OAuth2"]
role: "Founder · Architect · Sole Engineer"
role: "Founder · Architect · Sole Engineer"
-year: "2022–Present"
+year: "2026–Present"
image: "/assets/img/sites/live.webp"
image: "/assets/img/sites/live.webp"
icon: "fa-solid fa-tower-broadcast"
icon: "fa-solid fa-tower-broadcast"
links: { "live": "https://openvibe.live", "docs": "https://openvibe.live/docs/whip" }
links: { "live": "https://openvibe.live", "docs": "https://openvibe.live/docs/whip" }
@@ -36,7 +36,7 @@
@@ -36,7 +36,7 @@
"githubDisplay": "github.com/OpenVibers",
"githubDisplay": "github.com/OpenVibers",
"linkedin": "https://www.linkedin.com/in/fris/",
"linkedin": "https://www.linkedin.com/in/fris/",
"linkedinDisplay": "linkedin.com/in/fris",
"linkedinDisplay": "linkedin.com/in/fris",
- "resumePdf": "/Alex_Frison_Resume_Sep_2026_76413598.pdf",
+ "resumePdf": "/Alex_Frison_Resume_Sep_2026_69f82554.pdf",
"availability": "Open to pretty much anything — engineering, platform, analytics, ops, sales, whatever fits · remote or Pacific Northwest",
"availability": "Open to pretty much anything — engineering, platform, analytics, ops, sales, whatever fits · remote or Pacific Northwest",
"status": {
"status": {
"now": "Contract software engineer at PowerChat, building its developer platform and payments program.",
"now": "Contract software engineer at PowerChat, building its developer platform and payments program.",
@@ -1,15 +1,15 @@
@@ -1,15 +1,15 @@
{
{
- "amber": "/Alex_Frison_Resume_Themed_amber_76413598.pdf",
- "blue": "/Alex_Frison_Resume_Sep_2026_76413598.pdf",
- "cyan": "/Alex_Frison_Resume_Themed_cyan_76413598.pdf",
- "default": "/Alex_Frison_Resume_Sep_2026_76413598.pdf",
- "green": "/Alex_Frison_Resume_Themed_green_76413598.pdf",
- "indigo": "/Alex_Frison_Resume_Themed_indigo_76413598.pdf",
- "lime": "/Alex_Frison_Resume_Themed_lime_76413598.pdf",
- "orange": "/Alex_Frison_Resume_Themed_orange_76413598.pdf",
- "pink": "/Alex_Frison_Resume_Themed_pink_76413598.pdf",
- "red": "/Alex_Frison_Resume_Themed_red_76413598.pdf",
- "teal": "/Alex_Frison_Resume_Themed_teal_76413598.pdf",
- "violet": "/Alex_Frison_Resume_Themed_violet_76413598.pdf",
- "yellow": "/Alex_Frison_Resume_Themed_yellow_76413598.pdf"
+ "amber": "/Alex_Frison_Resume_Themed_amber_69f82554.pdf",
+ "blue": "/Alex_Frison_Resume_Sep_2026_69f82554.pdf",
+ "cyan": "/Alex_Frison_Resume_Themed_cyan_69f82554.pdf",
+ "default": "/Alex_Frison_Resume_Sep_2026_69f82554.pdf",
+ "green": "/Alex_Frison_Resume_Themed_green_69f82554.pdf",
+ "indigo": "/Alex_Frison_Resume_Themed_indigo_69f82554.pdf",
+ "lime": "/Alex_Frison_Resume_Themed_lime_69f82554.pdf",
+ "orange": "/Alex_Frison_Resume_Themed_orange_69f82554.pdf",
+ "pink": "/Alex_Frison_Resume_Themed_pink_69f82554.pdf",
+ "red": "/Alex_Frison_Resume_Themed_red_69f82554.pdf",
+ "teal": "/Alex_Frison_Resume_Themed_teal_69f82554.pdf",
+ "violet": "/Alex_Frison_Resume_Themed_violet_69f82554.pdf",
+ "yellow": "/Alex_Frison_Resume_Themed_yellow_69f82554.pdf"
}
}