Skip to main content
THE BORG
Project · Squishy
StatusLIVE
URLsquishy.naema.app
ModesFilms + TV
SYDNEY · AEST
S
Project III · Personal Web App · Next.js
Squishy
A24-style editorial streaming aggregator for Australia — finds films AND TV series across Netflix, Stan, Binge, Prime, Disney+, Paramount+, Apple TV+. Composite scores from IMDB, Rotten Tomatoes, Metacritic, TMDB Audience. Custom watchlists, watched-state tracking, Claude Haiku similar-recommendations. Built for one user, hardened for many.
StatusLIVE AudiencePersonal · 1 user RegionAU Cost$1/mo OMDb Patron
// What It Is

Squishy is Martin's personal site for finding what to watch. Originally films only, built 27 April 2026. Redesigned 30 April 2026 with A24 editorial visual language and TV Series support.

The premise: streaming services have terrible discovery. JustWatch is comprehensive but ugly. Letterboxd is beautiful but tracks only films. No site combines the editorial sensibility of an A24 print catalogue with practical AU streaming availability and aggregated critical scores.

The toggle. Segmented pill in the masthead — Films · TV Series. Active half is gold-filled with dark text. Per-type filter state preserved when toggling — flipping back and forth doesn't lose your genre selections or themes.

Editorial design. Deep brown-black bg #0d0a08. Warm-brown cards. Cream type. Gold accent. Inter for UI, DM Serif Display italic for headlines and big numbers. Roman numeral months in the hero kicker — "30 IV 2026" style. The site reads like a quarterly print magazine.

The footer quote. "For those who watch the slow shapes form."

// What Squishy Does Differently

Composite ratings. IMDB + Rotten Tomatoes + Metacritic + TMDB Audience, averaged and normalised 0-100. No quality floors anywhere — anything with at least one rating from any source is shown. The lowest-rated film in the catalogue is visible if you scroll far enough.

TV Metacritic fallback. OMDb's TV Metacritic coverage is thin. When metacritic is null AND TMDB has 10+ votes, the slot fills with Math.round(vote_average × 10) and the third rating column relabels to "TMDB Audience" dynamically. Honest about the source.

Four watchlists. watchlist:movies, watchlist:tv, watched:movies, watched:tv. Each typed separately. Watched state is unmistakable visually — 4px gold inset border + 1px outer ring + 28px halo glow.

Claude Haiku similar-recommendations. Separate film and TV system prompts. Returns 6 similar titles with reasoning. Costs cents per session.

// Tech Stack
FrameworkNext.js 14.2.5 (Pages router)
HostingVercel (free tier)
DatabaseUpstash Redis (Vercel Marketplace)
Similar recsClaude Haiku 4.5
CatalogueTMDB (free) + OMDb Patron ($1/mo)
TypeInter + DM Serif Display
Deployvercel --prod
// Lessons Compounded

Never make up TMDB keyword IDs. Anthology, Period Drama, Post-Apocalyptic were attempted for TV themes but removed because invented keyword IDs returned junk results. Reuse confirmed-working IDs from films, or use TMDB's built-in params (with_type, with_genres) instead.

Be honest about data sources. TV Metacritic is thin via OMDb. The third rating column relabels dynamically rather than showing a misleading "N/A".

Per-type filter state preservation. Toggling between Films and TV must not lose user selections. selectedGenresMovie/TV and themeMovie/TV kept in separate state.

Editorial design is a competitive moat. Squishy looks unlike any other streaming-search site. That alone is the differentiator — the functional features are derivative; the visual language is not.

// Live Status
Primary URLsquishy.naema.app
Vercel URLsquishymovies.vercel.app
StatusLIVE
ModesFilms · TV
Cost/month~$1 USD
// Open Live Site
squishy.naema.app
// Locked Design

Palette. Brown-black #0d0a08, warm-brown #1a1410/#241c14, cream #f5ede0, gold #d8a05e.

Type. Inter + DM Serif Display italic.

Wordmark. Squishy· with gold middot.

Footer quote. For those who watch the slow shapes form.

// Likely Future Asks

New filter or sort option. Tweak A24 design. Add a third content type (anime? documentaries-only?). Improve TV theme coverage. Trakt or paid API integration for richer ratings.

// Verdict Feed
All verdicts touching this project — empty until verdicts.json populates.
View →