The Index · sites.llc · the ten reviews, as text

The Index:
the ten reviews.

The ten reviews sites.llc published, copied here so they can be read beside the other nine sites. The originals, with their pictures, diagrams and the site’s own design, are at sites.llc. This copy is kept out of search; the originals are the ones to cite.

One owner: LABS builds labs.llc, publishes sites.llc and wrote this page.

The ten tools

  1. ATLAS
  2. Audio
  3. Bikes
  4. Certificates & subdomains
  5. Deadline
  6. Holidays
  7. Newsy
  8. Product Lab
  9. Stocks
  10. Tides

Pictures are left out of this copy. Their captions and callouts, and the words inside each drawing, are kept as text; each review’s own page carries the pictures themselves.

ATLAS

27 Sep 2026, 20:02 UTC, local build 537 · The original on sites.llc · Open ATLAS on labs.llc

Entry IX-01 · Earth shelf

A zoomable world drawn on the page's own canvas, with country figures, live conditions at any point and the line of night. We opened the data pack, counted it, and checked the live layers.

Tested 27 Sep 2026, 20:02–20:07 UTC · 2 comparators · labs.llc/atlas/

labs.llc/atlas/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

ATLAS is a world atlas that labs.llc draws itself. No map-tile company sits behind it. The page carries 242 countries, 1,251 cities, and Natural Earth's lakes and rivers, and you pan and zoom across them on a canvas. Choose a country and you get its population, GDP, an area worked out from its own outline, and up to 21 World Bank indicators ranked against every other country. Click any point and it reads that spot's elevation, current weather and air quality. It also plots the week's earthquakes, draws a terrain profile between two points and shades the night side of the Earth.

It suits students, teachers, travellers and the curious: people who want country facts and live conditions together, without an account.

02 How it works

The geography ships with the page: a 1.64 MB extract of Natural Earth at 1:50m, which is public domain, quantised to 0.001° (about 110 m) and delta-encoded (atlas/assets/js/atlas-data.js, built by atlas/tools/mkatlas.py). The World Bank figures were read from the Bank's keyless API when that pack was built, each one the latest year the country reported. A series with no data is dropped rather than shown as zero, and decimal places are set per series so a figure never looks more precise than its survey.

The live layers go straight from your browser to open, keyless services: Open-Meteo for place search, weather, air quality and elevation, including the 100-point transect along a great circle (atlas.js:811-816, 943, 970, 1121-1151), and USGS for the week's M2.5+ quakes (atlas.js:203). A Content-Security-Policy in atlas/.htaccess lets the page connect to those hosts and its analytics, nothing else. The night line is computed from the sun's position (atlas.js:177-183, 359-364).

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:02:29Page and data pack, local 537 copyPage HTTP 200, 62,282 bytes; pack 200, 1,644,905 bytes. Parsed: 242 countries, 1,251 places, 412 lakes, 895 rivers, 21 indicator series, 217 countries carrying them.
20:02:29USGS week feedHTTP 200, 226,760 bytes in 0.06 s: 320 quakes of M2.5+.
20:02:29Open-Meteo elevation at 27.9881, 86.9250 (Everest summit)HTTP 200 in 0.40 s: 8,724 m, about 125 m below the surveyed 8,848.86 m.

The Everest reading is the instructive one. A gridded terrain model smooths peaks, and the page passes the model's number on as given.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where ATLAS goes further.

Google Earth

Checked 27 Sep 2026, 20:07 UTC, through Google's own pages and support article 148134 (the web app itself returned only a browser-compatibility page); Voyager's quizzes confirmed on Google's own blog at 20:46 UTC.

A 3D globe of satellite and aerial imagery with 3D buildings, a Measure tool on the web and guided Voyager tours; Google Earth Pro on desktop draws an elevation profile along a path.

Where it does better
  • Real imagery and 3D terrain down to street level, with 3D buildings in more than 2,500 cities.
  • A fuller elevation profile, in feet or metres, in Google Earth Pro.
  • Guided tours and quizzes.
Where ATLAS goes further
  • Country statistics on the map: up to 21 World Bank series, each ranked against every country.
  • Weather, PM2.5, PM10 and European AQI at any clicked point, plus the week's quakes, from named sources (atlas.js:203, 811-816).

Our World in Data

Fetched 27 Sep 2026, 20:07 UTC.

An open library of more than 14,000 interactive charts across 120-plus topics, drawing on the WHO, the UN and the World Bank, free to reuse under a Creative Commons licence.

Where it does better
  • Far more indicators, with full time series instead of one latest year.
  • Downloadable data and a clear reuse licence.
  • Explanatory writing on every topic.
Where ATLAS goes further
  • Puts the figures on a navigable map beside live local conditions and a terrain profile, in one page.
  • Computes each country's area from the outline it draws, so the number and the shape agree (atlas.js:4-6).

05 Where it falls short

  1. No imagery and no streets. At 1:50m, quantised to roughly 110 m, it is a country-and-city atlas, not a map to navigate by.
  2. The World Bank numbers are a snapshot baked in at build time, and 25 of the 242 countries, Taiwan and Somaliland among them, carry none.
  3. Point elevations smooth the peaks: 8,724 m at the Everest summit coordinates.
  4. The night line uses a low-precision solar formula (atlas.js:177-180): right at map scale, not an almanac.

06 Filing note

File under Country facts and live conditions on one map, with every number's origin stated.

ATLAS wins on care with its numbers, not on pictures. Empty series are left out, precision is set per series, areas match the shapes drawn, and every live layer names its host. Open Google Earth for imagery and streets, and Our World in Data for history and downloads. Open ATLAS when you want one country's profile, the weather there and the ground between two points in a single view.

Open ATLAS on labs.llc

07 Spec sheet

IX-01 · ATLAS · as tested
Addresslabs.llc/atlas/
Where it runsIn your browser; live layers read directly, no relay
Map dataNatural Earth 1:50m, embedded (1,644,905 bytes)
Country figuresWorld Bank, 21 series, fixed at build time; 217 of 242 countries
Live sourcesOpen-Meteo (forecast, air quality, elevation, search); USGS quakes
AccountNone
Measured27 Sep 2026, 20:02 UTC, local build 537
Set againstGoogle Earth; Our World in Data
Main limitNo imagery or streets; figures not live

Audio

27 Sep 2026, 19:59–20:10 UTC · The original on sites.llc · Open Audio on labs.llc

Entry IX-02 · Sound shelf

A music player and DJ deck that runs in a tab: tempo, pitch, effects and visualisers, fed by LABS's own libraries or your own folder. We measured the libraries it loads and the track lists behind it.

