Loading post…
Loading Detroit Meets…
Loading post…
Same deal as June, May, and April: every month I publish a plain-language log of what changed on the data and platform side — what we collect, what we removed, who we rely on, and any government or legal request we received (this month: none). If a number or a third party shows up that should not be there, you will see it here first.
This one is late. July's report should have gone out in early August and did not; it is being published on August 30 alongside the public API work. The period covered is still July 1 – July 31, and nothing from August is folded in — August gets its own report.
July was the opposite of June's single-ship month. Two release lines landed inside four days — v4.3 on July 10 and v4.4 on July 11 — plus a lot of deletion. The Privacy Policy was updated July 10; this report is the companion piece. After July 16 the month went quiet apart from dependency merges.
0031 enables pg_trgm and adds a GIN full-text index plus a trigram index on meet titles. The new public meets.search procedure does typo-tolerant search over the whole published catalog, rate-limited to 80 requests / minute / IP. No new stored fields — the indexes are computed over meet columns that were already public.POST /api/submit/flyer-upload lets a submitter attach a flyer image without an account: the server mirrors it to Catbox and hands back the hosted URL, which rides along as suggestedCoverUrl. Images only, 10 MB cap, 6 requests / minute / IP, and it turns off with the submissions kill switch.The month in ship order, for anyone diffing the repo against June's report.
| Date | Ship |
|---|---|
| July 8 | Prerender-time errors, submit-status hydration, and meet-detail UX fixes (60d3be2). Address autocomplete, geocoding, and device-location reliability (8db0afa). |
| July 9 | Support page redesign with clearer CTAs (559de45). Tabbed meet-form wizard with preview-before-save (e501e9b). Instagram prefill accuracy plus surfaced AI/cover failures (28e9a9a). |
| July 10 | v4.3. Removed map reach mode and the related-meets rail, pruned dead code, fixed the iOS Live Activity plugin (24e898f). Production polish: full-text search (0031), anonymous flyer upload, offline ETA, saved-meet auto-purge, Playwright e2e suite, PR check workflow (). June transparency report and 4.3 changelog published (). Auto-archive defaulted to one day after a meet ends (). True-OLED fix (). |
Everything from the June report still applies unless noted below. There is still no anonymous telemetry beacon and no third-party analytics SDK.
Search queries. The public meets.search procedure receives whatever you type into the search bar (capped at 120 characters) and runs it against Postgres. Queries are used to build the result set and are not written to an application table, attached to your installation id, or profiled. Like any HTTP request they can appear in short-lived Vercel access logs. The search indexes themselves store no new personal data — they index meet title, venue, address, and description, all already public.
Anonymous flyer uploads. When you attach a flyer on /submit, the image goes to our server, which validates type and size and mirrors it to Catbox. We keep the resulting files.catbox.moe URL on the submission for moderators; the upload is not tied to an account, and the only identifier involved is the request IP used for rate limiting. Catbox's own terms apply to the hosted file.
Saved-meet retention preference. Your chosen auto-removal window (default 1 day after a meet ends) is a local preference, and the purge runs on your device against your local saved list. When anonymous cloud sync is on, the resulting saved-state change syncs like any other save or unsave — we do not run a server-side deletion job against your saved rows.
Last-known drive-time cache. Meet detail may keep the most recent drive-minutes integer on your device so the estimate still renders offline. Coordinates stay on device; the value is a single integer, not a location history.
Appearance: base-color palette. Alongside theme and true-black OLED, you can pick a shadcn base-color palette. Stored in local storage only — not mirrored to us, not used for analytics.
Admin stats aggregates. /admin/stats (site administrators only) reads SQL COUNT aggregates over meets, submissions, staff accounts, active push devices, and audit rows, plus stored push dispatch counters. It does not expose individual visitor records, installation ids, or IP addresses.
24e898f)The "Can I make it?" map filter and the related-meets rail on meet detail are gone, along with the orphaned helpers and components behind them. The FEATURE_ETA_CONFIDENCE flag and its env entries were deleted with them. This is a straight reduction in what the map path computes about your position.
The Menu no longer exposes a tile-cache budget slider. Tile caching still happens with a default on-device budget; only the control was removed. Disclosed in the July 10 Privacy Policy update.
April's deletion of runtime Nominatim geocoding on map/home is still in force. July did not bring it back, and added no analytics SDK, ad network, or new render-path third party.
0031) — pg_trgm, a GIN FTS index over title/venue/address/description, and a trigram index on title; public meets.search capped at 80 req/min/IP.POST /api/submit/flyer-upload — anonymous flyer mirror to Catbox; images only, 10 MB, 6 req/min/IP, gated by the submissions feature flag.FEATURE_LIVE_ACTIVITIES=false stops client starts, ends active activities via /api/config/native-shell, and skips server push-to-start sweeps, all without an App Store rebuild. (Live Activities were removed outright in August; that lands in the next report.)story or update, and the AI flyer story published on July 16.Disclosed the on-device base-color appearance preference, the optional saved-meet auto-removal window, and the on-device last-known drive-time cache; updated the tile-cache disclosure to match the removed control. Accordion history on the Privacy Policy page.
Full list as of July 31, 2026. Render path = what loads when a typical visitor browses meets, map, or detail without submitting a form or opting into extra features.
On the render path (unchanged from June):
detmeets.com.*.basemaps.cartocdn.com. Direct tile fetch from your device; we do not pass installation or sync ids to CARTO.Off the render path — only when you take a specific action:
/submit. Your IP is not sent to Catbox; our server's is./api/address-suggest when you type in submit or the admin meet form; one-shot geocode at organizer publish; not on map/home page load.instagram.com) — our server fetches public post HTML/images when you use paste-from-link prefill (your IP is not sent to Meta; our server IP is).We do not use:
If we receive any of the above in a future month, the next report will say so. If we are ever gagged from saying so, the canary block above will simply not be repeated.
meets.search capped at 80 req/min/IP, query length capped at 120 characters.stats.view permission, then restricted to site administrators the same day.reportError / reportEvent JSON lines to Vercel function logs only; not shipped to Sentry or any vendor.If you find a security issue, message @alex.30mm on Instagram.
0031)./api/submit/flyer-upload.FEATURE_ETA_CONFIDENCE).June was quiet and operational. July was two releases in four days, and the part I am happiest about is the subtraction: reach mode gone, the related rail gone, a dead flag gone, and a tile-cache control that existed mostly to be fiddled with gone. What got added — search, flyer upload, saved-meet auto-purge, offline ETA — either stores nothing new or stores it on your device. Still no ads, no analytics SDKs, no new render-path vendors.
Apologies for the late publication. If something is wrong, missing, or you want a category tracked next month, message @alex.30mm on Instagram.
Effective: July 31, 2026 · Period covered: July 1 – July 31, 2026 (published August 30, 2026)
Privacy Policy · Terms · June 2026 Transparency Report · Detroit Meets on the App Store
FEATURE_ETA_CONFIDENCE flag.5b39e04c0a372fb55c6ea05d5fa2| July 11 | v4.4. Live Activity stacking, keyboard zoom, address suggestions, and toast styling fixed (bcb22bf). Admin Stats page added (735e2bb), then restricted to site administrators with the staff password minimum aligned to 8 characters (265d210). Runtime Live Activities kill switch (c01ea74). Saved-meets calendar export fixed on iOS and the 4.4 changelog published (8487436). |
| July 13 – July 15 | Woodward Dream Cruise added as a community-pick partner and the partner presentation system refactored to an extensible list; iOS bumped to 4.3 / build 22 (dc4bf1e). A second partner presentation followed (d227bfc). |
| July 16 | Blog posts categorized as story or update, and the AI flyer story published (c1e5e96). |
| July 25 – July 26 | Dependency merges only: actions/checkout 6→7, actions/upload-artifact 4→7, Capacitor CLI 8.4.0, Better Auth 1.6.14, @types/react 19.2.17, eslint-config-next. No product or data changes. |