See the best posts from any Bluesky account
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix OG image fonts in production and improve OG metadata

Copy resources/fonts/** to the build output so the Docker image ships
the woff files needed by satori. Also expand landing OG title and
description, and give both OG images a consistent logo-on-top layout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+29 -17
+4
adonisrc.ts
··· 142 142 pattern: 'database/clickhouse/**/*.sql', 143 143 reloadServer: false, 144 144 }, 145 + { 146 + pattern: 'resources/fonts/**', 147 + reloadServer: false, 148 + }, 145 149 ], 146 150 147 151 /*
+23 -15
app/lib/og/renderer.ts
··· 143 143 144 144 export async function renderLandingOgImage(): Promise<Buffer> { 145 145 const markup = wrapLayout([ 146 - logoElement(72), 146 + logoElement(44), 147 + { 148 + type: 'div', 149 + props: { 150 + style: { 151 + fontFamily: 'Gabarito', 152 + fontWeight: 700, 153 + fontSize: '96px', 154 + color: COLORS.gray100, 155 + textAlign: 'center', 156 + lineHeight: 1.1, 157 + marginTop: '32px', 158 + maxWidth: '1000px', 159 + }, 160 + children: "Bluesky's greatest hits", 161 + }, 162 + }, 147 163 { 148 164 type: 'div', 149 165 props: { ··· 152 168 fontWeight: 400, 153 169 fontSize: '32px', 154 170 color: COLORS.gray400, 171 + textAlign: 'center', 155 172 marginTop: '24px', 173 + maxWidth: '900px', 156 174 }, 157 175 children: "See any Bluesky account's most popular posts.", 158 176 }, ··· 170 188 : `@${opts.handle}'s top posts` 171 189 172 190 const markup = wrapLayout([ 191 + logoElement(44), 173 192 { 174 193 type: 'div', 175 194 props: { 176 195 style: { 177 196 fontFamily: 'Gabarito', 178 197 fontWeight: 700, 179 - fontSize: '56px', 198 + fontSize: '72px', 180 199 color: COLORS.gray100, 181 200 textAlign: 'center', 182 - lineHeight: 1.2, 201 + lineHeight: 1.1, 202 + marginTop: '32px', 183 203 maxWidth: '1000px', 184 204 }, 185 205 children: title, 186 - }, 187 - }, 188 - { 189 - type: 'div', 190 - props: { 191 - style: { 192 - display: 'flex', 193 - alignItems: 'center', 194 - gap: '12px', 195 - marginTop: '40px', 196 - }, 197 - children: [logoElement(36)], 198 206 }, 199 207 }, 200 208 ])
+2 -2
resources/views/pages/landing.edge
··· 1 1 @component('components/layout', { hideHeader: true }) 2 2 @slot('head') 3 - <meta property="og:title" content="favs.blue" /> 4 - <meta property="og:description" content="See any Bluesky account's most popular posts." /> 3 + <meta property="og:title" content="favs.blue — see any Bluesky account's greatest hits" /> 4 + <meta property="og:description" content="Discover the most-liked and most-reposted posts from any Bluesky account, powered by the AT Protocol firehose. All-time or last month." /> 5 5 <meta property="og:image" content="{{ appUrl }}/og/landing.png" /> 6 6 <meta property="og:image:width" content="1200" /> 7 7 <meta property="og:image:height" content="630" />