Skip to content
All work
PRODUCTION2024

SocialTimetable

A data product: 17,000 engagement data points turned into one answer per query.

A data-driven tool that tells content creators the best local time to post when their audience is in another country. Built on 17,000+ engagement data points across 8 platforms, with Google Gemini collapsing the dataset into a single recommendation per country-and-platform query.

17k+
Engagement data points aggregated
8
Social platforms covered

The problem

Peak engagement advice on the internet is a blog post written once, about one country, and never updated. The genuinely hard part is not finding the data. It is time zones. A creator in Colombo targeting Los Angeles needs the answer expressed in their own local clock, across a platform whose peak differs by weekday, with daylight saving applied correctly on both ends. Get that arithmetic wrong and the tool is confidently, invisibly useless.

The approach

  • Aggregate before you infer

    17,000+ data points across 8 major platforms collected and normalised into a single baseline of engagement patterns, so the model reasons over structured data instead of hallucinating from a prompt.

  • Gemini as a reducer

    The LLM's job is to collapse a large, noisy dataset into a country-specific recommendation, a task it is actually good at, rather than to be the source of the numbers.

  • Time zones as a first-class concern

    Every answer is converted into the creator's local clock with daylight saving handled on both sides, because that conversion is the entire value of the product.

  • One question, one screen

    Pick a target country and a platform, get an actionable answer. No dashboard, no onboarding, no account.

System architecture

How it is put together

  1. Dataset

    17,000+ normalised engagement observations across 8 platforms

  2. Inference

    Gemini used as a structured reducer over the dataset, not as the data source

  3. Time engine

    Target-country peak to creator-local clock, DST-correct on both ends

  4. Delivery

    Next.js on Vercel, statically rendered where the answer is stable

Engineering decisions

The calls worth defending

The model reduces; it does not remember

Asking an LLM 'when should I post in Germany' produces a confident answer with no provenance. Giving it a normalised dataset and asking it to summarise produces an answer that traces back to something. The distinction is the whole architecture.

Interface

What shipped

  • SocialTimetable: SocialTimetable

    SocialTimetable

    Landing and query entry

  • SocialTimetable: Best-time finder

    Best-time finder

    Country and platform to a creator-local posting window