Captured 27 finds from the daily sweep across 15 sources (Daring Fireball, HN Show HN, Kottke, Wallpaper, Outbound, Uncommon Goods, Kikkerland, BIFL, Quote Investigator, Marginalian, r/dadjokes, icanhazdadjoke, r/shortcuts, Recomendo, Messy Nessy) plus one user- suggested find (valchoose-barf-bags) and 11 additional reader- suggestion finds (appcleaner, blip, cleanmykeyboard, clocker, daisydisk, ia-writer, launchos, macfolio, mos, vivid, wallspace). New reviews: monitorcontrol (graduated from today's reader suggestion, category interface) and blip (graduated from today's reader suggestion, category indie). Both registered in hero.ts. Site tooling: new dev-only POST /api/set-pick middleware that rewrites HERO_SLUG in src/pages/index.astro for the Make today's pick action. EditConfirm reworked to support a non-copy "set-pick" mode; EditAction takes action and slug props; the reviews template switches the toolbar button over to the new wiring. Log + candidate-sources updated. Two new candidates: Routinehub.co and Moss & Fog.
53 lines
2.5 KiB
TypeScript
53 lines
2.5 KiB
TypeScript
import type { ImageMetadata } from 'astro';
|
|
|
|
import alcove from '../content/reviews/alcove/hero.png';
|
|
import altTab from '../content/reviews/alt-tab/hero.jpg';
|
|
import apex from '../content/reviews/apex-markdown-processor/hero.png';
|
|
import blip from '../content/reviews/blip/hero.jpg';
|
|
import esproP7 from '../content/reviews/espro-p7-french-press/hero.jpg';
|
|
import folderPeek from '../content/reviews/folder-peek/screenshot.png';
|
|
import hyperkey from '../content/reviews/hyperkey/hero.png';
|
|
import ice from '../content/reviews/ice/ice-bar.png';
|
|
import macMouseFix from '../content/reviews/mac-mouse-fix/studio-display.png';
|
|
import monitorcontrol from '../content/reviews/monitorcontrol/hero.png';
|
|
import superkey from '../content/reviews/superkey/hero.jpg';
|
|
import timelined from '../content/reviews/timelined/hero.png';
|
|
import tot from '../content/reviews/tot/seven-dots.png';
|
|
|
|
import antinote from '../content/reviews/antinote/swipe.mp4';
|
|
import cotypist from '../content/reviews/cotypist/hero.mp4';
|
|
import dockdoor from '../content/reviews/dockdoor/alttab.mp4';
|
|
import fluxMarkdown from '../content/reviews/flux-markdown/demo.mp4';
|
|
import homerow from '../content/reviews/homerow/overlay.mp4';
|
|
import monocle from '../content/reviews/monocle/spotlight.mp4';
|
|
import shottr from '../content/reviews/shottr/text-erase.mp4';
|
|
import typewhisper from '../content/reviews/typewhisper/demo.mp4';
|
|
|
|
export type Hero =
|
|
| { kind: 'image'; src: ImageMetadata }
|
|
| { kind: 'video'; src: string };
|
|
|
|
export const heroes: Record<string, Hero | undefined> = {
|
|
alcove: { kind: 'image', src: alcove },
|
|
'alt-tab': { kind: 'image', src: altTab },
|
|
'apex-markdown-processor': { kind: 'image', src: apex },
|
|
blip: { kind: 'image', src: blip },
|
|
'espro-p7-french-press': { kind: 'image', src: esproP7 },
|
|
'folder-peek': { kind: 'image', src: folderPeek },
|
|
hyperkey: { kind: 'image', src: hyperkey },
|
|
ice: { kind: 'image', src: ice },
|
|
'mac-mouse-fix': { kind: 'image', src: macMouseFix },
|
|
monitorcontrol: { kind: 'image', src: monitorcontrol },
|
|
superkey: { kind: 'image', src: superkey },
|
|
timelined: { kind: 'image', src: timelined },
|
|
tot: { kind: 'image', src: tot },
|
|
antinote: { kind: 'video', src: antinote },
|
|
cotypist: { kind: 'video', src: cotypist },
|
|
dockdoor: { kind: 'video', src: dockdoor },
|
|
'flux-markdown': { kind: 'video', src: fluxMarkdown },
|
|
homerow: { kind: 'video', src: homerow },
|
|
monocle: { kind: 'video', src: monocle },
|
|
shottr: { kind: 'video', src: shottr },
|
|
typewhisper: { kind: 'video', src: typewhisper },
|
|
};
|