site: media + colocation — chunk 2/4 (reviews)

Move src/assets/reviews/<slug>/* into src/content/reviews/<slug>/.
Re-encoded MP4s and GIF→MP4 conversions; originals archived in source/.
This commit is contained in:
2026-05-04 17:54:39 -04:00
parent 5dcd99361f
commit 8d1396fcd6
68 changed files with 57 additions and 37 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

@@ -8,7 +8,7 @@ description: "Reclaims the MacBook notch as a tiny ambient widget for music, Air
link: https://tryalcove.com/
---
![The Alcove widget unfurling from the MacBook notch with album art and playback controls](../../assets/reviews/alcove/hero.png)
![The Alcove widget unfurling from the MacBook notch with album art and playback controls](./hero.png)
*Music, AirDrop, AirPods, and charging events bloom from the notch and fade back to invisible.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 507 KiB

@@ -8,7 +8,7 @@ description: "An open-source app switcher that shows full live window thumbnails
link: https://alt-tab-macos.netlify.app/
---
![AltTab's switcher showing live thumbnails of multiple windows across spaces](../../assets/reviews/alt-tab/hero.jpg)
![AltTab's switcher showing live thumbnails of multiple windows across spaces](./hero.jpg)
*AltTab shows every window across every space in one switcher — minimized, fullscreen, off-display.*
Binary file not shown.
@@ -8,11 +8,11 @@ description: "A frictionless scratchpad for the moments where Notion or Apple No
link: https://antinote.io/
---
import slide1 from '../../assets/reviews/antinote/swipe.mp4';
import slide2 from '../../assets/reviews/antinote/plaintext.mp4';
import slide3 from '../../assets/reviews/antinote/links.mp4';
import slide4 from '../../assets/reviews/antinote/math.mp4';
import slide5 from '../../assets/reviews/antinote/conversions.mp4';
import slide1 from './swipe.mp4';
import slide2 from './plaintext.mp4';
import slide3 from './links.mp4';
import slide4 from './math.mp4';
import slide5 from './conversions.mp4';
<div class="carousel">
<figure id="s1">
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,9 +8,9 @@ description: "A system-wide inline autocompletion engine for macOS that quietly
link: https://cotypist.app/
---
import demo from '../../assets/reviews/cotypist/hero.gif?url';
import demo from './hero.mp4';
<img src={demo} alt="Cotypist showing inline ghost-text autocomplete" />
<video src={demo} autoplay loop muted playsinline preload="metadata" aria-label="Cotypist showing inline ghost-text autocomplete" />
*Suggestions appear in ghost text as you type; press tab to accept.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 733 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,9 +8,9 @@ description: "Brings Windows-style live window previews to the macOS Dock, done
link: https://dockdoor.net/
---
import slide1 from '../../assets/reviews/dockdoor/alttab.mp4';
import slide2 from '../../assets/reviews/dockdoor/aeroShake.mp4';
import slide3 from '../../assets/reviews/dockdoor/clickToMinimize.mp4';
import slide1 from './alttab.mp4';
import slide2 from './aeroShake.mp4';
import slide3 from './clickToMinimize.mp4';
<div class="carousel">
<figure id="s1">
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

@@ -0,0 +1,20 @@
---
name: "Espro P7 French Press"
subtitle: "Double micro-mesh filter that actually keeps grit out of the cup"
date: 2026-05-03
category: kitchen
tags: [coffee, kitchen, stainless-steel]
link: https://www.amazon.com/dp/B079T44WPZ
linkText: "Buy on Amazon"
description: "A vacuum-insulated stainless French press whose double-mesh filter pours clean — no silt, no tepid second cup."
source: "Tools and Toys"
fromFind: "espro-p7-french-press"
---
![Brewing in an Espro P7 stainless French press, plunger mid-press on a wooden cutting board](./hero.jpg)
> A vacuum-insulated stainless French press with a double-mesh filter that keeps the cup grit-free, and a wall that keeps the brew hot through the second and third pours.
A standard glass French press has one coarse mesh, so the brew sits on its grounds and the cup arrives gritty. The Espro's filter stacks two layers of woven micro-mesh — fine enough that what reaches the cup is clear coffee, not silt. The vacuum-insulated stainless body keeps the carafe hot for the second and third cups, instead of going room-temperature within minutes the way a glass press does.
The trade-offs are honest: it costs three or four times what a Bodum does, weighs more, and you lose the visual ritual of watching coffee bloom through clear glass. None of that matters once you stop tasting grit.
Binary file not shown.
@@ -9,9 +9,9 @@ link: https://github.com/xykong/flux-markdown
linkText: Visit on GitHub
---
import demo from '../../assets/reviews/flux-markdown/demo.gif?url';
import demo from './demo.mp4';
<img src={demo} alt="Flux Markdown editor with inline rendering" />
<video src={demo} autoplay loop muted playsinline preload="metadata" aria-label="Flux Markdown editor with inline rendering" />
*Markdown syntax shows up only on the line you're editing, then dissolves into rendered formatting.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

@@ -10,9 +10,9 @@ linkText: Visit in App Store
---
import { Image } from 'astro:assets';
import slide1 from '../../assets/reviews/folder-peek/screenshot.png';
import slide2 from '../../assets/reviews/folder-peek/screenshot-2.png';
import slide3 from '../../assets/reviews/folder-peek/screenshot-3.png';
import slide1 from './screenshot.png';
import slide2 from './screenshot-2.png';
import slide3 from './screenshot-3.png';
<div class="carousel">
<figure id="s1">
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

@@ -8,9 +8,9 @@ description: "A keyboard navigation overlay that puts a two-letter label on ever
link: https://homerow.app/
---
import slide1 from '../../assets/reviews/homerow/overlay.mp4';
import slide2 from '../../assets/reviews/homerow/scroll.mp4';
import slide3 from '../../assets/reviews/homerow/search.mp4';
import slide1 from './overlay.mp4';
import slide2 from './scroll.mp4';
import slide3 from './search.mp4';
<div class="carousel">
<figure id="s1">
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

@@ -8,7 +8,7 @@ description: "A free menu-bar app that promotes Caps Lock to a hyper-modifier fo
link: https://hyperkey.app/
---
![Hyperkey's preference window with the Caps-Lock-to-Hyper toggle](../../assets/reviews/hyperkey/hero.png)
![Hyperkey's preference window with the Caps-Lock-to-Hyper toggle](./hero.png)
*One toggle to enable, one optional secondary mapping for tap-vs-hold — the entire UI.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 832 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

@@ -9,9 +9,9 @@ link: https://icemenubar.app/
---
import { Image } from 'astro:assets';
import slide1 from '../../assets/reviews/ice/banner.png';
import slide2 from '../../assets/reviews/ice/ice-bar.png';
import slide3 from '../../assets/reviews/ice/menu-bar-layout.png';
import slide1 from './banner.png';
import slide2 from './ice-bar.png';
import slide3 from './menu-bar-layout.png';
<div class="carousel">
<figure id="s1">
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

@@ -8,7 +8,7 @@ description: "An open-source mouse customization tool that brings trackpad-style
link: https://macmousefix.com/
---
![Mac Mouse Fix's preferences mapping mouse buttons to trackpad gestures](../../assets/reviews/mac-mouse-fix/studio-display.png)
![Mac Mouse Fix's preferences mapping mouse buttons to trackpad gestures](./studio-display.png)
*Buttons and the wheel become configurable triggers for Mission Control, desktop switching, and smart zoom.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

@@ -8,7 +8,7 @@ description: "A pointer-driven spotlight overlay that dims everything except whe
link: https://www.heyiam.dk/monocle
---
import spotlight from '../../assets/reviews/monocle/spotlight.mp4';
import spotlight from './spotlight.mp4';
<video src={spotlight} autoplay loop muted playsinline />
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,9 +8,9 @@ description: "A native, ridiculously fast macOS screenshot utility with scroll c
link: https://shottr.cc/
---
import slide1 from '../../assets/reviews/shottr/text-erase.mp4';
import slide2 from '../../assets/reviews/shottr/backdrop.mp4';
import slide3 from '../../assets/reviews/shottr/crop-paddings.mp4';
import slide1 from './text-erase.mp4';
import slide2 from './backdrop.mp4';
import slide3 from './crop-paddings.mp4';
<div class="carousel">
<figure id="s1">
Binary file not shown.
@@ -9,8 +9,8 @@ link: https://tot.rocks/
---
import { Image } from 'astro:assets';
import slide1 from '../../assets/reviews/tot/seven-dots.png';
import slide2 from '../../assets/reviews/tot/sync.png';
import slide1 from './seven-dots.png';
import slide2 from './sync.png';
<div class="carousel">
<figure id="s1">
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 798 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 KiB

@@ -9,12 +9,12 @@ link: https://typewhisper.com/
---
import { Image } from 'astro:assets';
import slide1 from '../../assets/reviews/typewhisper/demo.mp4';
import slide2 from '../../assets/reviews/typewhisper/home.png';
import slide3 from '../../assets/reviews/typewhisper/recording.png';
import slide4 from '../../assets/reviews/typewhisper/workflows.png';
import slide5 from '../../assets/reviews/typewhisper/dictionary.png';
import slide6 from '../../assets/reviews/typewhisper/file-transcription.png';
import slide1 from './demo.mp4';
import slide2 from './home.png';
import slide3 from './recording.png';
import slide4 from './workflows.png';
import slide5 from './dictionary.png';
import slide6 from './file-transcription.png';
<div class="carousel">
<figure id="s1">
Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 791 KiB