Tested 27 Sep 2026, 19:59–20:10 UTC · 2 comparators · labs.llc/audio/

labs.llc/audio/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Audio is a music player and DJ deck that runs in a browser tab. Built on Tone.js, it moves tempo anywhere from 0.1x to 4x on one slider, shifts pitch, runs a chain of effects and drives a bank of reactive visualisers, with a queue, scratch and tape-stop. It plays LABS's four music libraries, E1 to E4, or a folder of your own files. There is nothing to install and no account.

One count needs care. The page's own description promises nine visualisers, but its panel carries eleven mode buttons, ten named “reactors” and a waveform, and its feature list says “10 Reactors” (index.html:190, 1631, 1721-1744). The description is out of date; the panel is the thing you use.

It is for listeners and hobby DJs who want to bend a track's speed and pitch, colour it with effects and watch it move.

02 How it works

The whole app is one HTML file of 419,581 bytes. It loads Tone.js 14.8.49 from cdnjs and jsmediatags 3.9.3 from jsDelivr, each pinned with a Subresource Integrity hash (audio/index.html:268-276). Sound is processed in the browser's Web Audio graph through Tone.js nodes (PitchShift, BitCrusher, Reverb, StereoWidener, FeedbackDelay, Phaser, Chorus, Distortion, Compressor and Filter), with an Analyser feeding the visualisers (index.html:2910-2940). Your own folder opens through the File System Access API in read-only mode, and ID3 tags are read in the page (index.html:4118-4125, 4572).

Two details show the care taken. The tag reader is held at 3.9.3 on purpose: a comment says the 3.9.4 and 3.9.5 builds ship an empty file, and we measured 3.9.5 at zero bytes. And the E1 to E4 track lists are parsed as data, never run as code. A list must be a JSON array of paths, and it is revalidated with cache: no-cache, so an unchanged list costs a 304 rather than a fresh download (index.html:4262-4278).

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
19:59:31Page, local 537 copyHTTP 200, 419,581 bytes.
19:59:42Track lists e1.js to e4.js, quoted paths countede1 52,577 bytes, 2,154 paths; e2 4,265 bytes, 173 paths (.mp4); e3 18,877 bytes, 712 paths; e4 25,181 bytes, 955 paths. The music files were not fetched.
20:10:32The pinned libraries on their CDNsTone.js 14.8.49: 346,637 bytes. jsmediatags 3.9.3: 49,545 bytes. jsmediatags 3.9.5: 0 bytes, so the pin is justified.

Together the four lists name 3,994 paths. We did not play the music itself, because it lives on the main site and these tests contact no live estate host. Had the page followed the newest jsmediatags release, it would have loaded an empty tag reader.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Audio goes further.

Audacity

Fetched 27 Sep 2026, 20:06 UTC.

Free, open-source desktop software for recording and editing audio on Windows, macOS and Linux, with WAV, MP3, FLAC and Ogg import and export, VST3 and Nyquist plugins, tempo and pitch changes and spectrograms.

Where it does better
  • Records, edits and exports audio in the major formats; Audio can do none of that.
  • A plugin ecosystem and analysis tools such as spectrograms.
  • Open source.
Where Audio goes further
  • Nothing to install: tempo and pitch change live while the track plays (index.html:1935-1944).
  • Live performance tools, scratch, tape-stop, a queue and visualisers, rather than an editing timeline.

BandLab Studio

27 Sep 2026, 20:06 UTC: a direct fetch returned only a heading, so we relied on a search of bandlab.com and help.bandlab.com.

A free cloud DAW used in the browser or on a phone, with up to 16 audio and MIDI tracks per project, 436-plus virtual instruments, royalty-free loops, real-time effects and up to 50 collaborators.

Where it does better
  • A real multitrack studio: recording, MIDI, instruments and loops.
  • Cloud projects shared with other people.
Where Audio goes further
  • Plays your own folder straight from disk, read-only, without uploading anything.
  • No account step appears in its code path.

05 Where it falls short

  1. The page calls itself a “Browser DAW”, but we found no microphone input, recording or MIDI in the code: no getUserMedia, MediaRecorder or Tone.Recorder.
  2. It cannot save what you hear. The only download writes a track list (index.html:8405-8417), not audio.
  3. Opening a folder needs the File System Access API; the page itself sends Safari and Firefox users to Chrome or Edge.
  4. It needs cdnjs, jsDelivr and Google Fonts to answer before it works.

06 Filing note

File under Live playback with tempo, pitch and effects; not a recording studio.

Audio is honest engineering inside a narrow brief. The supply chain is pinned and explained, the track lists cannot run code, and your files never leave your machine. If you need to record or export, Audacity and BandLab are the tools; if you want a track at half speed through reverb, with nothing installed and no sign-up, this does it in a tab.

Open Audio on labs.llc

07 Spec sheet

IX-02 · Audio · as tested
Addresslabs.llc/audio/
Where it runsIn your browser, Web Audio via Tone.js
LibrariesTone.js 14.8.49, jsmediatags 3.9.3, both SRI-pinned
MusicE1–E4 lists (3,994 paths) or your own folder
Tempo range0.1x to 4x
Saves audioNo
Folder accessChrome or Edge (File System Access API)
Measured27 Sep 2026, 19:59–20:10 UTC
Set againstAudacity; BandLab Studio

Bikes

27 Sep 2026, 20:04 UTC · The original on sites.llc · Open Bikes on labs.llc

Entry IX-03 · Earth shelf

A live board of every dock in a bike-share system, read from the operator's own feed with its timestamps intact. We pulled Citi Bike's feeds and the CityBikes register at the same minute.

Tested 27 Sep 2026, 20:04–20:08 UTC · 3 comparators · labs.llc/bikes/

labs.llc/bikes/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Bikes is a live dock board for any bike-share system that publishes GBFS, the open feed standard, with New York's Citi Bike loaded first. Every station shows its bikes, e-bikes and free docks right now. The board ranks the emptiest and fullest stations, maps the whole system with stations sized by capacity, and keeps the feed's own timestamp on every figure.

It is for riders hunting for a bike or a dock, and for anyone who wants to watch a city's system fill and empty.

02 How it works

There is no server behind it (bikes/assets/js/app.js, 517 lines). For Citi Bike the browser reads gbfs.lyft.com/gbfs/2.3/bkn/gbfs.json and follows it to station information and status. For other cities it looks the system up in the CityBikes register and follows the operator's own feed where one is listed. The aggregator's copy is used only when the operator's host will not answer a browser, and the line under the system name says which host drew the board (app.js:1-6, 145-150).

