Research synthesis

A React block (a whole screen) in Beamline's Research & design app.

A research study turned into evidence in one place. Transcripts: passages marked as accepted highlights or as the assistant's suggestions (dashed); suggestions to review with the passage, the assistant's reason (said to be a reason, not evidence) and tags; Accept puts exactly that passage into evidence and onto the canvas, Reject keeps the decision with its range, either can be undone; a suggestion made on an older transcript revision says the passage may not line up and can't be accepted. Measured silences as their own rows above a chosen threshold, with a note on the measured interval (a higher threshold hides the row but keeps the note and says so); no audio means silences can't be measured. Canvas: accepted highlights and sticky notes as cards dragged or moved with the arrow keys, selected and grouped; suggested groups dashed until kept or dismissed; deleting a group asks whether its cards stay, never touching interviews; a card whose interview was removed stays as an unavailable source; a collaborator's view can be followed; viewing only opens sources. Ask: an answer sentence by sentence with numbered sources that preview the exact words and open the transcript with the passage lit; an unsupported sentence says so; a source you can't open shows none of its words; no answer says so.

Use it for

  • A research repository where interviews become highlights, groups and answers that cite their passages.
  • Reviewing AI-suggested evidence without letting the suggestion stand in for the source.

Not for

Anatomy

  • bar: the study, how many highlights are in evidence; Transcripts, Canvas or Ask
  • transcripts: interviews with pending counts; Mark silences and its threshold; the transcript (time, speaker, words with marks) with silence rows and their notes; suggestions to review and the reviewed ones
  • canvas: Suggest groups, the selection and Group selected, people here with Follow; the board with groups (kept or suggested) and cards (highlight, note or unavailable source), a followed person's view; the delete question
  • ask: the question, the answer's sentences with numbered sources or the unsupported mark, the source preview

States

  • suggestion: suggested, reason visible, accepted, rejected, source changed, read only
  • silence: detection off, measuring, silent interval, annotated, threshold changed (note kept), audio unavailable
  • canvas: empty, cards selected, group suggested, manual group, missing source, viewing only, following a collaborator
  • answer: answering, ready, citation focused, source unavailable, no supported answer
  • narrow room: columns stack

Keyboard

  • Tab reaches every interview, suggestion, card and source; Enter or Space picks; arrow keys move a focused card (Shift for larger steps)

Motion

Marks ease when a passage is lit; a dragged card lifts and follows the pointer, groups ease to fit their cards; answer sentences fade in as they arrive. Nothing runs at rest.

Props

PropTypeDefaultDescription
study (required)string—The study's name.
interviews (required)Interview[]—
suggestionsSuggestion[]—
defaultSuggestionsSuggestion[]—
onSuggestionsChange((s: Suggestion[]) => void)—
highlightsHighlight[]—
defaultHighlightsHighlight[]—
onHighlightsChange((h: Highlight[]) => void)—
notesSilenceNote[]—
defaultNotesSilenceNote[]—
onNotesChange((n: SilenceNote[]) => void)—
cardsCanvasCard[]—
defaultCardsCanvasCard[]—
onCardsChange((c: CanvasCard[]) => void)—
groupsCanvasGroup[]—
defaultGroupsCanvasGroup[]—
onGroupsChange((g: CanvasGroup[]) => void)—
collaboratorsCollaborator[]—People on the canvas with you.
canEditboolean—May review suggestions, annotate and arrange the canvas. Default true.
onSuggestGroups((cards: CanvasCard[]) => Promise<CanvasGroup[]>)—Suggests groups for the canvas's cards.
onAskAskInterviews—Answers a question sentence by sentence, each with the excerpts behind it.
defaultViewResearchSynthesisView—
defaultInterviewstring—
defaultSilencesboolean—
defaultThresholdnumber—
defaultQuestionstring—
defaultAnswerAnswerSentence[]—
classNamestring—Classes on the documented visual root; no override by default.
styleCSSProperties—Inline styles on the documented visual root; no overrides by default.
refRef<HTMLDivElement>—Receives the documented native target or imperative handle; omitted by default.

Built from

Dependencies

lucide-react

Import

import { ResearchSynthesis } from "@beamline/research-synthesis";

Get it

Research synthesis is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent

More in Research & design

  • Study setup: Set up an unmoderated test and its screener. Test: what's tested (a website, a prototype by its share link, an app by its store page), who takes it…
  • Study flow: A study's blocks in order, each with where people go next. A block that routes by its answer (multiple choice, scale, open question, prototype task) has…
  • Participant review: One participant's session, answer by answer, beside the list of everyone who took the study. The list filters (finished, left early, with a recording)…
  • Click heatmap: One screen of a usability task as it looked (your prototype's frame or a page built from your parts, scaled into a phone) with where people clicked over…
  • Tree test: A tree test: build a navigation tree and read where people went. Build: pages added at the top or under any page, indented under the page above or moved…
  • Prototype task: A prototype task in a study. The linked prototype refreshes from the design keeping the task and paths (a start screen gone from the new version said, a…
  • Task results: A usability task's results, from headline outcomes down to paths and screens. Outcomes (direct success, indirect success, gave up) say their share and…
  • Matrix question: A matrix question and the participant's side of it, side by side. Rows (up to ten) share one set of choices (two to seven); Enter adds a row, several…
  • Prototype review: Reviewing a design file's clickable prototype. Present: the board on a stage with its wireframe, the flow chosen (an unavailable one can't be), Back…
  • Report builder: Build a chart from your metrics without code: choose metrics, how to group them over time, an optional breakdown, filters, the range and the chart, see…
  • Report library: A business's reports in one place. The directory: reports by topic and group with search, each with what it answers; one this person can't open says why…
  • Review page builder: Building the page reviewers use to go through records one by one. The queue of records (one with no title shows its id instead of a blank); the record as…
  • Database builder: What a database does for the people who use it, built in one place. Templates: starting values per property (a relation default points at an existing…
  • Workflow builder: Automation rules for a SaaS without code: a trigger, conditions built with the query builder that branch into Yes and No, actions and waits, drawn as a…
  • Workflow library: The automation library: every automation as a row (what starts it, whether it's live, a draft or paused, who owns it, when it last ran, and its runs this…
  • Drawing board: A whiteboard a team already knows how to use, like FigJam: tools in a floating bar at the bottom (Select V, Hand H, Sticky note S, Shape R/O/D, Connector…
  • Model workbench: A CAD model's workbench around a large isometric scene of its bodies, each shaded from its material's appearance with a soft ground shadow and an axis…
  • Component properties: A design system component from three sides. Its variants as a matrix on two chosen properties, the others filtering it, each cell drawing the variant; a…
  • Slot editor: Slots in a design system component, from making to filling. The main component's layer tree with a checkbox per layer: a nested frame converts to a slot…

Part of Beamline UI: polished, editable React components and complete screens for custom applications. Build your own style from any look; tokens, fonts, radii, motion; not only colours.