We use analytics to improve Rastrum. No personal data is sold.
You're offline — changes will sync when connection returns Changelog
Version history and significant changes in Rastrum.
v1.0.1 2026-05-01
- Fix: magic link loop on PWA resolved (PKCE + execution guard)
- Fix: sync now persists identifications with needs_review status
- Fix: improved media type detection for empty MIME types
- Fix: species override works offline (saves to Dexie)
- Fix: map attempts geolocation when opening without coordinates
- Fix: Phi Vision blocked on devices with ≤4 GB RAM
- Fix: Claude plugin reads source from Edge Function
- New: taxonomy synonym correction layer (Aratinga → Psittacara)
- New: content sensitivity flag for graphic photos
- Docs: official taxonomy references for Mexico
10 pull requests
-
#350 fix(auth): resolve magic link loop on PWA callback
-
#353 fix(sync): persist client identifications with needs_review status
-
#357 fix(sync): improve media type detection for empty MIME types
-
#361 fix(manage-panel): save species override to Dexie when offline
-
#355 fix(map): attempt geolocation when map picker opens
-
#354 fix(local-ai): gate Phi Vision on device memory
-
#352 fix(identifiers): read source from Edge Function response
-
#358 fix(taxonomy): add synonym correction for outdated species names
-
#359 feat(observe): add content sensitivity flag
-
#360 docs(taxonomy): establish official taxonomy references
v1.0.0 2026-04-26
- Public launch of Rastrum
- Offline-first PWA with AI species identification
- Full bilingual EN/ES support
- Integration with PlantNet, Claude, BirdNET, Phi Vision
- Darwin Core export for GBIF
- Admin console with 28 tabs
↑↓ navigate ↵ open ⌘↵ new tab Esc close
Tap Share, then Add to Home Screen.
A new version is available.
Drag the corners to resize. Drag inside to move.
Inputs used
- The sort field you picked (observations, species, or recent activity)
- Country filter (your profile country, or the one in the URL)
- Taxon filter (when set, only observers active in that group count)
- Approximate centroid (only when "Nearby" is on and you are signed in)
Time window
Last 30 days for activity-based sorts (7-day option also available)
Inputs used
- Public sync timestamp (most recent first)
- Public visibility (private observations are excluded)
- No engagement signals — order does not depend on likes, IDs, or follows
Time window
All public observations, paginated 20 at a time
Inputs used
- Most-recent public observation timestamp per species
- Species with at least one public observation are included
- Filter chips you have set (kingdom, conservation, endemic, etc.)
Time window
All-time pool, but the order key is the latest observation date
Inputs used
- Rarity bucket of each missing species (rare → common)
- Region pool for your country (your profile country, set in Edit profile)
- Your existing pokédex (only species you have NOT yet observed are included)
- No personalisation beyond country — same pool regardless of who is signed in
Time window
Snapshot of the current region pool — refreshed when the page loads
Inputs used
- Approximate location (geohash-5 cell, ≈ ±2.4 km) of the photo or your device
- Current calendar month (seasonality)
- Count of wild public community observations matching that cell + month, descending
- Distance to the closest matching observation (tiebreaker)
- No model, no curated baseline — these are real community sightings only
- Filtered to establishment_means = wild — excludes cultivated plants and captive/domestic animals
- Filter toggle: "New to me only" — hides species already in the user's dex (has_observed_by_viewer)
Time window
Wild public observations within the same geohash-5 cell, in the current month, all years
Inputs used
- Cohort definition: users with ≥ 5 observations in the last 90 days, country MX
- Your four metrics: Shannon diversity, distinct habitats, validations cast, geographic spread (km²)
- Each percentile is your rank within the cohort for that one metric
- Hidden when the cohort is too small (n < 50) — no rank shown until the comparison is meaningful
- No public leaderboard — these numbers never leave your screen
Time window
Last 90 days for the cohort; metrics are recomputed on each page visit
Inputs used
- Country code from your profile (or inferred from your most-used region)
- Distinct count of observers who synced ≥ 1 public observation since 00:00 UTC today
- Aggregate only — no observer IDs, names, or locations are surfaced
- Banner is hidden entirely when no profile country is set (never shows "in NULL")
Time window
Today (UTC) — resets at 00:00 UTC each day
Inputs used
- Sync timestamp (most recent first)
- Country code from your profile (used to scope to nearby observers)
- Public visibility (private observations are excluded)
- No engagement signals — order does not depend on likes, IDs, or follows
Time window
Top 3 most recent synced public observations