It is careful with the operator's server. Status is re-read every 150 seconds, only in a visible tab, with cache: no-cache so an unchanged file costs a 304. It deliberately does not set If-Modified-Since by hand, because that would trigger a CORS preflight the feed does not answer (app.js:12-16, 512-514). Stations not installed or not renting count as out of service rather than empty, e-bikes are counted apart, and each station's own last-reported time is printed (app.js:8-10, 130-134).

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:04:11Page, local 537 copyHTTP 200, 57,541 bytes.
20:04:11Citi Bike gbfs.json, with an Origin headerHTTP 200, 3,589 bytes in 0.15 s; 12 feeds listed; access-control-allow-origin: *.
20:04:11Citi Bike station_status, summarised by the page's rulesHTTP 200, 1,080,157 bytes in 0.06 s, 25 s old, ttl 60. 2,520 stations, 2,421 renting; 38,988 bikes, 19,321 of them e-bikes; 47 renting stations empty, 199 full.
20:04:11CityBikes registerHTTP 200, 229,600 bytes in 0.65 s: 815 networks, 274 with an operator feed the board can follow.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Bikes goes further.

Citi Bike app and station map

27 Sep 2026, 20:08 UTC: the page timed out (HTTP 504), so we relied on a search of citibikenyc.com and its help centre.

The operator's own app: tap a station for its exact bikes and docks, scan a QR code to unlock a classic bike or e-bike, and find an open dock at the end of a ride.

Where it does better
  • It rents you the bike; the board only reports.
  • It marks stations holding a charged e-bike.
  • It is the operator's own view of its system.
Where Bikes goes further
  • Ranks the whole system at once, emptiest and fullest, with system totals (app.js:27, 235-252).
  • Prints each station's last report, so a stale station looks stale.
  • Nothing to install and no account.

Transit

Fetched 27 Sep 2026, 20:08 UTC.

A transit app with real-time data and trip planning across buses, subways and bikeshare in more than 1,000 cities.

Where it does better
  • Plans trips that combine bikeshare with buses and trains.
  • One app across more than a thousand cities.
Where Bikes goes further
  • Reads the operator's feed directly and names the host it came from.
  • A whole-system view rather than the stations near one trip.

CityBikes

Fetched 27 Sep 2026, 20:08 UTC; its API measured at 20:04 UTC.

An open register and API of bike-share networks with a map app, built on the open-source pybikes library.

Where it does better
  • It is the register the board relies on for every city beyond Citi Bike.
  • Open source, with an API others build on.
Where Bikes goes further
  • Where CityBikes lists the operator's own feed (274 of 815 networks), the board reads that feed instead of the aggregator's copy.

05 Where it falls short

  1. A board, not an app: no trip planning, no unlocking, no prices and no account.
  2. The map is drawn from station coordinates alone, with no streets underneath (app.js:352-357).
  3. It reads neither system_alerts nor free_bike_status, though Citi Bike's discovery file lists both, so announced closures and dockless bikes are missing.
  4. It re-reads every 150 s against a declared 60 s lifetime, so it can trail the feed by about two and a half minutes, and it keeps no history.

06 Filing note

File under The state of a whole bike-share system, straight from the operator.

Bikes does a small job with discipline. It goes to the source, prints the source's clock, separates broken stations from empty ones and polls gently. For a ride, use the operator's app or Transit. For the question “where in this city are the bikes right now, and how fresh is that?” the board answers for every station at once, with the feed's own timestamps.

Open Bikes on labs.llc

07 Spec sheet

IX-03 · Bikes · as tested
Addresslabs.llc/bikes/
Where it runsIn your browser; no server component
SourcesOperator GBFS (Citi Bike via gbfs.lyft.com); CityBikes register
RefreshEvery 150 s, visible tab only, conditional
RemembersChosen system, in localStorage and the URL
AccountNone
Measured27 Sep 2026, 20:04 UTC
Set againstCiti Bike app; Transit; CityBikes
Main limitReports only; no alerts, dockless bikes or streets

Certificates & subdomains

27 Sep 2026, 20:00–20:01 UTC · The original on sites.llc · Open Certificates & subdomains on labs.llc

Entry IX-04 · Internet shelf

One instrument on the /domains/ desk: every logged certificate for a domain, the subdomains they reveal, and the certificate being served now. We ran it on a small domain and a very large one.

Tested 27 Sep 2026, 20:00–20:06 UTC · 2 comparators · labs.llc/domains/certs/

labs.llc/domains/certs/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

This is one of ten instruments on the labs.llc /domains/ desk. Give it a domain and it lists every TLS certificate the public Certificate Transparency logs hold for it, read through crt.sh, plus the subdomain names those certificates reveal, which of them a valid certificate still covers today, and the certificate the apex and www. are serving right now. Both lists export as CSV.

It is for site owners, IT and security staff, and anyone who wants to know what a domain's certificates give away and when the live one expires.

02 How it works

The browser (domains/assets/js/dc-certs.js, 1,233 lines) calls the site's own relay, which queries crt.sh for the domain and for every subdomain and removes duplicates by serial. It reads crt.sh's answer object by object instead of decoding it whole, at about 0.6 KB a certificate, listing the newest 5,000 and counting up to 40,000. It asks crt.sh no more than 20 times a minute and caches for six hours. If crt.sh fails, it shows nothing rather than a guess and says why; an older copy is served only with its fetch date (tools_certs.php:8-18, 35-38, 70-79, 127).

Alongside the logs, the relay opens a live TLS handshake to the apex and www. and parses the certificate served (tools_certs.php:19-21, 402-404). The browser then recomputes days left against your clock and applies the RFC 6125 wildcard rule, under which *.example.com covers a.example.com but not a.b.example.com. It also flags certificates near expiry with no successor in the logs (dc-certs.js:47-56, 279-291).

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:00:29wikipedia.org through the local relayHTTP 200 in 25.1 s. crt.sh answered 503; the relay said so and listed nothing. The live probe still worked: *.wikipedia.org, Let's Encrypt, 41 names, TLS 1.3, chain of 4, 36 days left.
20:00:59crt.sh asked directly, both query formsHTTP 200 in 0.5 s (26,174 bytes) and 4.9 s (14,520 bytes).
20:01:10example.com through the local relayHTTP 200 in 23.6 s: 43 certificates from 86 rows, 9 issuers, 6 subdomain names; apex and www. on TLS 1.3, 89 days left.

