From 7cf1b4d16ea99ead76740ae3c25bed95e9232a37 Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Mon, 14 Oct 2024 00:16:33 -0400 Subject: [PATCH] OG image generation Took 54 minutes --- bun.lockb | Bin 269641 -> 277416 bytes config.json | 1 + package.json | 1 + src/app/[[...slug]]/page.tsx | 2 ++ src/app/api/og/route.tsx | 30 ++++++++++++++++++++++++++++++ src/app/types/config.ts | 5 +++++ src/components/embed.tsx | 19 ++++++++++++++++++- 7 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/app/api/og/route.tsx diff --git a/bun.lockb b/bun.lockb index 6b9bebd0f7cb0eacdec48bc410fe825d90dd86f6..14f8c8d2333462253d720d718d599cf8e378c0e2 100644 GIT binary patch delta 53070 zcmeFacUV5tu||!W zXpFsgP4Y$2VD9_wnS+?me97%+}LnTB8gHg+zw;8yaG|o8Dw941=qXG&~K- zib8`T!-owpnZ9zC6^&H+5n;We*>E4|xnVa?)i({29bgYB!y?^!_X`g;6-1@1HwL_o ziN*Lq&w7ENUJlmmQShLk9wCUyQt0F#LDCVg%rd{TvUfzF5p_#wP z-y1=rd#528r-S-ZEuXDr9_dSoylU8j28X)!4TOE6d1 zhyOs**G7t;nqRgO2T3ntT%>(dNCvlL0VxYWM=WgiT_8B`)*o5-MC>?$jG3CV(g zQ<1$?LFve!>sf*r(BX-YY-d#=lL=MY;~`zpl06uckQq_>;dF&t+ORCxpCOQJwr5E2 zklu)1e`C>@Of`zKn8{uY5?!|URd#`pY-UhMP>;c|_be{;1igw=K3nY)QmYQh+K2WE z>lXs6i6u=Y_-&7Xv!^d-GGRpQ$spLkC`c~8A(%R0Aw5lP^(Rh+Z9`P9UcqF-EV6sK$ynWj z#5}Q|R&pC8YkOT$2BA1~%oF=~lw&utL1%D&ht9oY1SH-08ItaWp&i<}SCRD$89D?V zGU?+jWo?zJnoNkDJs0FxkSk$R1ae(<>C;{4_-DU{A6Cc?HB2T<9lJ9meehR$AxMmo z{f)aE-m8!txT0RNUK1qq?|Vx993;Yu2`Lly1W1m}SrnwRo4sX&$I&o5*A1OuXU6%+ ziaYp9`v;JiTlPplIX36YNO=`}7Vy2nvp#?5bi4#4C!~KZcGPCF|AGRnKtl$`(VmP3 z*wdgM;e!SsOi|D|iPqJYJ&qX`Hn>M9Z0pEq=Z0kd9OTo{F_0Y1-CxTFS3**sQCB)1 z4VfRh0H4){#P{`N1!p1I!+nrBAUD;QYkmoIdfcN&_>cjEO{TtRfT3-xB2vDg>|rtJ z>~U>KPJ>EH9&04)acM01P0%@X^B`^XcpMUxeIeOUTV;>~70{7BO{HVlXa|K2=xw@* zh~)tvWR|>RRy&rNV_E%qx%CVg+Alo9WLnWoZd!<_&G1C6oBvuij!EfQ5RS?C=LO-I zBaQ{(7@9v%e8*(}G?@|qw6oc<0v#*w|KaTZugM*co^$it)5&Bi1u1Mua9PAa7KCgI ziA~Aw4#{Ph1rpJ=+fa~`tUxzummZQs_5_mr)2?z^U4mo-J0J@~whxj+dI6I5Rm^g0 zaO|Hp$HqAzBx*1wyD7M*oSh9JIms$PGD7(jZ-Qh44|_=d93<@$A=$ukNKUTE(4avW zYE$t(a#f{+WQXpDNykn=V%6E~Yh=Pc8IlnQhvY`oT1hWRI#3jn%O)cv9rzVXkPY2b z@)RT|TpN=7N!8oZkf&p0;1i;xePQs7 zs}rOv?ZGpilSWAUE70?CKRk#8E8YOfh6<0A0nZ4@06W=aPd-3rkKV`1)%*&Qk;-6~ zj*drp?t3F3$@l0NiImCo63CxMzYm>}{Ur{OK;8DppuypTFv{0Q$p*iHWF)4KmObdz zs~=8gIN^e)gHy-IhI$0`59t>c6OsU)XQj}PD7QhqgH4m6GjeuFI^sC841>-NtQseW z;%7)3$0Q=CZ#X?&2!aN8;TfmQIdGhMe;4w<8bZfVG@T&Vz!!#~tI>dC2s~iOp-70A zJ&1#3=)#ngV}^$a=o}h9NZJQZlS8r-l0&cpk{uYYCuc64!!fXqnNV0So29g^+#I>{ zWQN4Tw7;A!<#b3!`4S}OP0_h(ePT!$oF#}zHppxVav1l*&IS5%NCwNX^Vp&DJUn)u zwBsNS#!+ZcSpPvmy-fP~EY^$>^QBG5eEn{ginfdk<$y(~qKl!^6&;e})O3-QwIH)V zzYa;4!g>z~AA||Qqj*riNYkXnk`IZD7!(3NsLxOiuc_`5xwTY*gsJBfMuwkjnTPk~7H@k`7c*^1?FNr*9zXKvD3VY55>IwX-N$e1+^^zmTB= z(7wq9I`h*jnH`eldxnHWxP@hoG^JAo-_OzuWGiIbx=Pl&O34Vfe&Ic^79hj=hYdEZ zS}pTKA_oo$85C{m5gOF5FWPCpM*59sJvYR?_qbVd&Cgsb12+zm{qa~Q{fmUoKs!$3 zJ)mRkZ1%xH5kbK?N_SW<8)}RUPRL%Uun6R9T@HTdjV4nG=m$2)nf^6&+QmX=LypH9 zj!-Z*q!OEDeLcel8Bdcdp<7`W*)J#(`?cu?$`#?}v=oVg$e0Mp3bSvOGdvw6r$A#k z!dY4slCy9J9HQMqNY2LbkX#`(cF6qOkQ}MoyX6Y;*(0YwuU(Sw9UjpW?VIvLH#Vm( zNYJyBJEiOuKFAHvAffT9K&0YB_R0{}1y2Wdf#*^@0X{cm7wCB*i|vmCtHq6KGQMT zLnrVYl4r`HJCL00J0NMl0+Jn?3&}Y#5|RxKgk-rnCnWC;o#jgI!p$Ks5@rzjAb(ap z$a+%t_%?J#U@0U$pQ7XlNH$a(l5?XRBzu?#J)^xdBpdwcwB$c*m-_NEQci=+jr`iS zvvN#l!GIxt44DhE#yMHhEJ!-|QRxZa%7#BcvIlRJL?|Oe2AfQf{evR#Mgx2vCL%K~W)Ycq$1=RKzk!7MKLd2BN={@<&Kc(r+Od+Jle`?ea^~K2n!G znsZrpq}UZ{=K{%c{qgppe^}(;K9S)A+%fwjL;4R58HDvWK^4GTEj|i_^o3p!1%e>y zKzCG}3$n;n*-!>ZEd)s4@{W9<9W}HZEyG-`Z|2_&4lw_31#gk7sk!<4m#T9 zdC6yf^~Vk7J#61Ct8U ztsga$sU5nNUO!ycQ%?r7C7sDs9ZWhs&dbAkA6heLPI}x(PiH5Ssiu*2xQvInpPpRS z-@HKgD(7##ft;_6Y68l6n2YL(<^0VddNOiWTTCV&tQYHY%&cb;&DC_T%Kp~=*p_6B%#}Q>>!Gng20Z}Uf1t5BiyjB9Hs%XMmVwbU zkI+xv<4h%b+ui zG0>_)Ge+6GL67$Gx7-9*PmlHTwpPJ5#unr#MnaPvWqa%O=$iiQOHF@k#e6a+14C%- z1&!gi>H+A%W@z<{7BDoHbXeYB>#_TN^ki>;^CI2L$KQGz9POQrnYIEOMe5*LpFra< zr#A++QUR&SVeSi!L*k^H(at$&TvXE6;@IKYOJ`$21u4zRh}#Be?3Knk&F}O?KYwfW zuN*!wMgyR!$pvkl($X98dkBrK8q>vE9ors<+GNc7C}?ces>fCFuH|Nr$1N^Pgg)vQ#pN=uK9EDa-PbueZ&aHdZ_P5k6Vlq|KeGmFL zGXXP;Zr+T&qqe{Kf$mku-`c#W97yaLXePa~DJY5nBCJt!^>d zRg-S6?BQ|_8W%BU)@N6ue(~$lE}gL-b6R~lcLj1;mIX0tsh3gK`YUp4As52~A3Btf z(^^i+Y0x;auwHg}Izg$a`&ReX%q8`hdVW^FlCozQbo6W$v|ytib0rVWxs+bBzMr*r zDaSlL?B`(_1Fa?(ob@D9)nJ@c$Li5Cl-6rD@UwO=?HCB|4)gTH2L9%UdU6AQOZhVJ zN>6h4HV5g^4gD>`(0$!~oXVo(y6<8i=W-@fAS%S*Bd$ZC)iyK^@E&NrpdreOJ)O&& zOde1&>H%(s!oJJiE=88ySh-PNQ5tp+Y_nDjT4h+uP1g%r9a#zLUkR-#w9LjNZsTS$ zb%kc^N0wiqwbFgddt2&Zau_M=T%_o$v~a3~(V>O44N`5u%l&SR?$ylSdY8H2j3r^M z3KyC|gTK{0tafN>bUe{ZXj~d{9Djut04<~8ebXwbEmrp62G`u*Y}dV7;Qod^hO^f2 z#d;GOHyzB?Y95yC7@^9#Z#i#kEu>^*Ft(P#&;}TNx{FkIBUKyOp?XRgZ|i=fnxGCN zQWj?%PbL|?n~4;cSvoFAOCBm?fk9J!L>+r z%m*>_G3MxEq&gaHaA6GfmD3w;R>y9M&7`NEQq9{k2B}8e53JuJ#YtgUSabNBOsE)I zTn!IP6KGy~Yz=SgSfo0q)_Mn;nk?8UyJ0Sd%Dj3W)^DKogl62VtmQG9{fs7opK_?CDqzZaA_qPfo;j&=@JX!#mZJlTG^F85&!_4qwTWS-8nG z^KrsH=cC6483}~1u8%VqS)*wCBlN!7j0m-OiF{?-bOWiIX(u#JJnDJd8Gx6l|B z++_khtcB2RYQ}=J41m^E_pRh@J&TkogBprpKR^>~4TqA!dUUYAd7qvb>~DR8oK~_t z?nHIq65Ypw!|`$lH118AjQjI5Xk3iAOI7l8ZZ10`!`}^BaB8u`(69nHi2FR9pj0>3 zNJY4bPNO!~Jq()kk0X5s8X|}J!@OL$2XRA^_wv5b7&jb(!#tg!bmx)7k_BG3G7cZz zkeUPoxhFk=#=^#MTLM}mJciW_rohXt-GN3Q<%B5!PdFHI-wlPvy-GT|7MiT@aGa-8 zTW&Qx@q{DA8853_3yrf;j)Dcpi#CRn9gym3q;?}^xNEVt=bpkYgdo+&NS#Nj9aGkl zXp7TH)?|YwyL$^MY1^=agIkM~QOfd1YN{;?V@E+vyOBbpaurx^b~2d;>nWXmoZzQX zk##>(95uNx3U$G+#8b8D&_YwSchI6zwFs;Pxkxcs7LRVKK}!NsGS+XAk`|ci7H{l; zvJ>->lHGiRR4=2(I84t$L2`NFNQ0>bg##t$LUnkEjSS}|o>0d^<1S|0r_G0SuYvw$ za`upOHk;}5%Ncw|*w(Du@JQU)u4nWjW%8G~(NnhckBq%T;5cgdN5=DE%xL~2;}jTk zKlxkZ+dEuJBTk%Ke{0MB?S}C`_QIw2|3UwvVa)0Dw{F}{a48L2PU63{h0Er$dU7Pr zt$pzRRrkdmYy(m~j8wM1c=u|gB9Q84q|T?ND)uv(x)|JKq&hKWeaI9VHtu|~6M(PDpt&Eia08Urmp*~JVf@ZgnYG!1*g*#Hik!oUa-=wB;ML4)_Na6S$ z>22MC6ep_j$YuE%T2(y>H`o#bC6CP;4-w&dVzj??Ik>8@H6BRJcXY29e`_TyKCT&) z@klTdnw<8$q3+j{VNp5K!C}pq2k6nm{mm=&#NjwHAg8*~HXa2n6$azB!z~vt0is9v zTh~D6qQMe!_b79ZxzPT}*jS4Xk&a?35AeWqXLPK;^$0jRitVwchxMzW@*s+H1$OQb zXe|s!xbT03R!>jb;Nv_@&K(%R^O<_`NPqJ^-OJ{0t%_}>kx_t;fTNZZ__v&4x>lq~%O#oT!Foc?=Eb4$KXo5pt84R_me3`rwi^ zQ>;8cAg`;Z6O=|QVqU68kMg&)9?4xR#oODu7O7UK8e@r@7T@pIl$xi9r9L%1X{L`e z61=FU7^8TG@#<@L&CoUO0H(qkMX%6pWlJz9kT zHcm8DS8&MSpo*1ErljdlkB==e9 z4MrQ|{~Vg9)DYDYW91nNkBkUcA80j@XFOY%S)%gH4j+`PrsT-yMStEoHKC&6%0n2- zAYxisON=v_{814enHqRldO*WtAP&>pkg8?G=_6By8?^TuFQ+Kn*osGXXdE@;Io7%c zS{-P(2R87qK7%GZgOy^LH-UFb*6cJ9Q&IOF;p2=%ccbFNL7rrT^`xFYPLtG)&oUUP zdPb4GNXe&!?2{d1-Ucc8kg)|R#?UzZSwBLPwVFdcou@c_2!QYFpf!>W;)ThtsT!YI zR>wPfeg~;$MzfWsI#RJnHPK_o`#2$iXHq=S<(MWP=<%>$#zPC8roW%$XZ;2wqlsBm z)zds(kD2UetutNDEbL`F)b!9U3O#0;pVfD+e1&0bx7Ml9IM~L!67A$%z2R-F&DmUT#Bn`q#z{kTA{Im^$Q zXQ8Y_K0>vI#<`C{#$(bpXfj3&ziE-oLpU&i9h4@IunEv=qa4N@XD}!-ZrC=gg%->H z7*BUvtHpZE96wE8tnY>RcCr2*LR+HO6n@rjOC0B5mfHu7;lt)r)x(l$sc|=O_qMh~ zirW~55&T$ap1N;kZ%dM4fu32@Et5Ms9G&Lr423Z-{_)7i#d_QZKm2$+fZ2UYleI@6v-Xa*gA7!MCg-(7r|scma+n zy%rjGXxZK!Xnmj|&e0y)&b9jca(>pgYaQ_pXyIY4zs@mX4-fD(uhZWz@zZXu(`zpE zvu0l}mk#Cy=4(%As*~kCw0Z0G_e=e>YwPuz%lxcmHppcxeMo^;Kh-1qMx5hPwHwgz zY^J=eyh;8xLY5l>jT1q>)!qq>bJS{_0bW7l?GMkYh)1Q(GCK0nrav_H8G|v#(-{hj z$pActR#j#p;03m%bu%1VbL7d!4?wG%sukNRZ*9nHhOKm~9<$0%TfSA_yUNdM-X>4K z#(cHRhK8eOytnpbn;x^;Pjla{?_KR@8L|Ubyjy9{cIY+N_-Su;>oIHmERFYYneffk z45T>3@{n^L8fT}mFIxV9R-2~=Ye1sxkF*+|s&PH+gyxAd#tFgt0-CHZV5x_t{9a?O zVnc~Ss+k^J#oO{DQh|ExNFV2Yj++qXp=Bhr7J8DOx8+-;u&={8pZ#*B!yN=}F0^`v za{;Y9ouJ@|jhaU%8ExQDpCnV@-XewD5vuS%kmd$rnFtMQ2ewC%!ifkL=7Xtj)bOx2 zg~k!UO%og9OlUZj!Rj$nsgdzJ#QPrkNl0}zc)p@~2u-@kE>$?pGag@)4Mj>t1v}&p zXn~G0TIM7A`z?Ofu16e2%{bMrfab|)Sbst)_2z6TbrkcT@1w1qk&<^ga~%)MVQ6To zf{)WNhA{<4(Qu?{qZQ1-Y989wV|vZ)ewN=r;vE!%e>}A~JQ@eB0c_zIW`I2)#gI$YFHv(*59DXkTS2?>C`$gDD$8( z5ST^vJhWd=>oI%$tWD2I61Pvh;M$@zxPC)wp%EJl?W5@##UXhg^X&)h$vg#Wt$)yCj^KE3HH|0MozOa=7>)t;;ny|2=1~m(HIvB~ zB!2(g!b6*MP2UUh7)aUN;Y1IM^N-x6ID*}c6q>T`L5dS8r*RH=4~-7x)#HLaG{5V5 z&EtNW?YbUwyr!+N$@qwo$qZQp$P3f}Gyr9cE3I?_X5NtVO@VM+%CD7!C7)`Q)v zfMM7`8K#wHy~~Mw`jivSEt%O^S$s*-b*xLH3r&?BC0%K*bV}+*WqRz7`S{HVE(7EG zlC&VFgUY9*eMf+`U>h~`E|9z^$#(;2*B#*1-S{b`Gt!|-htyrKTWwUs0G8opovlJ$&&56iFTFyb%9Ibb$7=0A7^j@x&tCLc+KxX*gHO1cSx5hag#Cf#Me`o|60$ zrT;HUyXDG`k`AwQgk`15_$QJTtpVuhT2(HsB)<+|1hxQdXdA#Qtz{2AbtR-zr7=~u}cl7?>q_T-)7DXAwb`Cjpqv`+yt16CNZ z;Vh7}&&nTvBh4KDY^oqXQ_eEERY6K7^WX;~R0@&}lv8|pB`ZKOVilFF44EBzEl6IJ zbhHj6%hy-3F(t>pxiV-4iGQZn{GlY1ZSaE)w1Z?wyFywadn-L$lp`WtUo45OohZh(=`52l6%N3mA^polyqp3(kW@T9Fjw^S>(XLRoe#io^{t}33A zwOv|(_KqqBYJSF*zN@jv&Ru=qV`5cgpe?dsv71GduPTfk%pqk344oOEmAbC-; zfF~rWno9aWaw<0=sU*uaht3B1B~!}wN_K)|epg6#xR(tH4p?7EHqcM$10fmGVURSW z9V;3Q$q-Lc`cz1k*CBaPvVl2@pReQ+NS0p#$%~Rn+baBIfwhoyU>#&W$ivM2e@W&= zJwK@W{v=ENRmSJM9(%sD-t%65vq?`nU$`Y5y`w7pl4RCB{Gfb*AGCi+MM)+fE1fc( z{^DL?{j2+Y7msPHa?(oH@De;@__LC~L2`_KS32X!P^QBV+B;EEG8be%=q&FF$*e;7 z!R@Au;wz-Xa$rF>Wl$NCgYOB+LHAdDZ6)hM(t*Y*zZE1KXa~tj(Fv0Eb%x|c$z(VD zpj{8eQ&R7pPS5!ur*Yy5Q(2Tu_ES0~eIBZGN_5{8rS!Ct)NsY8m9&pl{1>D#28IC* zZ7`&aQw9E)o;0Ua(m4%ODw>)kh2kEZLf50BIz*Cj+3^FJ56iChj zCkz#3CP+4r1(KVZ3x`li>LsCRBF_HpY8^Vkv1Au5?P)IS7)}P{n^qvfMD0|Gy;r z6s_za<(i98L|Vz=w=15K1xG=$q0x%}CzAGKlszTu8K?AdJmJt_JP67ON={S;l;kHt zvfvb@$E$qGOyK7#K0(QODxZ?&=PS7YlJzW7`HO6hL>id|2J4|S0$U-u3nfCb;67zX z$%^+YnFLAuqbi@0`Nx!=R#CW>#W^wyC0XZ%$THrxpcWmiZx&`s&V zG{Qy6{18Yw6sGikkc`*>@?3v|kl;m0!=XyXD4vr1NTpMU}hz=Lh^=|50VY!hs+IG0g~k_L-P8Pq zw;{m{cSz=W^M{f=wlsrI2Uki00#hd{Ek{L3!Piog%nKTyd*Byl;U z(f`6A2pSdvcx0>ruwhStS6a!Qe(CiZ?Z~s-KYYzri0|19&l^DUN-O_;%_d{=?`t;1 z;osM6|GsAX_chzUui5z8jkmaeU$YrE?0;Xg{rj5j-`8yazGlOY`0s1Be_yj<8u0ZS zAHn{8&GzqWwtru<{rj5j-`8yapTB0?UgSlJy;dLl`b-!5%((3r7~uMAg`D#$|GFWp zZq$$STOIMdtUoNQ5{18!Zsm2vL#a^<$q>)gKHtZAVsMOS!ixSG=o^yLoc~eM z%y#VyHqF|z(80qc7LBhKdOw{f9-qvnkJ&y#Mgxw^sY~;(v+s23^>|J5aSJL;s@*Ne zPx)#-&va_jfh?JOgcnTq>T@*j{pOW>xpdg?ck6NQOzxLnj2m1#yu^(M_jlA7v+wDu zTp~+2+`C$@@uZUpbzVNam$~BR_shD^>OEn|yYjPsdYf%n72iXR>(2cCWzVohma@^! zn&fX5e}0s`LAD9K{9)uaSOL-K1E8e_%-1vFmoaYBb*_ONZ z)<2RXM>dZIHjl_sD>7w$S*_iAm!8YJ70&dZPJYWrtvmkFugd+}uj(&*)s`@fF;uJ@veN3GjFY!coxEAD=u zy=|cv56c7&-ZD7)yi`vwtu0{SUJ;Um1EmuF{Syzr1NvczKI8 z?Xs`ml=se~fr%bF0?K{cC!b5D7n4rj8BnIr)J44;oN0ce&ws{VE?e=))%lr3{|LA@ z{8*#Voo77*mwjlus%FP6@mqequwqQPRSy>FNyA_53>&<2#IIRbx&j)22j* z9=|hmUfJ#KR&ALdJgQ&){sq&xXZ$KzjjmI^3hOfuZIsjf=!)+GlRD*jyU{XfMb$3n z&&-~<;Y63XftOsb^>}mP&J34!PPZS;JKwn2chyf%d(<;_^T|Su7X7&5#(-_ckMf{-8VO!XFdAu`IE#n?!~2zUbxf2{K1y?L*JLJSnV&UPA;vC)cE*Ms_ z9|=oY$m?9zzr z=bBXa8XuVL@Qqb%_yHfs;Eqn~-fuP5)nC1@X1;#OE4R$cxA)MfQ*VC?4A}j!{N?N! zE-a{8`FitQ*QS|ExwOpK=56b7muBCdf2iYFziyqLRT^+CeSD=~{6y>^xL2dZrj?7b z#@yMmd2`A97tI>!StrTk zyG!rNJHOrczNO34bSbB;Pp%egQhvs|50`5!Tf08@^lFz{{4hfAk@ z`N7wnE-Z8@{2=f}@sCL(-&n_#JMWo&MaS(wEVxIv2h%=gyb4K*vL?Mi!}4>ezQK zN8U}yclfI#)obb}&YwI!N_2XCJKw-ui;^-5-y!DwqTm2?V{^O+8(?lP-VHHl5$8xu z6E5K()(iy^8xCTII7K3G7znor5W0wt0O1@3;s%M?qU=Brdq~6&1R=yV5~0x`dD-y&>5(^_iEEG>jL=6YgbTEj;B4IFyG9y5wkXR}j4gqnM#Ks{Y zmWyN(6JkMh846;hSUVJi=SUD)hJjcuIt&Bxm_!nZwZa+&Vy+ED|0odaMIwm?b`S-l zL2MLZ(IDQDI7ec$aESr2CJsbw42Z4b6p6r5Al!z7*e;@ngK!=V;s%MGqU;C|dq~8O z0I^$KBM~|Vgl{Z}L@_ZIMETG;#7PnhCxW;ko{)%| z0ix+75Vu6aBoJk0f=D58M>L!a;wp)alR?}Q$s{J|Ai7Ke@j$Gd0>X0^h%E6S9*GX| zARd!QBJo66r-GO}8$|!9AfAat5)I~nC^!wo3lTOA#5)q_NW2m*(?P5eAY!M3cq2}c z2%HPTZ3c*6MDz?0&IurHkob=%I}^kn67e%ZycO3-gw6xutAj`u6Lk>z=Yx1b;)C#- z1>z)$g|k4Uh$keX7Jz6v8^j+XVK#^|3qhoS(9D`>G{@XdTqUz{4w!VBcu!`+A~0P9 z7>g#>2{4|E!DN{WCW9tA&IR+BOcEKZCNd^~nY#o`{{%3ZG_jXVgQZ{!&I6N06Mg1^ zc}M0PnQWRUFdxjCWng0GgUO+Z(_{jdgK=8`CYL5+7JzYH0p#MEpV! z`NTC6p({c7E&|~qCN2Vze-(%qBwU5pVh|@uEL;qtpm;(eYBh+aOF$GB2}?kfSpy=4 zL{ZUjDTu2iHZBEGTqKj2uogs@Wgtq5waY+wt^<)}If&At!*URhNhFadE37L(%v}$n z{|XT0MIwm?8$c9X3BpZ;tpxFo#5od`gv%-rYc_(2T?L|wI7K3G69~7}AgYPz)gYWV zgSbJ$U6fq|Vh@Sp)K=`f&;Uy-n1(AO%h!-Thh1WU|CrK<^2f|l8ArZ9= zMAP*k{6)fg5M{Q5NFfm*8g2k_mBhvkAnJ%@5)*cS=&}(+U9ol}2+y4$vTOoTUv$_6 z;xUON5)FlQGl;pnK=j`XqOnLM(O@@-f?Gf|6=7RIyd!arM04S?6~vl7AY!+IXemyS z2uuXwwhcsU5xotB^Ii})NVFAYw}aS2B7QrF_Tn0e(0w3$cYx?1Chh={e?N#9BsvMN zoghw8^l!-8+U`~A(BZr2DH4IlK)5A=h!oLDAe@hbxItowD0=|J9un~fKnxStK$xRMm4gt` zVj@M1xI-~qcpZWmA!bm-iYF8!MZjSQn@FIri#HT;qTvyUQDP~@Xpu}YMzlN%F;=Xl z7$?lfAjXRh6cfZ&iiyH{9Ac6PqL?fakDCu#R^dY^8AXm8X8uVFC$Zs#*^aH*?HhAx z%LIJ%B-3tWjn>5UtL7=9@(Ht(=y%$@-|`Y4b;-_B{w$THdmiI+uJ%5V*;R=PC(J%Z zm9@S#J6o(pR9zX&B&~fS-HiWCsj&z;Z$4=Lu)F95^J>ha4Jl_eXS#Fqh%^bXY=`C|QC)#8UA1oi6g2M(>3Lm^X?yC7nI_d4z2j{xI z-Y{1+THamjk$FYdJp8OYKACIhYghFLbxpwnHR^`X(|?1{M*rE#NBV?HWp*P35l;XA z|0xjo>KTiSWzW#TsiI_r=4bo(hrGzuMivjO`~Wa7ht3lG3>B|BP^j}GO8j&Yuez!n zKTYJqAGqo%JN|yRfZ`e`j-OmAA~~C>kt)nji4|3bjTOg_rj-VG@w)+Zjvv}8LjqS* z#qp!m)eQ!pvr-&C%sGZ$;^OxRSeBo=>Z7<828T~g@k5&YEIR&~TH*(d_z|{W6xRik zg|h)$X@rYkJa9zn9uv5_DUP3|TxT#QQ+IGI!su;KT(Gj^hr){RQ)9e(D3TvR;|DZ( z^;8_zj%l;vLcrml5&9L1>#gkgeFI%_p^D27EG&3f zE4Unr<2NeskN-J^DW~EFsImpYy+xW)3s+nrr1>oiUi@Fr7$kl&ZKC4%%?xlhQxT9) zk>aEqqzsE9eH!2uskmZDe+w|YgTdjSsW@;R;5AfnC6K-V&@Kubs^9d-j%6wV&%qUe9H;CmBYlbmaE(`7 z6{OEAZUQ(o!aulRx}dnpimL|hvKfnj7rz9do^0gl%RWmgYrye_aAhNnStx2z8Y zD#P>2umQLZio2w^hTu9Xj$a32vJucpaaWZczsuYi9Eb2HW!D60GdK>{4Ssuz9ySHi zDUx6FVLi=&Cjf_r{~02==D-Vp*JE(_$G;9>{FgDbdkTURt|c%D;KeTiv1}_~G6`J# zA`rROoPSdQj^Qgswn2I-!0R+<36h)@91S}GY@`lkMsWBiznl$@W1R&A%XR@+mRw$N zEZY@W!vrpVb&1Jt0N-M9PUPp;l~`eSV1puELGXqc1Z-ppT*Xx3V5I2`Cr@#3_-EWdhV(*!W9_fFK1k08IE1wn*B9v-0EaL@as80ahBn%9{A(++KhkWNV^{|q8y=uI zj#op)g(JF82k?Y83E&sxcrxn?a9>yl ztOqs#8-Y#Y)Nrl5Z7-5rP%XbIdkeS?+yU+a_keZCTMujiHUcYwRRF*DG#D5H*nv2J z-vpWrtU*4%9~A-cTS8-iu>ikA#p%Bj;CH!(^E*x>kl;5hbda33b|4PmCpCHleE{wt zoR+PTZVvF906u^(;0M$KY6EqEx*Kmp8)=E6E}fdz&+q0@Ce{xas#jt*aYw(xeVapaTUPtJxv2<0z5p{gX6pdadC1j za-DHqacU1@kGliGKo5Z133m#vbS~HyKvN(9s15MW&r^a2z;6`J1Ni;BkAMk{nSsMd z9|2ARr-0J{zaBXNhyVrxgMdgN#}NFm0M9TFc#AqL9>i+RE#D)V5wBu3S3JwM9jO)0 z%X9JrOo)fTBj7Rc#4IL_)JoaTq4D#;Mc_N&60i&4DQ_FVFU1K+eno5?z%TH%0!D)y z1@uL_AHbcRTMfUk$J1at0KcI(9Rv;mhk+x&QJ_DDD;zkK zi@*+mUkm9D1Oe@U4nRks6Tt7NxB(S`N&vs>!f)*K1)|_kG%y?(0c?X)XMuCT0$`z2 z4{V4?EJ5Z{U>U%@kNa9nfV(_z5A6}=K%g7IFJ1C0rXvA<1$6`v1w;cwfnh*8;4Y$m z3&~RU*MQ4N9s_tr<(c#$y!{^d0pQpF`UBmN4uUL&kdy=Xm98LwUv7IY?%1_lw%?F^ z3nT+(WNAP;zzIkXI0IH7Baj`)3FHED19^bFKt3Qp5CB{O1_FoCbQI)!;CJ97pkb6U z0M5V!Pht9i6E8rF)dK<6-cHlljlMDSV1X%{C0Qdp^Kmbr1 zs0Vxx8=f?Ii0lCHkjO)!Gw=xYJ_lZK_u_XX1Az`eN1!v%1*id!X9H~jPv8cS6Q1V+ z@&f!qo)6#)JO^F?lThhoARgekZ5qI@F1Chz0H^pzCwL562k=BQ-i9AMo(usp0-1o! zKz9_njSBAq_khKyU=FYodAoo;Kq9ag*b4Ao%)iCKU-^b2N<0|yAh;RuhqDcVfU0K>aiayI&9-1`Dtmkt6X}#(%~CuQF*n^WPCo8&FT2UEwJUu)+u>|EkgH z>O>y6OZbh~iut05i7!d`x@t7ie2KCNb#Uv-1Rbg|Upa4A1DwO0%QJx~yJwHr`ew0l zzH**&zK#RN0%MfU5#VTy1UQHDqdv~(SYQNT2e?C$?*wqvCIRCCt_7}%6#&-@+nfg^ z0CRyk0QUc^#!Ba6ng+y+8FRE;=BXlJww5agi|NwL_-j1Vjod8!!#sQ)%;%n&vVd+B zz^4gV9Di~Y6U|79tFyK27Br*ul1q?W4A5i|z%16sdASf+0L+)oka9FLKW+Ubmm;xVGw*j88Z$W;|mE{WMCY0;IkH9tH3UC!T3Gkt8ALKS*FOUfA z0k#8Mfi1vhfcbQgPO-5az%HOU^xcsAffE4lC`rIU;5gqF9!25^z(R+CL%?z1n8G)Z z?6sq}>>Yc28ek7u?i6qqI0KvmE&!*HcM_mu-vjK_W#AI<18@WQ$;KbRec&PR0JsM* z#CHJl)F~O>7r=AiCGZM(4X}I%H1rGPufRuu&VGPQ2Ff7)7V?ZEVu!(84NNa&Bpm)?u;~hz`yHc1sn~qQdUBT91XF7Y|yhRJI)U}=*VX$bD>;z zfKCUXebWFKbO!nZ{eZqeAArAM2!df3$lQ>DknI4DcU#DsKpub<)quS?1@MnlRR^j8Re>r%CBRl1Kk@+%k9i)a6Zru;Kg{85l5vg;AoJX!!cGyd(Ml7kj$e_p5xET8QQeGqfRUNjWAWR}!P?n6O+yT>&3}b+HacxEp_4z;XCM+1_4}2AwW-{2M`RfZr10R4-RQ`isRo22nQTt9fULs3`0mFcyD(!GCFLd0{~3@dw@6UYI? z0sg=k@Q#Y;tRu}Hu~It!XU@?np1vm`f5I;O!1a~6tN3<_R&Mw2OSEz3d>P@gy#3fnTRsg~X>zFnr}H|G+MmT7gZh0%AoX0IaLmuuyHeV}4Y?17M0$l>|D--nHF z(@Qfua)OY<2HXyg@>N1eijDRDpvJ? zg-u+90Y0bu3{9C|ihL`yAIy!!s}-7yJ8ySvFzTzY3wI`T{TZdIR;gyVK+}4gn|1S7-WS(Ph?qzx-Y{318r}fe01l2r{H-oU|?YINCd3Xs+rq}Ar!5}+ErRpd|(q~ZjouV z=H<$z_+RcDoevbs<=}pos0Rd z_y8d)uF(pZzY^w>NC&Ucs=F3MBWx$*!aF~X$#Ab4s$r1f;$pFN4XP<8{#b)3EJciH z=ljc{t*5iQhr-T7+C4%Jqu>-+wavNo>y9JGU3St-G+hf%D`YXwMfS-(XKmg8W675d~xHs^PPr>DHm$3ZmsY$Esmt`H8^qH+7`tVzkb zN;8k-P@t;sMbY)Jn2qpI#A9GZJM*m4H7?f(3a_tS%ZGg?OXu+M)fr*g&WctkWt z-F0FP?71j9KhN%`1;+00i=ve)V$$Mek$A%<){2rFw5G0mVaH*3+Oo&+7L&`2H0-KW z#2d3X5x)VwpOO(>3Y(Sd3eF}+)>oWk1Ot}S1_j6jZ;jCyB$s1fba z?J^9i8MD@OP|Sb<=EwSt=toO&Ya_y4Lbz>$GmeIzil9xfSt5o*xc&!`;1IWOdAVtq zpHJOEU6_hoiE&~x44O~H12`L76a6u~+7j0QCq}CZr)vQh*}If}<}DG$zWxzK)rk2b zhh^TqA0B!naMnr<-zSkVZz?WsL96|svelj)jviT*ZHYxQw+Dkeu{}mK-V6f)m7%SY z@y)Yx^>RCD=Fwo#Z~IMQgMs@O8m}&6&=iK8&IOCzDSpUWED>&T>7qv^#W@tk=Q*Ec z!m?Q}%y7lLOSsab#dxG-gTVt!_}0pl%@d`n%Amg#&0*kv6V-BlHmh`Gnak;;xs7U# zRr>{3)GATEEs61_M;*-zuGf3Jm;2O5Iy(i^aP& z7g1`vR^2Sq<_HnD3to;8)3!rQ6qCBze5wxccY0BBFDFAe7q>S2SOL#5UxL0kR5QzHoI%)K9eea>cHpb(pU5EB8jE4 zxyhOEd+rYvN{{>S>{DEdi#M#@OJquf*d_uFL7WyBlOS%1pnadjYccR3H06%!mukk) za%C`%K8`Mb#;H>7qRU={_47Jbil8f~__(;W7p`7I&^Q_Dtsm8IeAEfv&(sLr6}J7b z%O%|CRVDE(jgQJXIZ$HLK5c=+d(|aXSanG?xlWv8jfy-g%t=}`*Q?mxxqt`W54e43 z{;te$fV(Z+dLx>%Nm--jTtn54K!r|v=jvZW-bjvlHf&bN{IGgbxve~C$9Hl$Kz&VpK{skrcr6`HJ^9emA{oL3d1vtEql6UoqFt3 zg+;|Q_UUg!@OOQ8%*M|;i*LZB8HCRR@jvraR8lK5;`nEh;dI^XEoWfeL2U}J3iKYO znX$T!OU_%@C?B~gHZ1Vk?Wdu6_o3^&4`EctiMXR$wXc$4z&Sj3R;^=~_XOsL0q-_2 z(0s*(qgsCV5_osd{k3Z55BJ&>{C?V}==mduXOG4EF1y~2XuS1PP6tu&7~-ntn;PD$ zBK$af{)QUe#gL=<@k&`X>QoH$R(XV^|*kjB)O zPj%rsmBY@ds~a>qNISJH84Q27|YlVs+%LEpPIu+=Xjp&4j{gUpy|F z!@#jGs+-h;)3}4EeOBJ29JkTW?-R;H*|O+&=D+Sc$_o`&Azqz9TXHyESK>uKj?eao zQ>XNtS33qLK*#A|o$$r2($yWiChv| z&R@X&vQJYP;``6{7C2NSjIm*;IY zo#Vw~9_7MtQsZ;k>z~`Vo4ahr0~qj$2KBBGmo8$#M~F8(Di!%oYlg3G;n>tvQLZCO z%IAbJZKs9)CqvmID5?&vvJ7Tjrc3CDs=@D)u~g_5R$!HTsB}siN|pKRWvJ>tF3dlm zhFqdK#Zpn{a;lT~%H@p9xKXDsCk8ygkwH}{S%_N>k#s zXn7NPDv}ZCEdy2R&hOb$%H6f6y_oa>bvqvoj$T(M~>># zHQ`EUlxwPomBjixAV2p>MOKmWMCCZou*NUlsMLadBi`IXeKHI@(;T{HoUZm={nYen z5%424)wI8;#E5x`8F0k4gF0(vtl6h{>3X?tV$@a5sV)}1rBzFPC-s~-rk{d7;YcV^Ks18(ECniyaP5~zeb5WFu-?uKhSOo>=@q0!_19Z{_<1y zPj)**r6<@yPQidLE+ba??HM)v+2T(IH<80J8~!}_b>`7)mwn3lRm7sGYsN4c?6v#4 zKV3em*U(P}Ma5Pa;O=vVqP6Jz3?f{#gm9gVQrxndJGmC@pXo@DlbJ`C>UfA;BMQ>) zglPIybNT8%> ztKyfCqUdw<;GOV(u9er)MT*epS`qgz{({BWzydAu^j7}L@RQAQe274_OxE&?!Y}YwCejZTrCw-N&4HrB3*3O3h$^pfgj@9jD?Csfeu1`kilA4Z zetn^JFMf2W9MJ!shmIU+Z7w2ayu`2LKCuITNuyp6Zm80AM3j6Ld#1qa65)9SU&Z3J zA72)!TE>gvu)`K{I77Nz8I0FRrVV2AD>!;kyh+x`ab8>zaZc%SiR`bjhMuERuHu;` z=j^)DFrd9=%pTNfl6}*hqD7O}m>h$>XMXI+wxIUF*|^EG1spZ^~<%TdGNeW~>?G+0e6`B|&* z&wHt&H%Vkj*8UI5{>hs^sfNpH3Xc0(tLN&NKVO({qG_`BRT1O%_$pS;Bj0h&Pi~#t zBv8#GO#1g?>u-ocMsbFsuqc{7U0(6wH*A(QM2@$bi?zl`xz}VA-s#g-6r0~_7SZCJ zmQ&?hjC?Maf?s`rsTC8eP{L2QqxR)_qLvm`v6D?)c&nBBbDbYV!FO6+#b$K0l))~> zz0HOD0Z~T?#8OGAB&jgAmr+q#p($?lTr>6c z(r2W!y7=69mtxz1AO6LFX700M29_0Pix2fF#$rc_H?Z4@>c-E0 znx;IN`c41(K^%gtu^6#f03r_BH{jHPkCwkurA{0C?i>hNOBrbeX!!QPeZx$1b`_)A zC@~nNk8vml#2t_+%z1Ts^CEuw%`+Xsa|a;&ym^)T^Zz?IX0!#6n8jk>?+bu-k{0QbLfV_$W+b@j%6Zr7;Dc-Zv~K)5yu~CXRIGDsq9A8HQi^8be z4z5bmRI~yz?I*84kX|+9dmiGiE&5aHd53T*w2QHO8NP)P{&>r>zog0X z-9%P2aOYr(6$JUXyO9fZC$17U);&M|p&;i;e8Wv$KR*Tt52}tX=0rIo`1cm;*@&rl zfR8gzQo{U-!sVA1iUM0UW>)%O_x~+xq0L-XRL}h7C1B1A_aFaUSN5;)8LzY;6t61! zl})+_tt(R$?%<-$vv?Klb!3C?RElDOt{Pg~4lsTVHAswiNH-;>lS|i#lw9^m(2-YP zKFSkIbR_lz(X_0gD8~FH^(pKnq_H}suzT>|jH>kW9fH=0X6sHzR)b80j2w*Cg`YaT zS)HD=$E~qUD2{hLXmt)dF@G#j-4RrxXSzK$X|yv7P=oF+{a86|b-pKeRZ1)`xG1MF zj%xY6N-wr!J?zV)jmxNh!h`u9{M)L`HWj1J_qHS?5{nu{s_Gl~SiMUw{zFGubE^Rrhf^PZ!`hanzCY}tB>?7;k|Zw3ZmWO_P2eCF5MY1>PY!r5RUeOIely(Fk%sBU@-^~-d%XFICUZQz-O-m!gs$R$JipO1Fd8# zqFcUr<`hvgzB?*+wS0q7D+@sDfrlZh@|XRGGNyr6y{WRch!XF|xUKA(sC(4gLCdZB zo-TOACthLqfmSVkyNhTgXys$TKxr>X7?m?W==o3k0|QM5gmbu3MD?6|#|`2nv2XN< z#{!mo%kMhy^%=Aq0SGpu3my*`b|mt$*j*rp=H-<&yMiKUj z%g1cHJ~?Y42zZ)?8cJvl5R7f#d~z=qHr}^tp_`xd^*qr^@Qm^NCOYfJ8ZpM(?nrj# zSA?0IFBTcIH@>4C=OfwWyh0b;*;L78GY$7(o22!d>3a`kN#RBE*3BY%9(nu7+#iqY z_{Bqhg9}3>ZJ|+}pox)NgngT?rF}EmtG#G+lr`*WK)8$k&@n{k`fRvCp;aI+ZKYQ` zVUX)|s1wskP|Rg~m0_fMkU}OY0q}0l;g$xsmYTC$R4GFtlsTn+0e=bx-28*d1W zKR)KmQ6`V7FThAWY})k({p`h3q&MEAByaAhm^^$dpN)bKAMuBKX(HGW%4;El7eu)D&ir-bF3ds~1m9NN zOvR)u9g3>Be@G=dmSN<#=DABp4=4>^xU^G%LSo>nwXW|9dpCafVa~?YzljT`N=N+q zyOf9-+sjQa1+W0CY^qxLBu)je6eHUu7Jpmj)af&iI_F{_n239s2OzwyZ}@L)`Rt0b zO$r2=$Kaq!EnmUBIs+rGE_LTSk~{bESmB{Um71zj&^+_&x#S_Up3;Q(C{bo1(o2=} zv8nOvC|74>>{KFH&*A>^mKO&un-tLE$rX1%>9J( zP%L+}q`tD64tEB|YryaU#;K*B`1>~g^bZvS2CJ#2E#VNpp_(ef@H|qzp$8u4s;NE} z&!4L)D;Q7Q@BG7vr+*EV;JX}NBZP8y+HzsCK^BXAW!2fQhTP(KN(+Vq4X&ZlocqKY z>Iq4usWo&M?8&z)^K*ugX4Ozm2(ru~u;UB%nVafD*O@-z$HBbV#^UFufNE($)d5UuFci_}!`=97 z9ffqWQOkepM7a5^o)>!S^_}a5ewRnAU#I#V&!E!*;la#O z=f3p)2ALlla$1A}yt)pw@&aIRU6vHP7=zzmc~!-L(xJ;{E(gqXINs)IBdP`xBKtTa z^{8n?SXhfxHFT`A6^`QDIo9DGUB#Z!T}M%Ynvt}?RdwtyA(cMO(~p{+RC~yu!|LA9 z#Mg5DnMbSkma3Y-oRD~;B0!)yj7U3E`GPGpxfHPi-_)2Pma0Sr_=(ek$ zsA-xle1b7X+sN7+G`A2^XhCBPysvd?*3Qsf`q{e|4I8(;QtDG)0nN;Oq0;qx(&c`MYZ zdBdu-B*%{xRVW>XYQ#Rs9*scai%^eWmU{Sgv+#Wdet>|w(nj=wM(A2=Lk;pN@ZeQ? ziKB64c=GU#Di28YH=QMds*TPPT1u6b+Qn&u1ewp%(a8XAvM zM1L%=)v%+r{Sm6$k5PGl3@bv##~HIQeMRT^D{ZYd<16(Pw12{qcOBQ3DH>7sH;`r` z6M(s`l7=OKv)FO;amLCOI|LO8*o;vYgFbXEfpxZDe=YxtQW8PE{Y#pf2p?{{%ii!6 zRV8ANs}zzYvc8h;Ymx_mvdh5NL4nFTm~{j;GK)rqu|c_ zM|F$r0=~N8>+d_#Ql2{*tewVU$)PS^22eeBXD1+>)W5 zkQ4M^G8VeMPbhyLyRX_s`Jrp}Adu1!B*B};iM~1$wg4uhCO_{li58R_7Pz7rSGecLyX(3_< zOaIR=kJU_LQL$j&{4!W7h+Y*bCyR znQp}-XH|^w91L8(jvjt(UzYRL?T^{R^Jb^#n)1vJHJ|0UzB1A$w?`*|e>(M<(s4UO zbVhvV%39)=>h_m+?Ac^|=Wg~{pUIC7nA4XI4Pns%`(GAF&&9_baGd9MYdrs(kND@& zuQp&Pb8&P@nq$sQH)r*-OsnlWjGZYkTEF+w82dBJ|ll-R(f8ZKFu;upO;~pVwsy`%FQ$D`MY#WmL->e$hYW0lAf>6Hsxo|G4r2? zM(NYc`KHLIq`ZvTQ!=xs^|Iucv-9WYm?Nj>rQgpPn$l-X%eBnTock>+uh~`lx3h!%UGzFxX*wA#RmX-(~-R_bWkfgQDDwd78r^J7@hgZ6LpR6e(%=INv9wTUduOS>z$VlL<7EK;oTH7Sbad1qQxnoXPgu0X-pyOqO&><&}`fYQkpKZFxoeT1vtUq zVrfhY3yrmU9I&mQ!H;ucD9%RwA?)zBZ$Nmo#XNHIX delta 48186 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 { + const { searchParams } = new URL(request.url); + const title: string | undefined = searchParams.has("title") + ? searchParams.get("title")?.slice(0, 100) + : "Hello World (:"; + + return new ImageResponse( + ( +

