Home
Ashavid
Back to Portfolio
Built by AshaVidResearch Tooling / Social AnalyticsBuilt 2026

nabzx

A research-first system for reading discourse patterns on X through structural signals — hashtag co-occurrence and interaction shape — rather than by building profiles of individuals.

Public dataSchemaAnalysisRadar
Schema-constrained output is what makes the analysis chartable at all.
  1. Interface

    What the user touches

    • Next.js
    • Recharts
    • Tailwind CSS
  2. Application

    Where the rules run

    • TypeScript
  3. Intelligence

    Models and ingestion

    • OpenAI
    • Apify

A compact view of the venture

Venture
nabzx
Category
Discourse analysis
Stage
Live platform
Core challenge
Useful analysis without individual profiling
Our role
Product design and full-stack build
Focus areas
Behavioural signals, ideology axes, visualisation

Why we started building this

Social listening tools mostly resolve to profiling: build a picture of a person, infer their politics, and score them. That is commercially popular and ethically difficult, particularly where the subjects never consented to analysis.

But the questions worth asking about public conversation are usually structural. How do topics cluster? Which communities share vocabulary? Where does discourse fragment or converge?

nabzx was built to answer those questions from behavioural signals — hashtag co-occurrence, interaction structure — treating aggregate discourse as the unit of analysis instead of the individual account.

Most social analytics tools answer "who is this person?" The more useful and more defensible question is "what shape is this conversation?"

What we built

A Next.js application that ingests public X data through Apify scrapers, runs structured analysis via OpenAI against purpose-built prompt schemas, and renders results as multi-axis discourse and ideology visualisations.

  • Structured analysis pipeline

    A dedicated analysis layer with typed constants, prompts, and schemas so model output is parsed rather than read as prose.

  • Discourse radar

    Multi-dimensional visualisation of conversation characteristics across defined axes.

  • Ideology and axis scoring

    Separate charting for ideological positioning and per-axis scores across an analysed corpus.

  • Public data ingestion

    Apify-based scraping restricted to public conversation data, kept behind a clear service boundary.

  • Analysis history

    Persisted past analyses so results can be revisited and compared rather than regenerated.

  • Admin controls

    An authenticated admin surface for settings and operational control over the analysis pipeline.

Why this needed to exist

  • The commercially obvious version of this product is a profiling tool, which was the specific thing worth avoiding.

  • Aggregate discourse analysis is harder to make legible than a per-person score.

  • Model output that is not schema-constrained cannot be charted reliably.

  • Scraping public platforms is operationally fragile and needed isolation behind a service boundary.

  • Analysis runs are expensive enough that regenerating rather than persisting them is wasteful.

How we framed the opportunity

The product constraint and the ethical constraint turned out to be the same constraint: analyse the conversation, not the participants.

Structure carries more signal than identity

Hashtag co-occurrence and interaction shape describe how discourse behaves without needing to say anything about who is speaking.

Non-profiling is a design constraint, not a disclaimer

The unit of analysis was fixed at the conversation level in the data model, so the ethical position is structural rather than a policy note.

Schema-constrained output or no charts

Typed prompts and response schemas are what make model output chartable; free-text analysis cannot drive a radar.

Isolate the fragile edge

Scraping lives behind its own module so platform changes affect one boundary rather than the analysis pipeline.

Where the existing options fell short

What social listening tools do

  • Track mentions, sentiment, and reach at scale.
  • Build detailed profiles of accounts and audiences.
  • Optimise for marketing and brand monitoring use cases.

What they do not do

  • Describe the structure of a conversation rather than its volume.
  • Operate without profiling the individuals involved.
  • Serve research questions rather than campaign questions.
  • Make their analytical method inspectable.

The decisions that shaped the product

Analyse conversations, not people

The unit of analysis is the discourse pattern. Individual accounts are inputs, never the output.

Constrain the model to a schema

Typed prompts and parsed responses make the analysis reproducible and chartable rather than impressionistic.

Show the shape, not a score

Radar and axis visualisations communicate multidimensional structure that a single number would flatten away.

How it came together

  1. Phase 1

    Ingestion and analysis schema

    Build the Apify scraping boundary and define the typed analysis constants, prompts, and result schema.

  2. Phase 2

    Scoring and visualisation

    Implement discourse and ideology scoring, then render results through radar and axis charts.

  3. Phase 3

    Persistence and administration

    Add analysis history, authentication, and the admin settings surface.

Where the product stands today

  • A working analysis pipeline from public X data to structured, typed results
  • Discourse radar and ideology axis visualisations
  • A schema-constrained prompt layer producing parseable output
  • Persisted analysis history for comparison across runs
  • An authenticated admin surface for pipeline settings

What building this taught us

  • The ethical constraint often improves the product question.
  • Structural signals generalise better than identity inference.
  • Unschematised model output cannot be visualised honestly.
  • Isolate anything that depends on a platform you do not control.
  • Persist expensive analysis; recomputation is not a feature.

We build the products we would want to operate ourselves.

nabzx is one of the ventures we design, build, and run in-house at AshaVid.