The wikipedia.org run shows the design working under failure. The source was down, the page said exactly that, and the live half still answered. It also shows the cost: both lookups ran close to the relay's 25-second wait.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Certificates & subdomains goes further.

crt.sh

Fetched 27 Sep 2026, 20:06 UTC; JSON output measured directly at 20:00 UTC.

The public Certificate Transparency search: look up certificates by domain, organisation, fingerprint or crt.sh ID, with JSON output.

Where it does better
  • It is the source, queried with no relay in between.
  • Searches by organisation and by fingerprint as well as by domain.
  • Answered in 0.5 to 4.9 s against 23.6 s through the relay.
Where Certificates & subdomains goes further
  • Turns rows into answers: current coverage under the wildcard rule, and lapses with no successor.
  • Adds the certificate actually served now.
  • CSV exports of both tables (dc-certs.js:314-330).

Qualys SSL Labs, SSL Server Test

Fetched 27 Sep 2026, 20:06 UTC.

A free deep analysis of a public HTTPS server's TLS configuration, ending in a letter grade from A+ to F.

Where it does better
  • Grades the whole configuration, protocols, cipher suites and chain, not one captured certificate.
  • Can keep a result off its public boards.
Where Certificates & subdomains goes further
  • Shows a domain's certificate history and exposed subdomains, which a single-server test does not attempt.
  • Says what the evidence cannot prove: a name in a certificate is not proof a host exists.

05 Where it falls short

  1. Slow: 23.6 s and 25.1 s for the two lookups, almost all of it spent waiting on crt.sh.
  2. It rests on one free monitor. When crt.sh returned 503 for wikipedia.org there was no history to show, honestly reported but empty.
  3. The live check covers only the apex and www., and it does not grade the server's TLS set-up.
  4. Names covered only by a wildcard never appear individually, so the list is of names ever written into a certificate, not every host; the page says so itself.

06 Filing note

File under What a domain's certificates reveal, and whether the live one is close to lapsing.

This instrument does the reading that crt.sh leaves to you, and adds the one thing the logs cannot: what the server presents today. It refuses to guess when its source fails, which we saw in practice. The cost is patience. Go to crt.sh for speed or organisation searches, and to SSL Labs for a configuration grade.

Open Certificates & subdomains on labs.llc

07 Spec sheet

IX-04 · Certificates & subdomains · as tested
Addresslabs.llc/domains/certs/
Where it runsYour browser plus the labs.llc relay (tools.php?op=certs)
Sourcescrt.sh; a live TLS handshake to the apex and www.
LimitsLists 5,000, counts 40,000; 20 crt.sh queries a minute
Cache6 hours; older copies only with their date
ExportsCSV: subdomains and certificates
Lookup time23.6 s and 25.1 s
Measured27 Sep 2026, 20:00–20:01 UTC
Set againstcrt.sh; Qualys SSL Labs

Deadline

27 Sep 2026, 20:02–20:03 UTC · The original on sites.llc · Open Deadline on labs.llc

Entry IX-05 · Utilities shelf

A wall of countdown clocks where every built-in date is worked out by the page itself. We ran its astronomy outside the browser and set the answers beside the US Naval Observatory's.

Tested 27 Sep 2026, 20:02–20:07 UTC · 2 comparators · labs.llc/deadline/

labs.llc/deadline/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Deadline is a wall of countdown clocks in which every built-in date is worked out by the page. The wall covers the next equinox or solstice, the next full moon, the next US and EU clock changes, US tax day, the quarter's end, the next Friday the 13th, leap day, Christmas, New Year and the 2038 limit of 32-bit Unix time. You can add dates of your own, which stay in your browser.

It is for freelancers and finance people watching quarter ends and tax day, for sky-watchers, and for anyone counting down to something personal.

02 How it works

It is one 255-line script (deadline/assets/js/deadline.js) that makes no network request at all. The seasons use Jean Meeus's polynomials with his full 24-term periodic correction (Astronomical Algorithms, chapter 27); the full moon uses his chapter 49 lunation series (deadline.js:23-80). Clock changes follow the rules as written: the US second Sunday of March and first Sunday of November at 02:00, and the EU last Sundays of March and October at 01:00 UTC under directive 2000/84/EC. Tax day starts at 15 April and steps past weekends and Washington DC's Emancipation Day (deadline.js:101-126).

Each card prints its method and its expected accuracy, such as “good to a couple of minutes” for the seasons, and the page names the time zone it read from your browser. Your own dates sit in localStorage; if the browser refuses storage, the page warns that they will not survive a reload (deadline.js:203-208, 225-227, 252-253).

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:02:53September equinox 2026: page vs USNOPage 23 Sep 00:05:30 UTC; USNO 00:05.
20:02:53December solstice 2026Page 21 Dec 20:50:13 UTC; USNO 20:50.
20:02:53Full moons, 26 Sep and 26 OctPage 16:48:40 and 04:10:31 UTC; USNO 16:49 and 04:12.
20:03:18Page, local 537 copyHTTP 200, 41,332 bytes.

We lifted the page's own season and full-moon functions (deadline.js:21-81), ran them in JavaScriptCore, and asked the US Naval Observatory's API for the same events. The seasons land within a minute and the moons within two, as the cards promise.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Deadline goes further.

timeanddate.com, Countdown Timer

27 Sep 2026, 20:07 UTC, through a search of timeanddate.com.

Builds a countdown to any date and time, tied to the event's location and time zone, as a URL you can bookmark or share; also a free countdown widget for websites.

Where it does better
  • Ties each countdown to the event's own place and zone, which Deadline does not do for its US clock-change card or your dates.
  • A shareable link for every countdown, and an embeddable widget.
Where Deadline goes further
  • Computes the astronomy itself, and the September equinox matched the Observatory to within a minute.
  • A ready-made wall of rule-based dates, each printing its rule.

US Naval Observatory, Earth's Seasons and Apsides

Fetched 27 Sep 2026, 20:07 UTC; its API answered at 20:03 UTC.

The Observatory's service for equinoxes, solstices, perihelion and aphelion for any year from 1700 to 2100, in Universal Time, US zones or a custom offset.

Where it does better
  • It is the authority: the reference we checked Deadline against.
  • Any year from 1700 to 2100, plus perihelion and aphelion.
Where Deadline goes further
  • A live, ticking countdown to the next event, beside moons, clock changes and civil dates.
  • Works offline once loaded, because no built-in date needs a request.

