Mimir Widgets

Small oEmbed-enabled widgets, built to embed cleanly into Mimir — drop a bare widget URL into a block and it renders as a live card, not just a link. Each one reads its whole configuration from the query string, so the URL is the entire installation.

Countdown

Counts down to a moment, under a label of your choosing.

?date=?label=

Timer

An Apple Watch-style countdown: tap a preset or type your own duration, and it rings a bell at zero. 45s, 1:30, 2h and 1h09m all parse — and the h/m/s keys put those units within reach of a phone's numeric pad.

?presets=

Pomodoro

Work and rest cycles, in minutes, with a start-stop clock.

?work=?rest=

Weather

The coming hours at one spot — temperature, rain chance and a condition icon — from Open-Meteo. Shows as many columns as the embed's width comfortably fits.

?lat=?lon=?label=

Public Holidays

Upcoming public holidays for a country, counting down to the next one, from Nager.Date. Pass a subdivision like DE-BY to drop the holidays your own region doesn't take off.

?country=?county=?n=?en=?label=

Departures

A live Dutch Railways board for one route: times, delays, platforms and transfers, refreshed every minute. Needs your own free key from the NS API portal, which travels in the URL — so treat a note holding one as holding the key.

?from=?to=?key=?at=?arrive=?n=

Currency

Converts one currency into another over a 30-day sparkline. The amount is editable in place and the arrows flip the direction, neither one refetching. Rates from Frankfurter.

?from=?to=?amount=

Color

One colour read back in nine CSS syntaxes — hex, rgb(), oklch(), lab() and the rest — each a click away from the clipboard. Colours wider than sRGB stay intact, with the rows that can't hold them marked as clipped. The hash is optional and best left off — ?c=663399 — since a literal # starts a URL fragment, which a consumer may strip before the embed ever loads. ?c=%23663399 works too.

?c=

Calculator

A plaintext calculator: type an expression ending in = and press Enter to fill in the result. Variables persist across lines. Ported from QuickMathJS.

no parameters

Hike

A recorded GPX track drawn over a basemap, with the whole track compressed into the URL: nothing uploaded, nothing stored, the note holds the data. Tiles are proxied here, so the tile server never sees who is looking. The link builds one from a .gpx file.

?t=?label=?km=?g=?d=

Nearby

A map you can actually pan and zoom, beside a scrolling list of what is around that point — water, toilets, benches, cafés, parking by default. Tapping a pin or a row selects the same place. Data from OpenStreetMap via Overpass; tiles and queries are both proxied here, so nobody downstream learns where you're standing. ?amenities= takes named categories — dog_park, vet, toilets, listed at /api/nearby?catalog=1 — or any OSM tag at all, written key=value, so tourism=artwork works without anyone adding it first.

?lat=?lon=?radius=?amenities=?dogs=?zoom=?label=

Very Dictionary

The adjective you keep putting very in front of, traded for one that doesn't need it — ?w=tired answers exhausted, with the runners-up a click away from the clipboard. Any intensifier is understood, so really tired and so tired ask the same question, a misspelling still finds its entry, and a word with two senses answers for both: very cheap is dirt-cheap of a price and stingy of a person. Leave ?w= off and it deals a different word every load, with a shuffle button for the next one — a note that teaches you a word each time you pass it.

?w=

QR Code

Turns whatever you give it — a delivery tracking link, a door code, a Wi-Fi password — into a scannable code, with a click-to-copy fallback for the raw data underneath. Got a screenshot of a code instead of the text it holds? The builder decodes it right in your browser — never uploaded anywhere — and redraws it clean.

?data=?label=?size=?ec=

Dummy Outline

Dash-prefixed outline blocks, two spaces per level of indent, from public-domain literature — with a copy button.

?blocks=?depth=

Recipe Table

A Michael Chu / cookingforengineers.com-style table — ingredients top to bottom in the order they're used, steps merging them left to right into one dish — compressed into the URL like the hike track above. The builder fetches a recipe page's schema.org data here (most recipe sites have no CORS header for the browser to do it directly), then sends just the ingredients and instructions to an OpenAI-compatible LLM endpoint you configure — local or hosted, its address and key staying in your browser — to rearrange into the table.

?r=?label=?n=

Want to build your own widget that embeds just as well? Read SKILL.md — it's written so you can hand it straight to an LLM and get a Mimir-friendly oEmbed widget out the other end.