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/.
|
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/
|
link: https://tryalcove.com/
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*Music, AirDrop, AirPods, and charging events bloom from the notch and fade back to invisible.*
|
*Music, AirDrop, AirPods, and charging events bloom from the notch and fade back to invisible.*
|
||||||
|
|
||||||
|
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/
|
link: https://alt-tab-macos.netlify.app/
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*AltTab shows every window across every space in one switcher — minimized, fullscreen, off-display.*
|
*AltTab shows every window across every space in one switcher — minimized, fullscreen, off-display.*
|
||||||
|
|
||||||
@@ -8,11 +8,11 @@ description: "A frictionless scratchpad for the moments where Notion or Apple No
|
|||||||
link: https://antinote.io/
|
link: https://antinote.io/
|
||||||
---
|
---
|
||||||
|
|
||||||
import slide1 from '../../assets/reviews/antinote/swipe.mp4';
|
import slide1 from './swipe.mp4';
|
||||||
import slide2 from '../../assets/reviews/antinote/plaintext.mp4';
|
import slide2 from './plaintext.mp4';
|
||||||
import slide3 from '../../assets/reviews/antinote/links.mp4';
|
import slide3 from './links.mp4';
|
||||||
import slide4 from '../../assets/reviews/antinote/math.mp4';
|
import slide4 from './math.mp4';
|
||||||
import slide5 from '../../assets/reviews/antinote/conversions.mp4';
|
import slide5 from './conversions.mp4';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
@@ -8,9 +8,9 @@ description: "A system-wide inline autocompletion engine for macOS that quietly
|
|||||||
link: https://cotypist.app/
|
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.*
|
*Suggestions appear in ghost text as you type; press tab to accept.*
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 733 KiB |
@@ -8,9 +8,9 @@ description: "Brings Windows-style live window previews to the macOS Dock, done
|
|||||||
link: https://dockdoor.net/
|
link: https://dockdoor.net/
|
||||||
---
|
---
|
||||||
|
|
||||||
import slide1 from '../../assets/reviews/dockdoor/alttab.mp4';
|
import slide1 from './alttab.mp4';
|
||||||
import slide2 from '../../assets/reviews/dockdoor/aeroShake.mp4';
|
import slide2 from './aeroShake.mp4';
|
||||||
import slide3 from '../../assets/reviews/dockdoor/clickToMinimize.mp4';
|
import slide3 from './clickToMinimize.mp4';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
|
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"
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> 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.
|
||||||
@@ -9,9 +9,9 @@ link: https://github.com/xykong/flux-markdown
|
|||||||
linkText: Visit on GitHub
|
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.*
|
*Markdown syntax shows up only on the line you're editing, then dissolves into rendered formatting.*
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 3.9 MiB |
@@ -10,9 +10,9 @@ linkText: Visit in App Store
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { Image } from 'astro:assets';
|
import { Image } from 'astro:assets';
|
||||||
import slide1 from '../../assets/reviews/folder-peek/screenshot.png';
|
import slide1 from './screenshot.png';
|
||||||
import slide2 from '../../assets/reviews/folder-peek/screenshot-2.png';
|
import slide2 from './screenshot-2.png';
|
||||||
import slide3 from '../../assets/reviews/folder-peek/screenshot-3.png';
|
import slide3 from './screenshot-3.png';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
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/
|
link: https://homerow.app/
|
||||||
---
|
---
|
||||||
|
|
||||||
import slide1 from '../../assets/reviews/homerow/overlay.mp4';
|
import slide1 from './overlay.mp4';
|
||||||
import slide2 from '../../assets/reviews/homerow/scroll.mp4';
|
import slide2 from './scroll.mp4';
|
||||||
import slide3 from '../../assets/reviews/homerow/search.mp4';
|
import slide3 from './search.mp4';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
|
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/
|
link: https://hyperkey.app/
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*One toggle to enable, one optional secondary mapping for tap-vs-hold — the entire UI.*
|
*One toggle to enable, one optional secondary mapping for tap-vs-hold — the entire UI.*
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 832 KiB |
|
After Width: | Height: | Size: 1.5 MiB |
@@ -9,9 +9,9 @@ link: https://icemenubar.app/
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { Image } from 'astro:assets';
|
import { Image } from 'astro:assets';
|
||||||
import slide1 from '../../assets/reviews/ice/banner.png';
|
import slide1 from './banner.png';
|
||||||
import slide2 from '../../assets/reviews/ice/ice-bar.png';
|
import slide2 from './ice-bar.png';
|
||||||
import slide3 from '../../assets/reviews/ice/menu-bar-layout.png';
|
import slide3 from './menu-bar-layout.png';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
|
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/
|
link: https://macmousefix.com/
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*Buttons and the wheel become configurable triggers for Mission Control, desktop switching, and smart zoom.*
|
*Buttons and the wheel become configurable triggers for Mission Control, desktop switching, and smart zoom.*
|
||||||
|
|
||||||
|
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
|
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 />
|
<video src={spotlight} autoplay loop muted playsinline />
|
||||||
|
|
||||||
@@ -8,9 +8,9 @@ description: "A native, ridiculously fast macOS screenshot utility with scroll c
|
|||||||
link: https://shottr.cc/
|
link: https://shottr.cc/
|
||||||
---
|
---
|
||||||
|
|
||||||
import slide1 from '../../assets/reviews/shottr/text-erase.mp4';
|
import slide1 from './text-erase.mp4';
|
||||||
import slide2 from '../../assets/reviews/shottr/backdrop.mp4';
|
import slide2 from './backdrop.mp4';
|
||||||
import slide3 from '../../assets/reviews/shottr/crop-paddings.mp4';
|
import slide3 from './crop-paddings.mp4';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
@@ -9,8 +9,8 @@ link: https://tot.rocks/
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { Image } from 'astro:assets';
|
import { Image } from 'astro:assets';
|
||||||
import slide1 from '../../assets/reviews/tot/seven-dots.png';
|
import slide1 from './seven-dots.png';
|
||||||
import slide2 from '../../assets/reviews/tot/sync.png';
|
import slide2 from './sync.png';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 798 KiB |
|
After Width: | Height: | Size: 950 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 920 KiB |
@@ -9,12 +9,12 @@ link: https://typewhisper.com/
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { Image } from 'astro:assets';
|
import { Image } from 'astro:assets';
|
||||||
import slide1 from '../../assets/reviews/typewhisper/demo.mp4';
|
import slide1 from './demo.mp4';
|
||||||
import slide2 from '../../assets/reviews/typewhisper/home.png';
|
import slide2 from './home.png';
|
||||||
import slide3 from '../../assets/reviews/typewhisper/recording.png';
|
import slide3 from './recording.png';
|
||||||
import slide4 from '../../assets/reviews/typewhisper/workflows.png';
|
import slide4 from './workflows.png';
|
||||||
import slide5 from '../../assets/reviews/typewhisper/dictionary.png';
|
import slide5 from './dictionary.png';
|
||||||
import slide6 from '../../assets/reviews/typewhisper/file-transcription.png';
|
import slide6 from './file-transcription.png';
|
||||||
|
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<figure id="s1">
|
<figure id="s1">
|
||||||
|
After Width: | Height: | Size: 1020 KiB |
|
After Width: | Height: | Size: 791 KiB |