05 Where it falls short

  1. The US clock-change card counts to 02:00 in your own zone (deadline.js:103-104). For a reader outside the US, that is not the moment any US zone changes.
  2. Your dates live in one browser only: no sync, no share link, no calendar export and no notification were found in the code.
  3. The built-in list is fixed and centred on the US and EU, with no choice of country.
  4. TT−UTC is held at 69 seconds (deadline.js:41): sound for now, a guess for dates far from 2026.

06 Filing note

File under Dates you can check: computed in the open, with the rule on every card.

Deadline is a small page that shows its working, and the working holds up against the Observatory. It would be stronger with a share link and a way to set a card's zone. For a single countdown to send to friends, timeanddate.com does more; for a wall of dates that needs no network and states its rules, this is the sheet to keep open.

Open Deadline on labs.llc

07 Spec sheet

IX-05 · Deadline · as tested
Addresslabs.llc/deadline/
Where it runsIn your browser; no network requests
MethodsMeeus ch. 27 and 49; US statute; EU directive 2000/84/EC
Checked accuracySeasons within 1 min, moons within 2 min of USNO
Your dateslocalStorage only
AccountNone
Measured27 Sep 2026, 20:02–20:03 UTC
Set againsttimeanddate.com Countdown; USNO
Main limitZone handling; no export or sharing

Holidays

27 Sep 2026, 20:03 and 20:14 UTC · The original on sites.llc · Open Holidays on labs.llc

Entry IX-06 · Earth shelf

Public holidays for any country on an open database, with long weekends and bridge days, plus Easter worked out on the page for any year. We checked its Easter against the database's own calendars.

Tested 27 Sep 2026, 20:03–20:14 UTC · 2 comparators · labs.llc/holidays/

labs.llc/holidays/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Holidays lists the public holidays of any country in the Nager.Date open database: local and English names, nationwide or regional scope, long weekends with the bridge days that make them, today marked, and a worldwide list of what comes next. Below it sits a computus that works out Western and Orthodox Easter for any year from 1583 to 4099, showing the arithmetic line by line, with the feasts that hang off Easter.

It is for people planning travel, leave or business across borders, and for anyone who has wondered how Easter's date is found.

02 How it works

Everything runs in the browser (holidays/assets/js/holidays.js, 183 lines) from one keyless wire that allows any origin, date.nager.at/api/v3: country list, a year's holidays, long weekends, today's status and the worldwide next list. The first country is guessed from your browser's language region and then remembered. Each holiday shows its local name beside the English one and whether it is nationwide or how many regions keep it; long weekends name the bridge days to book (holidays.js:43-49, 88-104).

