Files
buildmymcpserver/apps/web/public/videos/hero-poster.jpg

4 lines
33 KiB
Plaintext
Raw Normal View History

feat(web): Remotion hero video — Section 2 (prompt → server → connect) New @bmm/video workspace at remotion/. Renders an 8s 1920×1080 H.264 + WebM + JPG poster sequence that visualises the three-step "How it works" pitch literally: - Beat 1 (0-2s): "Search our Notion workspace" word-by-word entrance with spring-in from below + brief indigo under-glow + monospace prompt.txt label. Blinking cursor bridges the loop seam. - Beat 2 (2-5s): each prompt word detonates into ~9 particles per word; particles drift, then magnetically converge onto target slots along a server schematic that strokes itself on. Scan-line sweep + corner labels (mcp-notion, OAuth 2.1, search_pages, get_page_content) sell that this is a real artefact, not a placeholder. - Beat 3 (5-8s): Claude Desktop client panel slides in from the right; a Bézier wire animates between server and client; three data-packet dots travel along the wire; 200-OK tag pops; green live-dot pulses on the server. Last 12 frames fade to black so frame 239 ≈ frame 0 and browser <video loop> has no visible seam. Brand palette is hard-coded in lib/colors.ts to match globals.css — keeps the Remotion bundle self-contained (no Tailwind import needed). springIn / softSpring / clampLerp / rand helpers in lib/easings.ts power the motion vocabulary. Concurrency=1 + yuv420p in the config gives a deterministic render that plays on every <video> tag. File sizes: hero.mp4 449 KB, hero.webm 258 KB, hero-poster.jpg 33 KB — all well under the 3 MB / 250 KB ceilings. Section 2 ("How it works") now opens with the video in a border-bordered aspect-video panel between the heading and the three existing cards. autoPlay+muted+loop+playsInline satisfies every mobile autoplay policy; motion-reduce:hidden swaps in the static poster for prefers-reduced-motion users. Scripts: - pnpm --filter @bmm/video render:all (mp4 + webm + poster) - pnpm --filter @bmm/video to-web (copy to apps/web/public/videos/) - pnpm --filter @bmm/video build (both, end-to-end) `to-web` is the script name because `publish` collides with pnpm's built-in npm-publish command which refused to run with an unclean tree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:57:08 +02:00
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>JFIF<00><><01>ICC_PROFILE<01>0mntrRGB XYZ <07>acsp<00><><00>- desc<00>$rXYZgXYZ(bXYZ<wtptPrTRCd(gTRCd(bTRCd(cprt<01><mluc enUSsRGBXYZ o<>8<><03>XYZ b<><00><><18>XYZ $<24><0F><00><>XYZ <00><><00>-paraff<00><> Y<13>
[mluc enUS Google Inc. 2016<><36>C  !"$"$<1E><>C<1E><>8<07>"<01><><02><>O
!1AQaq<61>"#2<><32>Ur<55><72><EFBFBD>367Bbtu<74><75>5CRs<52><73><EFBFBD><EFBFBD>d<><64>у<EFBFBD><D183><EFBFBD><EFBFBD><EFBFBD><EFBFBD><01><><11><> ?<00> '<27><02>'<27><02>'<27><02>'<27><02>'<27><02>'<27><02>'<27><02>'<27><02>'<27><02>y/<2F>y/<2F>y/<2F>y<>@<02><>Py<>@<02><>Py<>@<02><>Py<>@<02><>Py<>@<02><>Py/<2F>y/<2F>y/<2F>'<27><02>'<27><02>'<27><02>'<27><02>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>'<27><02>'<27><02>'<27><02>'<27><02>'<27><02>'<27><02>'<27><>/<2F><>'<27><>/<2F><>$<24><> 8<>PNo<00><><EFBFBD>$<24><> 8<>PNo<00><><EFBFBD>$<24><> 8<>PNo<00><><EFBFBD>$<24><> 8<>PNo<00><><EFBFBD>$<24><> 8<>Py<>@<02><>Py<>@<02><>Py/<2F>y/<2F>x/<2F>'<27><02>'<27><>/<2F><>'<27><>/<2F><>'<27><>/<2F><>Yx<59><78>m<><6D>P^/0<00><><EFBFBD>%<25><> y<><79>^/0<00><><EFBFBD>%<25><> y<><79>^/0<00><><EFBFBD>%<25><> y<><79>^/0<00><><EFBFBD>Yx<59><78>m<><6D>Px<><78><02><><EFBFBD>x<><78><02><><EFBFBD>x<><78><02><><EFBFBD>x/<2F>'<27><02>'<27><02>'<27><>/<2F><>'<27><>/<2F><>$<24><> 8<>PNo<00><><EFBFBD>Y9<59>@Al<41><6C>P<05><><EFBFBD><16>/Y-<2D>@Al<41><6C>P<05><><EFBFBD><16>/Y-<2D>@Al<41><6C>P<05><><EFBFBD><16>/Y-<2D>@Al<41><6C>P<05><><EFBFBD><16>/Y-<2D>@Al<41><6C>P<05><><EFBFBD><16>/Y9<59>@Al<41><6C>PNo<00><><EFBFBD>$<24><> 8<>Py<>@<02><>Py<>@<02><>Py/<2F>x/<2F>x/<2F>x/<2F>x<><78><02><><EFBFBD>x<><78><02><><EFBFBD>^/0<00><><EFBFBD>%<25><> y<><79><05><><EFBFBD>@<16>o5Yl<59>ϔm<><6D>~P<05><><EFBFBD>@<16>o5Yx<59><78>m<><6D>P<05><><EFBFBD>@<16>o5Yx<59><78>m<><6D>P<05><><EFBFBD>@<16>o5Yx<59><78>m<><6D>P<05><><EFBFBD>@<16>o5Yl<59>ϔm<><6D>~P<05><><EFBFBD>@<16>o5%<25><> y<><79>^/0<00><><EFBFBD>'<27><>/<2F><>'<27><>/<2F><>'<27><02>'<27><02>'
<EFBFBD>_m<EFBFBD><EFBFBD>s<EFBFBD><EFBFBD><EFBFBD>o7<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾwSWWS+<2B>y<EFBFBD>o7+o<>m<EFBFBD><6D>R[x<><78> <0A><><EFBFBD>rzYѻo<19><>m<EFBFBD><6D>Z<EFBFBD><5A>]O<><4F>t<EFBFBD><74><EFBFBD><EFBFBD>^p<>e1<65><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B>z<EFBFBD><7A>/T<>ݧS<DDA7><53>]<5D><>ٕ<EFBFBD><D995>t<EFBFBD>mL-<2D><17><><EFBFBD>r]<5D>^,<2C><>6<EFBFBD><36>}g<>~<7E><><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD>k<EFBFBD><6B><EFBFBD><<3C><><EFBFBD><EFBFBD>ev<65>{8<><38><EFBFBD>c<EFBFBD><63><EFBFBD><_ժ<5F>Y-<2D>O<EFBFBD>Al<41><6C>~P<05><><EFBFBD><EFBFBD><16>/<17>Y-<2D>@Al<41><6C>P<05><><EFBFBD><16>/$<24><> 8<>Py<>@<02><>Py<>@<02><>Px/<2F>x/<2F>x<><78><02><><EFBFBD>x<><78><02><><EFBFBD>^/0<00><><EFBFBD>Yl<59>ϔm<><6D>P<05><><EFBFBD>@<16>o5Yl<59><6C>[m<><6D>5Yl<59><6C><EFBFBD>@<16>o6<6F>P<05><>̼X<CCBC>-<2D><>m<EFBFBD><6D><6F>ww<7F><77>˷<EFBFBD><CBB7><EFBFBD>GSe<53><65><1C><>Jc<4A><63>X<EFBFBD>q<EFBFBD><71>~<7E>Kń<>e<EFBFBD>^,@<16>o6<6F>kn<6B><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><15>=<3D><>{gSmֶ<6D>hL<68>o<><6F>e<><65>y<EFBFBD>9<EFBFBD><39><EFBFBD>??3<>y<EFBFBD><79><EFBFBD>]鿨<><E9BFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><53><EFBFBD>0<EFBFBD><30>q<EFBFBD>_ }/~6<>Ϸ.><3E>{<7B><><EFBFBD><1F><><EFBFBD>w=K<>n<EFBFBD><6E><EFBFBD>V<EFBFBD><56><EFBFBD>Z<EFBFBD><5A><EFBFBD>j_<6A><5F><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD>3<EFBFBD>.<2E><><42>ֺ<EFBFBD>]+ <0C><><EFBFBD><EFBFBD><EFBFBD>;<3B>/<<3C>c<>>|<7C><>^X m<><6D>y<EFBFBD>Yl<59><6C>ň<02>m<EFBFBD><6D>m@[,<2C><>b<00><>m<EFBFBD><6D>Pl<>I<EFBFBD><1F>><3E>t<1E>պS<7F>l<EFBFBD><6C><EFBFBD><1A>۫<EFBFBD><DBAB><EFBFBD>qx<71><78><EFBFBD><EFBFBD>>~~<1A><><EFBFBD>~<7E><><EFBFBD>m<><6D>t<EFBFBD><74><EFBFBD>z~<7E><>{u<><75>ۜ<EFBFBD><DB9C>՟<EFBFBD><D59F>6s<36>~<7E>e<>xYl<59><6C>ň<02>m<EFBFBD><6D>m@~<7E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD>W<1C>p<EFBFBD>..X<><58>K<EFBFBD><4B>>6<><36><03><>6<EFBFBD>-<2D>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD>?<3F>u4<75>so.c<><63><EFBFBD><EFBFBD><EFBFBD>/>~<7E><><EFBFBD><EFBFBD>@Yl<59><6C>ň<02>m<EFBFBD><6D>m@[,<2C><>b<00><>m<EFBFBD><6D>P<05><>,<2C>X<EFBFBD>-<2D><>m<EFBFBD><6D>e<><65>/ m<><6D>y<EFBFBD><79><EFBFBD><EFBFBD>k<EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:x<><78><EFBFBD>cl<63>~7<><37><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>9<EFBFBD><39>_<EFBFBD>k<EFBFBD><6B><EFBFBD>you&<26><1A><>L<<3C>}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><<3C>S<EFBFBD><53><<3C><><EFBFBD><EFBFBD>o<I<>?<3F>[/2<>b<00><>y<EFBFBD><79>P<05><>̼X<CCBC>-<2D><>m<EFBFBD><6D>e<><65>/[m<><6D><EFBFBD>@[/3<>@<16>o7<6F>@^/1[y<><79>e<><65><05><><EFBFBD><EFBFBD>@ x<><78><02>o4<00>/0<00>o4<00>/0<00>o4<00> <0B><00> <0B><00>@ <0B><00>o<00>/<00><><EFBFBD>,<2C><>@No[8<>Td<><64><05><><EFBFBD>@Ko<13>[,<2C>_<EFBFBD>d<><64>>A<05><><EFBFBD><EFBFBD>@Ko<13><16>/<17>@KosA<05><>ŜTd<><64>'4[,<2C>Y<EFBFBD>@KosA<05><>ŜTd<><64>'4[,<2C>Y<EFBFBD>@KosA<05><>ŜTd<><64>'4[,<2C>Y<EFBFBD>@KosA<05><>ŜTd<><64>'4[,<2C>Y<EFBFBD>@KosA<05><>ŜTd<><64>'4[,<2C>Y<EFBFBD>@KosA<05><>ŜTd<><64><<3C>Al<41><6C>|Td<><64>>A<05><><EFBFBD><EFBFBD>@Ko<13>[8<>Td<><64><05><><EFBFBD>@No[8<>T<00><><EFBFBD>,<2C><>@ <09><> <0B><>@ <09><00> <09><00>@ <09>'<27><>/<2F><>'<27><>/<2F><>%<25><> y<><79><05><><EFBFBD>@<16>o5Yx<59><78>m<><6D>P<05><><EFBFBD><EFBFBD>@<16>o7<6F>@[/3<>@<16>o7<6F>@[/2<>P<05><>ͼ<EFBFBD>e<><65>/ m<><6D>y<EFBFBD>Yl<59><6C>ň<02>m<EFBFBD><6D>m@[/2<>b<00><>y<EFBFBD><79>P<05><>,<2C>X<EFBFBD>-<2D><>m<EFBFBD><6D>e<><65>/ m<><6D>y<EFBFBD>Yl<59><6C>ň<02>m<EFBFBD><6D>m@[,<2C><>b<00><>m<EFBFBD><6D>P<05><>,<2C>X<EFBFBD>-<2D><>m<EFBFBD><6D>e<><65>/ m<><6D>y<EFBFBD>Yl<59><6C>ň<02>m<EFBFBD><6D>m@[/2<>b<00><>y<EFBFBD><79>P<05><>̼Tm<><6D>o5Yl<59><6C>[m<><6D>5Yl<59><6C>[m<>ߔe<><65><05><><EFBFBD>@[/3<>[m<><6D><00><><EFBFBD>-<2D><>@ <09><> <0B><>@ <09><> <0B><>@<02>'<27><02>'<27><02>'<27><>/<2F><>'<27><>/<2F><>$<24><> 8<>P<05><><EFBFBD><16>/Y-<2D>@Al<41><6C>P<05><><EFBFBD><EFBFBD><16>/<17>Y-<2D>O<EFBFBD>Al<41><6C>~P<05><><EFBFBD><EFBFBD>A<05><><EFBFBD><EFBFBD>P<05><><EFBFBD><EFBFBD>A<05><><EFBFBD><EFBFBD>P<05><>Ĝ<EFBFBD>Al<41><6C>gY-<2D>I<EFBFBD><16>/qP<05><>Ĝ<EFBFBD>Al<41><6C>gY-<2D>I<EFBFBD><16>/qP<05><>Ĝ<EFBFBD>Al<41><6C>gY-<2D>I<EFBFBD><16>/qP<05><>Ĝ<EFBFBD>Al<41><6C>gY-<2D>O4[,<2C>_Y-<2D>O4[,<2C>_Y-<2D>O<EFBFBD>Al<41><6C>~P<05><><EFBFBD><EFBFBD><16>/<17>Y-<2D>@Al<41><6C>P<05><><EFBFBD><16>/$<24><> 8<>Py<>@<02><>Py<>@<02><>Py/<2F>'<27><02>'<27><02>'<27><>/<2F><>'<27><>/<2F><>%<25><> y<><79><05><><EFBFBD><EFBFBD>@<16>o7<6F>Yx<59><78>m<><6D>P<05><><EFBFBD><EFBFBD>P<05><><EFBFBD><EFBFBD>P<05><><EFBFBD><EFBFBD>P<05><><EFBFBD><EFBFBD>P<05><>̼Tm<><6D>o5Yl<59><6C><EFBFBD>@<16>o6<6F>P<05><>̼X<CCBC>-<2D><>m<EFBFBD><6D>e<><65>/ m<><6D>y<EFBFBD>Yl<59><6C>ň<02>m<EFBFBD><6D>m@[/2<>b<00><>y<EFBFBD><79>P<05><>̼X<CCBC>-<2D><>m<EFBFBD><6D>e<><65>/ m<><6D>y<EFBFBD>Yl<59><6C>ň<02>m<EFBFBD><6D>m@[/2<>P<05><>ͼ<EFBFBD>e<><65>/[m<><6D><EFBFBD>@[/3<>@<16>o7<6F>@[/3<>@<16>o7<6F>@^/1[y<><79>e<><65>>P<05><><EFBFBD><EFBFBD>@ x<><78><02>o4<00>/0<00>o4<00>/0<00>o4<00> <0B><00> <0B><00>@ <0B><00>o<00>/<00>o<00>/<00><><EFBFBD>,<2C><>@No[8<>Td<><64><<3C>Al<41><6C>|Td<><64><05><><EFBFBD>@Ko<13>[,<2C>_<EFBFBD>d<><64>>A<05><><EFBFBD><EFBFBD>@Ko<13><16>/<17>@Ko<13><16>/<17>@Ko<13><16>/<17>@Ko<13><16>/<17>@Ko<13><16>/<17>@Ko<13><16>/<17>@Ko<13><16>/<17>@Ko<13>[,<2C>_<EFBFBD>d<><64>>A<05><><EFBFBD><EFBFBD>@Ko[,<2C>Td<><64><05><><EFBFBD><EFBFBD>P<05><><EFBFBD><16>/$<24><> 8<>PNo<00>/<00>o<00>/<00>@ <0B> <09><00>@ <09><00>@ <09><> <0B><>@ <09><> <0B><>@ x<><78><02>o4e<><65>>P<05><><EFBFBD><EFBFBD>@[/3<>[m<>ߔe<><65><05><><EFBFBD>@[/3<>@<16>o7<6F>@[/3<>@<16>o7<6F>@[/2<>P<05><>ͼ<EFBFBD>e<><65>/[m<><6D><EFBFBD>@[/2<>P<05><>ͼ<EFBFBD>e<><65>/[m<><6D><EFBFBD>@[/2<>P<05><>ͼ<EFBFBD>e<><65>/[m<><6D><EFBFBD>@[/2<>P<05><>ͼ<EFBFBD>e<><65><Tm<><6D>|<7C>e<><65><Tm<><6D>|<7C>e<><65><05><><EFBFBD>@[/3<>[m<>ߔe<><65>>P<05><><EFBFBD><EFBFBD>@ x<><78><02>o4<00>/0<00>o4<00>/0<00>o4<00> <0B><00> <0B>