From bebb22a9bd96ee93a4e39c86fb058ce9d6b83507 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Tue, 8 Sep 2026 16:43:59 -0700 Subject: [PATCH 1/5] Add a reusable Author component with social links Every post ended with a bare avatar image, and most also carried a hand-written "Written by [@kixelated](...)" line that had drifted -- some pointed at GitHub, some at a mailto for an address that isn't the one I hand out. Replace both with a single component so there's one place to change. The component renders the avatar plus icon links for email, X, Bluesky, LinkedIn, and Discord. Icons live in public/social/ as single-path SVGs filled with the same green as public/layout/, so hand-drawn versions can replace them one file at a time. Co-Authored-By: Claude Opus 5 --- public/social/bluesky.svg | 1 + public/social/discord.svg | 1 + public/social/email.svg | 1 + public/social/linkedin.svg | 1 + public/social/x.svg | 1 + src/components/author.astro | 32 +++++++++++++++++++++ src/pages/blog/application-first.mdx | 4 ++- src/pages/blog/be-the-outlier.mdx | 4 ++- src/pages/blog/cars2.mdx | 5 ++-- src/pages/blog/demoqed.mdx | 6 ++-- src/pages/blog/distribution-at-twitch.mdx | 4 ++- src/pages/blog/first-app.mdx | 5 ++-- src/pages/blog/first-cdn.mdx | 5 ++-- src/pages/blog/forward-error-correction.mdx | 6 ++-- src/pages/blog/hash-tag-community.mdx | 5 ++-- src/pages/blog/monte-video.mdx | 5 ++-- src/pages/blog/moq-boy.mdx | 4 +-- src/pages/blog/moq-onion.mdx | 6 ++-- src/pages/blog/moqbs.mdx | 6 ++-- src/pages/blog/never-use-datagrams.mdx | 6 ++-- src/pages/blog/on-a-boat.mdx | 5 +++- src/pages/blog/open-for-business.mdx | 6 ++-- src/pages/blog/quic-powers.mdx | 6 ++-- src/pages/blog/replacing-hls-dash.mdx | 6 ++-- src/pages/blog/replacing-webrtc.mdx | 6 ++-- src/pages/blog/tls-and-quic.mdx | 5 ++-- src/pages/blog/to-wasm.mdx | 4 ++- src/pages/blog/transfork.mdx | 4 ++- src/pages/blog/update-00.mdx | 5 ++-- src/pages/blog/update-01.mdx | 5 ++-- src/pages/blog/webrtc-is-the-problem.mdx | 5 ++-- src/pages/blog/you-dont-need-it.mdx | 6 ++-- src/pages/index.mdx | 3 +- src/pages/issues.mdx | 4 ++- src/pages/source.mdx | 4 ++- 35 files changed, 124 insertions(+), 58 deletions(-) create mode 100644 public/social/bluesky.svg create mode 100644 public/social/discord.svg create mode 100644 public/social/email.svg create mode 100644 public/social/linkedin.svg create mode 100644 public/social/x.svg create mode 100644 src/components/author.astro diff --git a/public/social/bluesky.svg b/public/social/bluesky.svg new file mode 100644 index 0000000..8d9292b --- /dev/null +++ b/public/social/bluesky.svg @@ -0,0 +1 @@ + diff --git a/public/social/discord.svg b/public/social/discord.svg new file mode 100644 index 0000000..24f3739 --- /dev/null +++ b/public/social/discord.svg @@ -0,0 +1 @@ + diff --git a/public/social/email.svg b/public/social/email.svg new file mode 100644 index 0000000..57b05c9 --- /dev/null +++ b/public/social/email.svg @@ -0,0 +1 @@ + diff --git a/public/social/linkedin.svg b/public/social/linkedin.svg new file mode 100644 index 0000000..74063f8 --- /dev/null +++ b/public/social/linkedin.svg @@ -0,0 +1 @@ + diff --git a/public/social/x.svg b/public/social/x.svg new file mode 100644 index 0000000..dc741f7 --- /dev/null +++ b/public/social/x.svg @@ -0,0 +1 @@ + diff --git a/src/components/author.astro b/src/components/author.astro new file mode 100644 index 0000000..60f95ad --- /dev/null +++ b/src/components/author.astro @@ -0,0 +1,32 @@ +--- +// The sign-off at the bottom of every post: avatar plus wherever you can find me. +// The icons in public/social/ are placeholders waiting on hand-drawn versions, +// same as the ones in public/layout/. +const socials = [ + { name: "Email", icon: "email", href: "mailto:me@kixel.me" }, + { name: "X", icon: "x", href: "https://x.com/kixelated" }, + { name: "Bluesky", icon: "bluesky", href: "https://bsky.app/profile/kixel.me" }, + { name: "LinkedIn", icon: "linkedin", href: "https://www.linkedin.com/in/luke-curley-635a457/" }, + { name: "Discord", icon: "discord", href: "https://discord.moq.dev" }, +]; +--- + + diff --git a/src/pages/blog/application-first.mdx b/src/pages/blog/application-first.mdx index 5786ad1..2052859 100644 --- a/src/pages/blog/application-first.mdx +++ b/src/pages/blog/application-first.mdx @@ -7,6 +7,8 @@ cover: "/blog/application-first/sun.png" date: 2025-05-02 --- +import Author from "@/components/author.astro"; + # Application First Today was my last day at Discord. It's a great company with a great product and great people. @@ -210,4 +212,4 @@ I'm down to scheme too if any companies have a partnership in mind. Hoping to have a public demo in 3-6 months. -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/be-the-outlier.mdx b/src/pages/blog/be-the-outlier.mdx index 2996cd5..a5b9a3c 100644 --- a/src/pages/blog/be-the-outlier.mdx +++ b/src/pages/blog/be-the-outlier.mdx @@ -7,6 +7,8 @@ cover: "/blog/be-the-outlier/narwhal.png" date: 2025-06-07 --- +import Author from "@/components/author.astro"; + # Your Job Now: Be The Outlier I've been [working on a startup](/blog/application-first) for the last month. @@ -97,4 +99,4 @@ What does this have to do with Media over QUIC? I would set up a personal blog but I'm too busy right now. Hope you enjoyed something different like comment subscribe. -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/cars2.mdx b/src/pages/blog/cars2.mdx index 4c4a382..05b2198 100644 --- a/src/pages/blog/cars2.mdx +++ b/src/pages/blog/cars2.mdx @@ -7,6 +7,8 @@ cover: "/blog/cars2/queen.png" date: 2026-07-14 --- +import Author from "@/components/author.astro"; + # A Modern Interpretation of Live Streaming in the Cars 2 Cinematic Universe sup @@ -226,5 +228,4 @@ No refunds. If you're interested in more Cars 2 lore, join the [fan club](https://discord.gg/FCYF3p99mr) or email me at `me@kixel.me`. -Written by [@kixelated](mailto:meself@kixel.me). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/demoqed.mdx b/src/pages/blog/demoqed.mdx index 993cb24..c154b6f 100644 --- a/src/pages/blog/demoqed.mdx +++ b/src/pages/blog/demoqed.mdx @@ -6,6 +6,9 @@ description: The first MoQ conference coming soon (October) in San-Fran-cis-co. cover: "/blog/demoqed/demoqed.png" date: 2026-08-25 --- + +import Author from "@/components/author.astro"; + # DE MOQ ED [Demuxed](https://www.demuxed.com/) is the best media conference. @@ -80,5 +83,4 @@ Ur welcome. If the thought of flying to San Francisco for a half-day conference sounds lame, you can make it lamer and [schedule a coffee](http://meet.kixel.me/) with me. One lucky guest could even stay in my unfinished ~murder~ basement. -Written by [@kixelated](mailto:meself@kixel.me). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/distribution-at-twitch.mdx b/src/pages/blog/distribution-at-twitch.mdx index 397b687..2cb5956 100644 --- a/src/pages/blog/distribution-at-twitch.mdx +++ b/src/pages/blog/distribution-at-twitch.mdx @@ -7,6 +7,8 @@ cover: "/blog/kixelCat.png" date: 2022-02-15 --- +import Author from "@/components/author.astro"; + # Source [This document](https://docs.google.com/document/d/1OTnJunbpSJchdj8XI3GU9Fo-RUUFBqLO1AhlaKk5Alo/edit?usp=sharing) was originally shared on [MoQ IETF mailing list](https://mailarchive.ietf.org/arch/msg/moq/3-9tqDmEuzij7Iz3Xf7kIsR1ZYo/). @@ -263,4 +265,4 @@ Prioritization is used to avoid segments fighting for bandwidth, delivering newe - **(new)** UDP delivery is more expensive than TCP in practice -![@kixelated](/blog/avatar.png) \ No newline at end of file + diff --git a/src/pages/blog/first-app.mdx b/src/pages/blog/first-app.mdx index a90aca5..144b246 100644 --- a/src/pages/blog/first-app.mdx +++ b/src/pages/blog/first-app.mdx @@ -7,6 +7,8 @@ cover: "/blog/first-app/demo.png" date: 2025-08-22 --- +import Author from "@/components/author.astro"; + # The First MoQ App: hang.live 🚨 It's finally happening! 🚨 @@ -116,5 +118,4 @@ I'm totally open to suggestions and contributions. *Especially* if you're in the San Francisco area and want to vibe. [Hit me up](https://discord.moq.dev). -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/first-cdn.mdx b/src/pages/blog/first-cdn.mdx index e69c0d0..13aa492 100644 --- a/src/pages/blog/first-cdn.mdx +++ b/src/pages/blog/first-cdn.mdx @@ -7,6 +7,8 @@ cover: "/blog/first-cdn/cloudflare.png" date: 2025-08-22 --- +import Author from "@/components/author.astro"; + # The First MoQ CDN: Cloudflare 🚨 It's finally happening! 🚨 @@ -162,8 +164,7 @@ Somehow there's 900+ people in there. Ping me and I will do whatever I can to help. *Especially* if it means putting one more nail in the WebRTC coffin. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + ## Javascript is an Abomination Still reading? diff --git a/src/pages/blog/forward-error-correction.mdx b/src/pages/blog/forward-error-correction.mdx index 8d800dc..49bcd0d 100644 --- a/src/pages/blog/forward-error-correction.mdx +++ b/src/pages/blog/forward-error-correction.mdx @@ -7,6 +7,8 @@ cover: "/blog/forward-error-correction/mfw.jpeg" date: 2024-02-17 --- +import Author from "@/components/author.astro"; + # Forward? Error? Correction? So I absolutely _dunked_ on datagrams in the [last blog post](/blog/never-use-datagrams). @@ -192,6 +194,4 @@ Do what works best for your users at whatever layer you control. Just please, never show me a graph based on random packet loss again. -Written by [@kixelated](https://github.com/kixelated). - -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/hash-tag-community.mdx b/src/pages/blog/hash-tag-community.mdx index ad999a1..3827930 100644 --- a/src/pages/blog/hash-tag-community.mdx +++ b/src/pages/blog/hash-tag-community.mdx @@ -7,6 +7,8 @@ cover: "/blog/hash-tag-community/hash.png" date: 2025-12-20 --- +import Author from "@/components/author.astro"; + # Hash Tag Community There's been a LOT of new contributions to the project thanks primarily to the [Montevideo Tech Summer Camp](/blog/monte-video). It is my job as the official MoQ `#influencer` to give everyone a shoutout. @@ -190,5 +192,4 @@ This project is my legacy, and I greatly appreciate all of the help from the `#c Just a reminder that I'm unemployed (on purpose) and available for *unpaid* consulting gigs if you, or your megacorp, are interested in MoQ. Message me on [Discord](https://discord.moq.dev) if you, or your CTO, or your intern, want to schedule a call and exchange business cards. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/monte-video.mdx b/src/pages/blog/monte-video.mdx index 7e08632..8a6f246 100644 --- a/src/pages/blog/monte-video.mdx +++ b/src/pages/blog/monte-video.mdx @@ -7,6 +7,8 @@ cover: "/blog/monte-video/uruguay.png" date: 2025-11-11 --- +import Author from "@/components/author.astro"; + # Monte\: A Real Place Who knew? @@ -106,6 +108,5 @@ They literally invite you to visit their home. I had a blast last year and (hopefully) I'll see you there this year. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/moq-boy.mdx b/src/pages/blog/moq-boy.mdx index 2f89a15..dddad32 100644 --- a/src/pages/blog/moq-boy.mdx +++ b/src/pages/blog/moq-boy.mdx @@ -7,6 +7,7 @@ cover: "/blog/moq-boy/moqboy.png" date: 2026-04-16 --- import Boy from "@/components/boy.astro"; +import Author from "@/components/author.astro";
MoQ Boy @@ -206,5 +207,4 @@ Email me at `me@kixel.me`, or DM on [Discord](https://discord.moq.dev) if you wa - to sponsor some open source contributions. - a MoQ pilot to replace your crummy setup. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/moq-onion.mdx b/src/pages/blog/moq-onion.mdx index 4dc5f8c..3361b38 100644 --- a/src/pages/blog/moq-onion.mdx +++ b/src/pages/blog/moq-onion.mdx @@ -7,6 +7,8 @@ cover: "/blog/moq-onion/onion.png" date: 2024-11-17 --- +import Author from "@/components/author.astro"; + # The MoQ Onion Today we slice the onion. The most critical, and least documented, thing to understand is the layering behind MoQ. @@ -335,6 +337,4 @@ I'm sure this blog post is already out of date. [Join the conversation](https://discord.moq.dev) and evolve with me, platonically of course. -Written by [@kixelated](https://github.com/kixelated). - -![@kixelated](/blog/avatar.png) \ No newline at end of file + diff --git a/src/pages/blog/moqbs.mdx b/src/pages/blog/moqbs.mdx index fcc93b2..9ba1d1c 100644 --- a/src/pages/blog/moqbs.mdx +++ b/src/pages/blog/moqbs.mdx @@ -7,6 +7,8 @@ cover: "/blog/moqbs/moqbs.png" date: 2026-02-20 --- +import Author from "@/components/author.astro"; + # libmoq + OBS = MoQBS Oh hey, long time no chat. @@ -102,6 +104,4 @@ It feels great delegating the hard parts to others. I could get used to this. -Written by [@kixelated](https://github.com/kixelated). - -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/never-use-datagrams.mdx b/src/pages/blog/never-use-datagrams.mdx index bdd0917..0d0b0e8 100644 --- a/src/pages/blog/never-use-datagrams.mdx +++ b/src/pages/blog/never-use-datagrams.mdx @@ -7,6 +7,8 @@ cover: "/blog/never-use-datagrams/bodies.jpeg" date: 2024-02-17 --- +import Author from "@/components/author.astro"; + # Never\* use Datagrams Click-bait title, but hear me out. @@ -255,6 +257,4 @@ And please, please don't make yet another video protocol on top of UDP. Get involved with [Media over QUIC](https://datatracker.ietf.org/wg/moq/about/) instead! Join our [Discord](https://discord.moq.dev) and tell me how wrong I am. -Written by [@kixelated](https://github.com/kixelated). - -![@kixelated](/blog/avatar.png) \ No newline at end of file + diff --git a/src/pages/blog/on-a-boat.mdx b/src/pages/blog/on-a-boat.mdx index 5861cba..4d8360d 100644 --- a/src/pages/blog/on-a-boat.mdx +++ b/src/pages/blog/on-a-boat.mdx @@ -7,6 +7,8 @@ cover: "/blog/on-a-boat/boat.png" date: 2026-02-26 --- +import Author from "@/components/author.astro"; + # On a Boat [Saronic](https://www.saronic.com/) posted a [blog](https://medium.com/saronic-technologies/the-ground-moves-building-on-early-open-source-without-getting-burned-ba2af78beb78) about how they've been using MoQ for years. Go read it. @@ -189,4 +191,5 @@ Want to learn more? I'm working on [more documentation](https://doc.moq.dev), including other non-boat [use-cases](https://doc.moq.dev/concept/use-case/). Until next time sailor. -![@kixelated](/blog/avatar.png) + + diff --git a/src/pages/blog/open-for-business.mdx b/src/pages/blog/open-for-business.mdx index 4e96402..ef00cf6 100644 --- a/src/pages/blog/open-for-business.mdx +++ b/src/pages/blog/open-for-business.mdx @@ -7,6 +7,8 @@ cover: "/blog/open-for-business/splash.png" date: 2026-08-17 --- +import Author from "@/components/author.astro"; + # Open For Business I'm starting a company: [Kixel, Corp.](https://kixel.us/) We can now exchange goods and services. @@ -217,6 +219,4 @@ Especially if you speak the language of business. - Email me: `hillo@moq.pro` - Meet me: [https://meet.kixel.me](https://meet.kixel.me) - -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/quic-powers.mdx b/src/pages/blog/quic-powers.mdx index 2661227..f6dbb2a 100644 --- a/src/pages/blog/quic-powers.mdx +++ b/src/pages/blog/quic-powers.mdx @@ -7,6 +7,8 @@ cover: "/blog/quic-powers/vegeta.png" date: 2023-12-17 --- +import Author from "@/components/author.astro"; + # QUIC's (hidden) Super Powers Most of QUIC's killer features aren't obvious or documented. @@ -435,8 +437,6 @@ I've already stated my opinion but unfortunately, I'm not the boss of the IETF. # STREAM_FIN -Written by [@kixelated](https://github.com/kixelated). - I'm super exited about QUIC and WebTransport. There's never been a better time to be a transport protocol nerd. @@ -449,4 +449,4 @@ Remember: it's co-authored by individuals from Google, Meta, Cisco, Akamai, alon Join the [discord server](https://discord.moq.dev) though. -![@kixelated](/blog/avatar.png) \ No newline at end of file + diff --git a/src/pages/blog/replacing-hls-dash.mdx b/src/pages/blog/replacing-hls-dash.mdx index fd352af..6981312 100644 --- a/src/pages/blog/replacing-hls-dash.mdx +++ b/src/pages/blog/replacing-hls-dash.mdx @@ -7,6 +7,8 @@ cover: "/blog/replacing-hls-dash/carrot.png" date: 2023-11-21 --- +import Author from "@/components/author.astro"; + # Replacing HLS/DASH Low-latency, high bitrate, mass fan-out is hard. Who knew? @@ -367,6 +369,4 @@ We'll get there eventually. Feel free to use our [Rust](https://github.com/kixelated/moq-rs) or [Typescript](https://github.com/kixelated/moq-js) implementation if you want to experiment. Join the [Discord](https://discord.moq.dev) if you want to help! -Written by [@kixelated](https://github.com/kixelated). - -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/replacing-webrtc.mdx b/src/pages/blog/replacing-webrtc.mdx index 245eec4..e729903 100644 --- a/src/pages/blog/replacing-webrtc.mdx +++ b/src/pages/blog/replacing-webrtc.mdx @@ -7,6 +7,8 @@ cover: "/blog/replacing-webrtc/artifact.png" date: 2023-10-10 --- +import Author from "@/components/author.astro"; + # Replacing WebRTC The long path to use _something else_ for real-time media. @@ -312,10 +314,8 @@ To name a few: - Oh yeah and full browser support: [WebCodecs](https://caniuse.com/webcodecs) - [WebTransport](https://caniuse.com/webtransport) ## So yeah... - -Written by [@kixelated](https://github.com/kixelated). Hit me up on [Discord](https://discord.moq.dev) if you want to help! Tune in for next week's episode: **Replacing HLS/DASH** and then **Replacing RTMP**. -![@kixelated](/blog/avatar.png) \ No newline at end of file + diff --git a/src/pages/blog/tls-and-quic.mdx b/src/pages/blog/tls-and-quic.mdx index 971bd8a..23150e8 100644 --- a/src/pages/blog/tls-and-quic.mdx +++ b/src/pages/blog/tls-and-quic.mdx @@ -7,6 +7,8 @@ cover: "/blog/tls-and-quic/warning.png" date: 2025-07-28 --- +import Author from "@/components/author.astro"; + # TLS and QUIC: A Masochist's Guide I hope you're having a great day. @@ -305,5 +307,4 @@ Please Mr Google, add support for custom root CAs already, it should be like a s Want to commiserate about TLS pain? Join the [MoQ Discord](https://discord.moq.dev) or even the [rustls Discord](https://discord.gg/MCSB76RU96). -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/to-wasm.mdx b/src/pages/blog/to-wasm.mdx index 411bd3b..d89e99e 100644 --- a/src/pages/blog/to-wasm.mdx +++ b/src/pages/blog/to-wasm.mdx @@ -7,6 +7,8 @@ cover: "/blog/to-wasm/duck.jpeg" date: 2024-10-24 --- +import Author from "@/components/author.astro"; + # To WASM, or not to WASM I'm losing sleep over whether the web client should be written in Rust or TypeScript. @@ -171,4 +173,4 @@ I haven't bothered to code that feature yet. So instead [join the Discord](https://discord.moq.dev). You already know what to type. -![@kixelated](/blog/avatar.png) \ No newline at end of file + diff --git a/src/pages/blog/transfork.mdx b/src/pages/blog/transfork.mdx index 5350d85..1ddf2f0 100644 --- a/src/pages/blog/transfork.mdx +++ b/src/pages/blog/transfork.mdx @@ -7,6 +7,8 @@ cover: "/blog/transfork/fork.png" date: 2024-10-08 --- +import Author from "@/components/author.astro"; + # Fork The IETF process is a long burn. @@ -105,4 +107,4 @@ Use the tech that is available today (ex. WebTransport + WebCodecs) instead of a You can always hit [me](https://github.com/kixelated) up on [Discord](https://discord.moq.dev) if you want to use MoQ and crave more advice. I can't promise that it will be good advice though. -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/update-00.mdx b/src/pages/blog/update-00.mdx index 0bdd94d..8971b69 100644 --- a/src/pages/blog/update-00.mdx +++ b/src/pages/blog/update-00.mdx @@ -7,6 +7,8 @@ cover: "/blog/update-00/bbb.png" date: 2026-06-25 --- +import Author from "@/components/author.astro"; + # Update 00 sup nerds. @@ -238,5 +240,4 @@ And finally my favorite one, but it deserves its own blog post later: I hope you enjoyed this low-energy update. Super low. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/update-01.mdx b/src/pages/blog/update-01.mdx index 896ec38..ece0f3c 100644 --- a/src/pages/blog/update-01.mdx +++ b/src/pages/blog/update-01.mdx @@ -7,6 +7,8 @@ cover: "/blog/moq-onion/karp.png" date: 2026-07-31 --- +import Author from "@/components/author.astro"; + # Update 01 sup nerds. @@ -125,5 +127,4 @@ These crates will keep evolving as they actually turn into products (and get rev IDK what else to say. Join the discord u nerd. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/webrtc-is-the-problem.mdx b/src/pages/blog/webrtc-is-the-problem.mdx index bbfec53..5393eb4 100644 --- a/src/pages/blog/webrtc-is-the-problem.mdx +++ b/src/pages/blog/webrtc-is-the-problem.mdx @@ -7,6 +7,8 @@ cover: "/blog/webrtc-is-the-problem/rtt.png" date: 2026-05-06 --- +import Author from "@/components/author.astro"; + # OpenAI's WebRTC Problem OpenAI [posted a technical blog](https://openai.com/index/delivering-low-latency-voice-ai-at-scale/) a few days ago. @@ -381,5 +383,4 @@ I'm cool. You won't regret it. Probably. -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/blog/you-dont-need-it.mdx b/src/pages/blog/you-dont-need-it.mdx index c6bf70c..b62b206 100644 --- a/src/pages/blog/you-dont-need-it.mdx +++ b/src/pages/blog/you-dont-need-it.mdx @@ -7,6 +7,8 @@ cover: "/blog/you-dont-need-it/sponge.jpg" date: 2025-12-22 --- +import Author from "@/components/author.astro"; + # You Don't Need It MoQ is a neato new live media protocol. It's backed by a bunch of companies, [some big](https://blog.cloudflare.com/moq/) and [some small](https://www.nanocosmos.net/blog/media-over-quic-moq/). @@ -207,6 +209,4 @@ Just make sure to read the `#rules` first. ![guest271314](/blog/you-dont-need-it/guest3-long.png) - -Written by [@kixelated](https://github.com/kixelated). -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/index.mdx b/src/pages/index.mdx index ba9a82b..47ab295 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -3,6 +3,7 @@ layout: "@/layouts/global.astro" --- import Feature from "@/components/feature.astro"; +import Author from "@/components/author.astro";
Media over QUIC Logo @@ -57,4 +58,4 @@ Contributions are welcome, of course. But also feel free to just yoink the code, fork it, and make it your own. If you're using some flavor of MoQ in the wild, or would like some help/advice, I'd love to hear about it: `me@kixel.me` -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/issues.mdx b/src/pages/issues.mdx index 6dc6850..2b0ca1b 100644 --- a/src/pages/issues.mdx +++ b/src/pages/issues.mdx @@ -3,6 +3,8 @@ layout: "@/layouts/global.astro" title: Issues --- +import Author from "@/components/author.astro"; + # Issues Yeah, so there's a lot of work to do. @@ -50,4 +52,4 @@ Before we give into despair, here's what does work: And of course, there's a million other things. Hit me up on [Discord](https://discord.moq.dev) if you want to volunteer your time or monies to help make these a reality. -![@kixelated](/blog/avatar.png) + diff --git a/src/pages/source.mdx b/src/pages/source.mdx index d55a3f2..4b57338 100644 --- a/src/pages/source.mdx +++ b/src/pages/source.mdx @@ -3,6 +3,8 @@ layout: "@/layouts/global.astro" title: Source --- +import Author from "@/components/author.astro"; + # Open Source Everything is open source and broken into two repositories: @@ -64,4 +66,4 @@ If you do end up using MoQ for your project, let me know! I will never get tired of DMs. `@kixelated` on Discord. -![@kixelated](/blog/avatar.png) + From 23dc5a3e6e75c2a8cf8388ff6f0e7a94c7d657ce Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Sun, 13 Sep 2026 16:27:17 -0700 Subject: [PATCH 2/5] Add a community section to the nav with live GitHub and Discord counts GitHub and Discord move below a divider in the sidebar, each with a live count underneath: stars from the GitHub API and members from the Discord invite API, fetched in the browser and cached in localStorage for an hour. The personal social links from the sign-off join them as a row of small icons, sharing one list in src/socials.ts. The repeated nav markup is now a NavLink component, and pro.svg is renamed pro-word.svg to match the other word images. Use Cases on the home page become a Feature list with an icon each. The four use-case icons are placeholders, same as the social icons, until hand-drawn versions replace them. Co-Authored-By: Claude Opus 5 --- public/home/use-case/conferencing.svg | 1 + public/home/use-case/contribution.svg | 1 + public/home/use-case/distribution.svg | 1 + public/home/use-case/robotics.svg | 1 + public/layout/{pro.svg => pro-word.svg} | 0 src/components/author.astro | 10 +--- src/components/feature.astro | 30 ++++++---- src/components/nav-link.astro | 22 ++++++++ src/layouts/global.astro | 73 ++++++++++++------------ src/pages/index.mdx | 11 ++-- src/socials.ts | 11 ++++ src/stats.ts | 75 +++++++++++++++++++++++++ 12 files changed, 177 insertions(+), 59 deletions(-) create mode 100644 public/home/use-case/conferencing.svg create mode 100644 public/home/use-case/contribution.svg create mode 100644 public/home/use-case/distribution.svg create mode 100644 public/home/use-case/robotics.svg rename public/layout/{pro.svg => pro-word.svg} (100%) create mode 100644 src/components/nav-link.astro create mode 100644 src/socials.ts create mode 100644 src/stats.ts diff --git a/public/home/use-case/conferencing.svg b/public/home/use-case/conferencing.svg new file mode 100644 index 0000000..0fd3bbe --- /dev/null +++ b/public/home/use-case/conferencing.svg @@ -0,0 +1 @@ + diff --git a/public/home/use-case/contribution.svg b/public/home/use-case/contribution.svg new file mode 100644 index 0000000..e7886c8 --- /dev/null +++ b/public/home/use-case/contribution.svg @@ -0,0 +1 @@ + diff --git a/public/home/use-case/distribution.svg b/public/home/use-case/distribution.svg new file mode 100644 index 0000000..2766e03 --- /dev/null +++ b/public/home/use-case/distribution.svg @@ -0,0 +1 @@ + diff --git a/public/home/use-case/robotics.svg b/public/home/use-case/robotics.svg new file mode 100644 index 0000000..0873276 --- /dev/null +++ b/public/home/use-case/robotics.svg @@ -0,0 +1 @@ + diff --git a/public/layout/pro.svg b/public/layout/pro-word.svg similarity index 100% rename from public/layout/pro.svg rename to public/layout/pro-word.svg diff --git a/src/components/author.astro b/src/components/author.astro index 60f95ad..1a02733 100644 --- a/src/components/author.astro +++ b/src/components/author.astro @@ -1,14 +1,6 @@ --- // The sign-off at the bottom of every post: avatar plus wherever you can find me. -// The icons in public/social/ are placeholders waiting on hand-drawn versions, -// same as the ones in public/layout/. -const socials = [ - { name: "Email", icon: "email", href: "mailto:me@kixel.me" }, - { name: "X", icon: "x", href: "https://x.com/kixelated" }, - { name: "Bluesky", icon: "bluesky", href: "https://bsky.app/profile/kixel.me" }, - { name: "LinkedIn", icon: "linkedin", href: "https://www.linkedin.com/in/luke-curley-635a457/" }, - { name: "Discord", icon: "discord", href: "https://discord.moq.dev" }, -]; +import { socials } from "@/socials"; ---