The computus uses no network. Western Easter follows the Anonymous Gregorian algorithm, each quantity explained: the year's place in the moon's 19-year cycle, the epact, the days to Sunday. Orthodox Easter uses the Julian reckoning converted to the Gregorian calendar, and seven moveable feasts follow, Carnival Monday to Corpus Christi (holidays.js:131-180). Failures on the wire are put into words, and the page notes that the computus still works if the country list does not.

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:03:39Page, local 537 copyHTTP 200, 48,263 bytes.
20:03:39Country list, with a browser Origin headerHTTP 200 in 0.18 s, any origin allowed: 204 countries (the script's header still says “around 110”; the page counts live).
20:03:39Japan 2026, GB long weekends, US today, worldwideJapan: 16 holidays, including 敬老の日 on 21 Sep. GB: 4 long weekends, the first 3–5 April, no bridge day. US: HTTP 204, not a holiday. Worldwide: 28 entries.
20:14:26Page's Easter functions vs the wire's GB and GR calendars2026: Western 5 Apr, Orthodox 12 Apr. 2027: 28 Mar and 2 May. All four agree with the database.

Two things stand out in that log. The country list is far longer than the script's header says (204 against “around 110”), and the page copes because it counts the list live rather than trusting the comment. And the Easter check is independent: the page computes its dates with no network, the database lists them from its own records, and the two agree for both churches in both years.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Holidays goes further.

timeanddate.com, Holidays and Observances

27 Sep 2026, 20:07 UTC, through a search of timeanddate.com; its pages on why and how holidays are kept re-checked at 20:46 UTC.

Holiday and observance calendars, about 7,000 entries from 230 countries, with filters, extra layers such as clock changes and seasons, and a paid Holidays API with state-level data.

Where it does better
  • Wider coverage, and observances as well as public holidays.
  • State-level lists and a commercial API.
  • Background on why and how each day is kept.
Where Holidays goes further
  • Shows how Easter is found, step by step, for any year from 1583 to 4099, with the Orthodox date alongside.
  • Names the bridge days a long weekend needs.

Office Holidays

Fetched 27 Sep 2026, 20:07 UTC.

Public and bank holiday calendars for key countries, with regional and religious pages, calendars by year, year planners and upcoming lists.

Where it does better
  • Regional and religious holiday pages and year planners.
  • Context for employers, such as holiday pay rules.
Where Holidays goes further
  • Guesses your country from the browser, remembers it and marks today in the table.
  • Runs from an open, keyless database read by your browser, and names it.

05 Where it falls short

  1. Public holidays only, from one database: no observances, school holidays or religious days that are not public holidays, and only a few years either side of now. The page says so.
  2. A regional holiday shows how many regions keep it, not which ones (holidays.js:88-90).
  3. No calendar export or subscription was found in the code.
  4. One request is wasted. Today's status is fetched on every country change and then discarded, since today is marked by comparing dates (holidays.js:82-85).

06 Filing note

File under“Is it a holiday there?”, with the Easter arithmetic shown in full.

Holidays is thin on the wire and deep on the computus. It answers the everyday question quickly and credits its source, and its Easter section is a real piece of teaching whose results we confirmed. The discarded request is a small blemish, easily fixed. For observances, regional detail or a calendar feed, go to timeanddate.com or Office Holidays.

Open Holidays on labs.llc

07 Spec sheet

IX-06 · Holidays · as tested
Addresslabs.llc/holidays/
Where it runsIn your browser; no relay
SourceNager.Date (date.nager.at/api/v3), keyless
Countries at test204
Computus1583–4099, Western and Orthodox, offline
RemembersYour country, in localStorage
ExportNone found
Measured27 Sep 2026, 20:03 and 20:14 UTC
Set againsttimeanddate.com Holidays; Office Holidays

Newsy

27 Sep 2026, 20:04–20:05 UTC · The original on sites.llc · Open Newsy on labs.llc

Entry IX-07 · News shelf

A live reader built from eleven publishers' own feeds, in time order, with nothing choosing for you. We read every wire through the relay and tested its duplicate filter.

Tested 27 Sep 2026, 20:04–20:08 UTC · 2 comparators · labs.llc/newsysite/

labs.llc/newsysite/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Newsy is a live news reader built from publishers' own RSS feeds: eleven wires across five desks, Today, Business, Intl, Middle East and USA. Repeated headlines are dropped, the rest are set newest first, and the page re-reads every 100 seconds. There is no personalisation and no ranking model, and every figure on the page is counted from the stories it holds. The wires are BBC World, The New York Times, NPR, DW, Al Jazeera, WSJ Markets, CNBC, Fortune, BBC Middle East, The Hill and Politico (newsy2.js:47-78).

It is for readers who want the latest headlines from named outlets, in time order, without an algorithm or an account.

02 How it works

The engine (newsysite/newsy2.js) first tries a pre-built feed.json, made on a schedule, and falls back to the eleven wires if that file is missing, stale or thin. Each wire goes through the site's own relay, rss-proxy.php, which only fetches hosts drawn from the feed list, re-checks every redirect hop and refuses literal IPs and private ranges, so an allowed host cannot bounce it to a cloud metadata address (rss-proxy.php:11-22). The relay's fresh window is 30 seconds and the page polls every 100, so each poll can bring something new (newsy2.js:24-29, 91).

Headlines are de-duplicated in the browser on a key: lower-cased, outlet suffix, punctuation and short common words removed, cut to 72 characters. Then they are sorted newest first, with undated items last (newsy2.js:288-316). One detail shows the upkeep: the old WSJ address still answered 200, but its newest item was twenty months old, so the page moved to Dow Jones' live host (newsy2.js:56-59).

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:04:48Page, local 537 copyHTTP 200, 69,887 bytes.
20:04:48Pre-built feed.jsonAbsent from the local tree (an HTML page came back), so this copy falls back to the wires.
20:04:48All 11 wires through the local relay, fresh=1All HTTP 200 in 0.03–0.17 s: 383 items, from Fortune's 10 to DW's 133.
20:05:01The duplicate rule on the Today desk203 headlines from five outlets; 0 dropped as duplicates.

That last row matters. The rule catches near-identical wording only, so the same event told five ways by five outlets stays five items. The relay itself was quick: all eleven wires answered in under a fifth of a second, and DW alone supplied over a third of the 383 items, worth knowing when you read the Today desk.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Newsy goes further.

Google News

Help article 9005749 fetched 27 Sep 2026, 20:08 UTC; Full Coverage confirmed in help article 9005601 at 20:47 UTC.

Google's aggregator, where, by Google's own account, algorithms decide which stories appear and in what order, partly personalised from your interests and activity.

Where it does better
  • Groups coverage of one event from many outlets, which Newsy's literal filter cannot.
  • Far more publishers and languages, with local news.
Where Newsy goes further
  • No algorithmic selection and no personalisation: the order is publication time (newsy2.js:311-314).
  • Names every feed down to its address.

Ground News

Fetched 27 Sep 2026, 20:08 UTC.

A news platform that merges articles about the same event from over 50,000 sources into single stories, with bias, factuality and ownership information.

Where it does better
  • Real clustering of one story across outlets.
  • Context on each outlet: bias, factuality, ownership.
  • Tens of thousands of sources against eleven.
Where Newsy goes further
  • Straight from publishers' feeds every 100 seconds, with no rating layer between you and the headline.
  • Every number counted live from the stories held (newsy2.js:18-22).

05 Where it falls short

  1. Duplicate removal is literal. On 203 Today headlines it found no matches, so one event can appear five times.
  2. Eleven English-language outlets, mostly American and British, and no way to add or drop a source.
  3. It needs the site's relay; where the relay is missing the page cannot read the wires, and says so.
  4. Headlines and summaries only, cut at 260 characters; reading the story means going to the publisher.

06 Filing note

File under Headlines in the order they were published, from outlets you can name.

Newsy keeps a simple promise and does real work to keep it true: a fenced relay, a poll matched to its cache, a dead feed caught and replaced, counts that are counted. Its weak spot is exactly what the big aggregators do well, grouping one story across outlets. Read it for the clock; use Ground News or Google News for the shape of a story.

Open Newsy on labs.llc

07 Spec sheet

IX-07 · Newsy · as tested
Addresslabs.llc/newsysite/
Where it runsYour browser plus the labs.llc relay (rss-proxy.php)
Sources11 publisher RSS feeds, named in the code
OrderPublication time, newest first
RefreshEvery 100 s; relay fresh window 30 s
DuplicatesHeadline key, 72 characters
AccountNone
Measured27 Sep 2026, 20:04–20:05 UTC
Set againstGoogle News; Ground News

Product Lab

27 Sep 2026, 19:58 and 20:08 UTC · The original on sites.llc · Open Product Lab on labs.llc

Entry IX-08 · Design shelf

The LABS plate archive with a motto engine that reads each image before it sets type. We counted the archive from the source and say plainly what the test copy could not show.

Tested 27 Sep 2026, 19:58–20:08 UTC · 2 comparators · labs.llc/pill/

labs.llc/pill/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Product Lab is the LABS design archive: 254 rendered plates, the Orange Crush capsule series and a wider product line, filed on 14 shelves plus an All view. Each plate comes in three stocks: the gloss render, a paper print and a black-and-white “ultra” pull. On top sits a motto engine that sets a line of copy and a logo, either a built-in mark or one you upload, onto a plate in your browser. It can place both automatically in the calmest part of the image and exports PNGs singly or as contact sheets.

It is for designers, brand people and anyone who wants a finished visual with words on it, made from LABS's own renders rather than stock photography.

02 How it works

The app is one self-contained page (pill/index.html, 368,591 bytes). The plates are the site's own images; no data API is called, and the only outside host is Google Fonts. Compositing happens on a canvas at the plate's native size, every measure scaled from a 784-pixel reference (index.html:5354-5400).

AUTO placement is where the effort shows. The page shrinks each plate to 392 pixels, divides it into a 12-by-18 grid, scores every cell's brightness and activity, and sets type where activity is lowest. Reading the small copy keeps a batch thumbnail and the full render in agreement, and a code note records the change cut a 3.6 MB pixel read to 0.9 MB per plate (index.html:5162-5200). The export matte follows the stock, near-black behind gloss and off-white behind paper and ultra, so a rotated export has no halo. Large contact sheets leave through a blob URL rather than a base64 string of about 20 MB, and file names carry the stock so three exports never overwrite each other (index.html:3568-3579, 7095-7110). It can even write the copy, from 15 openers, 10 middles, 10 closers and 45 finished lines.

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
19:58:54Page, local 537 copyHTTP 200, 368,591 bytes: the whole app in one file.
19:58:54Two plate images on the local copyBoth returned the HTML page instead: the plate files ship separately and are not in the local tree.
20:08:30Archive and motto bank, counted from the source254 plates on 14 shelves (largest 42, smallest 5); 15 openers, 10 middles, 10 closers, 45 lines.

Because the plates were absent from the test copy, what this entry says about placement and export is read from the code, not from exporting a plate here.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Product Lab goes further.

Adobe Express, add text to photos

Fetched 27 Sep 2026, 20:06 UTC; its template library and colour palettes re-checked at 20:46 UTC.

An online editor for text on images, with thousands of licensed Adobe Fonts, thousands of free Adobe Stock images or your own upload, animation effects, PNG download and a free plan.

Where it does better
  • Takes your own photo as well as stock images.
  • Thousands of fonts and text animation.
  • Templates and colour palettes to start from.
Where Product Lab goes further
  • Chooses where the words go by measuring the image.
  • Three pulls of every plate, with a matte that matches.
  • Writes the copy as well as setting it, and exports a whole shelf as a contact sheet.

Canva, add text to photo

27 Sep 2026, 20:06 UTC: a direct fetch was refused (HTTP 403), so we relied on a search of canva.com.

Canva's free photo editor: upload an image, add text or font combinations, and download as JPG, PNG or other formats.

Where it does better
  • Works on any photo you upload.
  • More export formats than PNG.
  • Hundreds of fonts and ready-made pairings.
Where Product Lab goes further
  • Composites at native resolution in your browser, with memory-safe export of large sheets.
  • No sign-up step anywhere in its export code path.

05 Where it falls short

  1. It works only with LABS's 254 plates. You can upload a logo, not your own photograph, so it is not a general text-on-image editor.
  2. Downloads are PNG only; no PDF or animated output was found in the code.
  3. Its typefaces come from Google Fonts, and a single 368 KB page must load before anything works.
  4. Opened from a saved file the canvas is tainted and export fails; the page warns you, but it cannot work offline.

06 Filing note

File under Finished brand plates with copy placed by measurement, within one archive.

Product Lab is not a rival to Adobe Express or Canva as an editor, and should not be judged as one. As a finishing tool for one archive it is unusually thorough: measured placement, matched mattes, safe exports and its own copywriting. If your picture is not in the archive, use Adobe Express or Canva.

Open Product Lab on labs.llc

07 Spec sheet

IX-08 · Product Lab · as tested
Addresslabs.llc/pill/
Where it runsBrowser canvas; no data API
Archive254 plates, 14 shelves, 3 stocks
PlacementAUTO: 12 × 18 grid on a 392 px copy
Copy bank15 openers, 10 middles, 10 closers, 45 lines
ExportsPNG, single or contact sheet
Your imagesLogo yes; base photo no
Measured27 Sep 2026, 19:58 and 20:08 UTC
Set againstAdobe Express; Canva

Stocks

27 Sep 2026, 19:58 UTC · The original on sites.llc · Open Stocks on labs.llc

Entry IX-09 · Markets shelf

A watchlist that lives in your browser and fetches Yahoo's public quotes through free relays. We timed those relays and found one of them down.

Tested 27 Sep 2026, 19:58–20:05 UTC · 2 comparators · labs.llc/stocks/

labs.llc/stocks/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Stocks is a watchlist that needs no account. Add any ticker Yahoo Finance knows and you see its price, the day's move and the session range. You can chart any range from one day to the full history, and read the indices, the trending symbols and Yahoo's own predefined screeners. The list stays in your browser's localStorage and nowhere else.

It is for people who want to glance at a few tickers and a chart without signing in, and who accept that the quotes are Yahoo's public data and may lag the market.

02 How it works

Everything runs in the browser (stocks/assets/js/app.js, 1,182 lines); no labs.llc server touches a quote. Yahoo's endpoints send no CORS headers, so each request passes through one of two public relays, api.allorigins.win or proxy.cors.sh. That is where the page does its real work. It remembers which relay answered last and tries it first, and a code note records a morning when the tape took 37 seconds to fill before that change and 10 after. It runs the chain twice, because relay failures are usually brief, and counts a relay's own HTML error page as a failure whatever its status (app.js:71-95).

Quotes go through Yahoo's spark endpoint in batches of 16, because 20 symbols answer but 22 fail the whole request (app.js:140-152). Charts keep each close paired with its timestamp through the null filter, so dates cannot drift off prices (app.js:115-121). Every quote block states its source: Yahoo public data via an open relay, which may lag the tape.

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
19:58:04Page, local 537 copyHTTP 200, 63,239 bytes.
19:58:04First relay to Yahoo's chart, AAPL, one month dailyHTTP 200, 3,546 bytes in 15.2 s: price 341.07, 22 daily closes.
19:58:30Second relay, two-symbol spark requestNo connection (curl status 000).
19:58:30Yahoo asked directly, no relayHTTP 429, 23 bytes.

Read together, those lines are the page's whole situation. Yahoo refuses a bare request, one relay was down, and the other made the reader wait 15 seconds for one chart. The relay memory in the code exists for exactly this case.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Stocks goes further.

Yahoo Finance, My Portfolio

Help pages SLN4249 and SLN2310 fetched 27 Sep 2026, 20:05 UTC.

Yahoo's own watchlists and portfolios: sign in, then build a portfolio by hand, import a CSV or link a brokerage account.

Where it does better
  • Tracks holdings, not just tickers, through CSV import or a linked brokerage.
  • The list follows your account to every device.
  • Publishes which exchanges' quotes are real-time and which are delayed.
Where Stocks goes further
  • No sign-in: the list never leaves your browser (app.js:8).
  • States the source and its caveat under every quote block, not on a separate help page.

TradingView

Features and pricing pages fetched 27 Sep 2026, 20:05 UTC.

A charting and market platform with 400-plus indicators, 21 chart types, screeners and alerts; a free Basic plan and paid tiers.

Where it does better
  • Far deeper charting, with hundreds of indicators and multi-chart layouts.
  • Price alerts by browser, email, app or webhook.
  • Screeners with hundreds of filter fields.
Where Stocks goes further
  • No account, and a 36-symbol list where the free Basic plan allows one watchlist of 30.
  • Tells you what the data is and how it reached you.

05 Where it falls short

  1. Every quote depends on two free relays. At 19:58 UTC one did not connect and the other took 15.2 s; if both fail, there are no quotes.
  2. Yahoo's public feed may lag, as the page itself says, and there are no alerts, indicators or brokerage link.
  3. The list lives in one browser; it does not follow you, and clearing site data loses it.
  4. On a batched row the “day range” is the range of 15-minute closes, not the traded high and low (app.js:134-137).

06 Filing note

File under A quick, private glance at a short list, with the plumbing labelled.

Stocks builds something useful on a weak footing and is candid about the footing. The relay memory, measured batch size and paired timestamps are real engineering. Anyone who trades, needs alerts or wants indicators should use Yahoo's portfolio or TradingView; anyone who wants a private glance at a dozen names without an account is served well here, on a good relay day.

Open Stocks on labs.llc

07 Spec sheet

IX-09 · Stocks · as tested
Addresslabs.llc/stocks/
Where it runsIn your browser, through public CORS relays
SourceYahoo Finance public endpoints
Relaysapi.allorigins.win; proxy.cors.sh
Batch size16 symbols per request; list cap 36
Chart ranges1 day to full history
StoredWatchlist in localStorage
Measured27 Sep 2026, 19:58 UTC
Set againstYahoo Finance My Portfolio; TradingView

Tides

27 Sep 2026, 20:01 UTC · The original on sites.llc · Open Tides on labs.llc

Entry IX-10 · Earth shelf

A tide desk for any NOAA station: the next high and low with a countdown, and the predicted curve drawn over what the gauge recorded. We read The Battery, New York, the way the page does.

Tested 27 Sep 2026, 20:01–20:07 UTC · 2 comparators · labs.llc/tides/

labs.llc/tides/, captured from the local copy of build 537 on 27 September 2026.

01 What it is

Tides is a desk for any NOAA CO-OPS tide-prediction station. It shows the next high and the next low in the station's local time, with the height above mean lower low water (MLLW) and a live countdown, then today's table of highs and lows, then the day's predicted curve drawn against the water level the gauge actually recorded.

It is for anyone near a US coast who needs the next tide: anglers, kayakers, sailors, beach-goers and clam-diggers.

02 How it works

The browser reads everything from one host, api.tidesandcurrents.noaa.gov, which allows any origin, so no relay sits in between (tides/assets/js/app.js, 990 lines). It uses NOAA's metadata API for the station list, record and datum sheet, and its data API for predictions, observed water level and temperatures. The observed line is re-read every six minutes, the gauge's own cadence (app.js:62).

The hard part is the clock. NOAA gives times in the station's local time without the offset, and your browser could be anywhere. So the page asks for the same high/low window twice, in station time and in GMT, pairs events by height and type, and takes the commonest difference as the offset. There is no time-zone table and nothing guessed from longitude; if nothing pairs, it shows no countdown rather than a wrong one (app.js:21-44). NOAA's refusals arrive as HTTP 200 with an error body, so one wrapper turns them into real errors carrying NOAA's own sentence (app.js:15-19). A subordinate station's figures are labelled as offsets from a reference gauge elsewhere.

03 The test

Test log, 27 September 2026 (times UTC)
UTCWhat we didWhat came back
20:01:53Page, local 537 copyHTTP 200, 59,589 bytes.
20:01:53Today's highs and lows at The Battery (8518750), as the page asksHTTP 200 in 0.14 s, any origin allowed: low 03:07, high 08:56 (5.659 ft), low 15:38, high 21:17 (5.3 ft), station time.
20:01:53The station list the picker usesHTTP 200, 2,040,953 bytes in 0.17 s: 3,499 stations, 1,256 reference and 2,243 subordinate.
20:01:58Observed water level, same stationHTTP 200: 160 six-minute readings so far, the latest 1.65 ft at 15:54, flagged preliminary.

The Battery run shows why the desk needs no relay: the predictions came back in a seventh of a second with an open CORS header. The gauge had logged 160 readings by mid-afternoon, enough to draw a real line against the predicted one. The station list is the sobering row: 2,243 of the 3,499 are subordinate stations, predicted as offsets from a reference gauge elsewhere, with no observed line of their own to draw.

04 Against the field

Each comparator was read on its own site on the date shown. We credit what each does better before saying where Tides goes further.

NOAA Tides & Currents, tide predictions

Fetched 27 Sep 2026, 20:07 UTC.

NOAA's own prediction page for each station, with choices of units, datum, time zone and interval, ranges up to 31 days, XML and TXT downloads and printable annual tables.

Where it does better
  • Units, datum and time zone of your choice; the labs desk is feet above MLLW only.
  • Up to 31 days, downloads and annual tables, where the desk shows today.
  • It is the publisher of record.
Where Tides goes further
  • A countdown that stays right wherever you are, because the offset is measured from NOAA's own data.
  • Prediction and gauge on one curve, re-read every six minutes.

Tide-Forecast.com

Fetched 27 Sep 2026, 20:07 UTC.

Tide times, heights, tables and charts for 10,749 locations in 194 countries, with maps, a units preference and mobile apps.

Where it does better
  • Worldwide coverage against the US only.
  • A units preference.
  • Mobile apps.
Where Tides goes further
  • Plots what the sea actually did, from six-minute gauge readings, beside the prediction.
  • Says when a station's figure is an offset from a distant gauge.

05 Where it falls short

  1. US waters only: NOAA is the only source.
  2. Feet only; every request is hard-coded to US units (app.js:50, 142).
  3. Most stations have no gauge. 2,243 of 3,499 are subordinate, so the observed line, the desk's best feature, is missing there, though the page says so.
  4. A prediction, not a forecast: it does not model wind-driven surge ahead of time, as the page itself warns.

06 Filing note

File under The next tide at a US station, with the real sea drawn over the prediction.

Tides takes on the station's clock and solves it from NOAA's own data rather than a lookup table. Drawing the gauge over the prediction makes a surge visible at a glance. NOAA's page is the fuller reference and Tide-Forecast.com the wider atlas; for the next water at a US station, with what the gauge saw drawn in, open this desk.

Open Tides on labs.llc

07 Spec sheet

IX-10 · Tides · as tested
Addresslabs.llc/tides/
Where it runsIn your browser; no relay
SourceNOAA CO-OPS data and metadata APIs
Stations at test3,499 (1,256 reference, 2,243 subordinate)
UnitsFeet above MLLW only
Observed refreshEvery 6 minutes
RemembersYour station, in localStorage
Measured27 Sep 2026, 20:01 UTC
Set againstNOAA Tides & Currents; Tide-Forecast.com