+ {/* Logo */} + {`${config.siteName} + + {/* Title */} +

{title}

+
+ ), + { + width: 1200, + height: 630, + } + ); +}; diff --git a/src/app/types/config.ts b/src/app/types/config.ts index ff0f4c1..6ea67dc 100644 --- a/src/app/types/config.ts +++ b/src/app/types/config.ts @@ -6,6 +6,11 @@ export type Config = { */ siteName: string; + /** + * The URL to use for generating OG images. + */ + ogApiUrl: string; + /** * The metadata for this app. */ diff --git a/src/components/embed.tsx b/src/components/embed.tsx index 75684e7..12f6249 100644 --- a/src/components/embed.tsx +++ b/src/components/embed.tsx @@ -13,6 +13,11 @@ type EmbedProps = { * The description of the embed. */ description: string; + + /** + * The optional thumbnail image of the embed. + */ + thumbnail?: string | undefined; }; /** @@ -21,13 +26,25 @@ type EmbedProps = { * @param props the embed props * @returns the embed jsx */ -const Embed = ({ title, description }: EmbedProps): Metadata => { +const Embed = ({ title, description, thumbnail }: EmbedProps): Metadata => { return { title: title, openGraph: { title: `${title}`, description: description, + ...(thumbnail && { + images: [ + { + url: thumbnail, + }, + ], + }), }, + ...(thumbnail && { + twitter: { + card: "summary_large_image", + }, + }), }; }; export default Embed;