SenseKit: tools built around research methods
Three small tools for research methods that lose information when they're forced into generic forms, spreadsheets or whiteboards.
- Role
- Designer, Researcher & Developer
- Team
- Solo project
- Duration
- 4 months
- Client
- Personal tool suite / sensekit.eu
The project in one minute
The Challenge
Forms, whiteboards and spreadsheets are flexible, but they don't know the specific structure of these methods. So the researcher ends up doing a large part of the aggregation and visualization by hand.
My contribution
- Identified the gap between established research methods and available digital tools
- Designed and built three purpose-specific research instruments as a monorepo
- Engineered real-time data aggregation and visualization for each tool
Results and scope
3 purpose-built research instruments, each live on its own domain
The Challenge
What I was responsible for
- Identified the gap between established research methods and available digital tools
- Designed and built three purpose-specific research instruments as a monorepo
- Engineered real-time data aggregation and visualization for each tool
- Created the participant experience: no login, no setup, immediate participation
- Designed the researcher dashboard with live analytics, CSV export, and project management
- Built a shared UI component library across all three apps using Radix UI and Tailwind
Forms, whiteboards and spreadsheets are flexible, but they don't know the specific structure of these methods. So the researcher ends up doing a large part of the aggregation and visualization by hand.
SenseKit brings together three tools I built around methods I use in research and strategy: stakeholder mapping, semantic differential and competitive positioning.
The recurring problem was always the same. Data collection happened in a generic tool, and analysis then meant rebuilding by hand the spatial or statistical relationships the method already implied.
"For participants, every extra step (login, setup, instructions about the tool) takes attention away from the question. For facilitators, the problem comes later: turning scattered answers into a readable view of the group."
The main cost was post-processing time and a loss of immediacy: patterns emerged when the workshop was already over, instead of while the group could still discuss them.
Spatial coordinates, bipolar scales and response dispersion were often reduced to generic fields and rebuilt after the session.
Research
What gets lost with generic tools
Some methods need spatial input
All three methods involve positioning items in space: on axes, on scales, on matrices. Survey tools that reduce this to dropdowns or sliders lose the spatial relationship that makes the method meaningful.
Responses have to be read together
Individual responses matter less than the aggregate picture: where participants agree (tight clusters) and where they don't (wide dispersions). No existing tool showed this in real time.
2-4 hours post-processing per exercise
Manual aggregation of a 10-participant stakeholder mapping takes 2-4 hours. With SenseKit, it's instant and continuous.
Reducing obstacles for participants
Taking part has to be immediate
In a workshop, participants' attention lasts a few seconds. Logins, downloads or setup immediately reduce participation: the ideal tool is a link that opens straight onto the exercise.
For these exercises, interacting in space feels natural
Dragging an item onto a matrix is more immediate than filling in a field. Participants understand 'place this where you think it belongs' right away.
"I want to share a link and have people doing the exercise within 5 seconds."
— Personal design requirement
Key Insights
Each research method needs a fitting interaction
Stakeholder maps, semantic differentials and competitive maps have different structures. Using the same interface for all of them would lose exactly what makes each method useful.
Real-time aggregation changes when analysis can begin
Seeing results as they arrive lets the facilitator start reading patterns and differences during the session, and use them to feed the discussion.
Statistical indicators surface consensus and conflict
The average alone hides disagreement. Standard deviation in SemDiff and dispersion ellipses in CompScape also show how close or far apart the responses are.
The participant should think about the question
Participants don't need accounts or tutorials: they open the link and find the exercise straight away. Everything else stays out of their way.
A shared technical base, a different interaction for each method
The three tools share a design system, authentication and data architecture. The UI of each one is built around its method.
Goals & Principles
StakeMap: collaborative 2D positioning and aggregated results
Participants drag stakeholders onto a customizable 2D matrix. The researcher sees the average positions and dispersion clouds of all participants in real time.
SemDiff: semantic differential scales with statistical depth
Participants rate items on bipolar scales (e.g., Innovative–Traditional). The dashboard shows mean profiles with standard deviation bars, enabling comparison across participants and items.
CompScape: competitive map and degree of consensus
Participants position competitors on a 2D matrix. Dispersion ellipses reveal where participants agree and where perceptions diverge, surfacing contested positioning.
Shared: taking part without accounts or extra steps
Anonymous access via link. No login for participants. Firebase anonymous auth handles state. Project creation and analytics require researcher authentication.
Guiding Principles
The method first, then the features
Each tool implements a single method, and that method's constraints define the features.
Results aggregate as responses arrive
Results update as participants respond, with no separate processing step.
Data can be exported
The data shouldn't stay locked in SenseKit. CSV, structured data and visual exports let the analysis continue in the tools the researcher already uses.
Solution Design
Interactive diagram
From individual ratings to a shared profile
Move the three sample ratings. The mean changes, while the individual positions stay visible.
Mean rating
Circles: individual ratings. Vertical line: arithmetic mean. Different ratings can share the same mean.
Illustrative seven-point scale with three fictional responses. A small demonstration of SemDiff, not research results.
Monorepo and shared UI library
Three tools that need visual consistency and shared infrastructure, but each has distinct interaction patterns and data models.
Alternatives considered
- Single app with mode switching (simpler deployment, harder to maintain distinct UX)
- Three separate repos (independent but duplicative)
- Monorepo with shared packages (consistency + independence)
pnpm workspaces monorepo with a shared-ui package containing all base components (buttons, cards, modals, layout) built on Radix UI and Tailwind. Each app has its own Vite configuration, Firebase project, and domain (stakemap.sensekit.eu, etc.).
Each research method has fundamentally different data structures (2D coordinates vs. scale values vs. competitive positions), but the researcher-facing dashboard patterns (project management, export, settings) are identical. The monorepo lets each tool diverge where it needs to while sharing 80% of the UI infrastructure.
Trade-off: Monorepo adds build complexity. pnpm workspaces handles dependency management, but coordinating deployments across three Vercel projects requires careful CI configuration.
Real-time aggregation with Firebase Realtime Database
Participants respond asynchronously during workshops. The researcher needs to see aggregated results update continuously, without refreshing or exporting.
Alternatives considered
- Polling (simple but laggy, misses the 'real-time' requirement)
- WebSocket server (performant but infrastructure-heavy for a solo project)
- Firebase Realtime Database (built-in subscriptions, zero infrastructure)
Firebase Realtime Database with listener-based subscriptions. When a participant submits a position, the researcher's dashboard updates within milliseconds. Aggregation (means, standard deviations, dispersion ellipses) is computed client-side from the live data stream.
With Firebase subscriptions, real-time aggregation needs no polling and no custom WebSocket infrastructure. Client-side computation keeps the server stateless, and anonymous auth spares participants a login. Vendor lock-in with Firebase is an acceptable trade-off for the reliability and speed it offers.
Trade-off: Client-side aggregation works for workshop-scale datasets (5-30 participants) but won't scale to hundreds without server-side computation. Firebase's pricing model means costs scale with reads, which could matter at high participant volumes.
Dispersion ellipses to show the degree of agreement
In competitive positioning and stakeholder mapping, the average position tells you where the group center is, but it doesn't tell you if everyone agrees or if the average masks a split opinion.
Alternatives considered
- Show individual dots only (accurate but visually noisy)
- Show average only (clean but hides disagreement)
- Show average + dispersion ellipse (reveals both position and consensus)
I implemented dispersion ellipses calculated from standard deviation on both axes. A tight ellipse means consensus, a wide one means divergent perceptions. The ellipses sit alongside individual participant dots and average center points.
The dispersion ellipse is the most useful element. In a competitive analysis, seeing that 'Competitor A' has a tight ellipse (everyone agrees on its position) while 'Competitor B' has a wide one (contested perception) often matters more than the positions themselves.
Trade-off: Dispersion visualization requires enough participants (5+) to be statistically meaningful. With very few responses, ellipses can be misleading. The UI adapts by showing individual dots when participant count is low.
Outcomes & Impact
SenseKit is now a working suite of three tools. Responses are aggregated as they arrive, so facilitators can see clusters, dispersion and differences during the session without rebuilding them by hand afterward.
3 purpose-built research instruments, each live on its own domain
Listener-based real-time aggregation from participant input to researcher dashboard
Zero-friction participation: no login, no download, immediate access via link
Shared UI library: 80%+ component reuse across three distinct applications
Aggregation happens continuously during collection instead of requiring a separate manual aggregation pass
Spatial methods collect spatial input instead of going through a form
Dispersion visualization surfaces consensus and conflict that averages alone would hide
Researchers can react to incoming data during workshops instead of processing it afterward
The shared design system makes the three tools consistent
CSV export preserves all raw data for downstream analysis in R, Python, or Excel
What I delivered
- StakeMap: collaborative 2D stakeholder positioning with average positions and dispersion clouds
- SemDiff: digital semantic differential with mean profiles and standard deviation indicators
- CompScape: competitive landscape mapping with dispersion ellipses for consensus analysis
- Shared UI component library built on Radix UI and Tailwind CSS
- Firebase-powered real-time data sync and anonymous participant auth
- Researcher dashboard with project management, live analytics, and CSV export
- Marketing site at sensekit.eu with tool demos and documentation
Reflections
Sharing technical infrastructure across different tools is useful as long as it doesn't force the participant experience to become identical too.
What I would change
- Would add a collaborative facilitator mode sooner: letting the facilitator control which phase participants see during a workshop
- Would explore server-side aggregation for larger participant groups from the start
- Would build a unified researcher dashboard that shows all projects across tools in one view
What worked and what was difficult
What Worked
Starting from the method kept the features in check
Each tool implements a specific method, which naturally limited the scope: the features came from the method.
Real-time aggregation changed the workshop dynamic
Facilitators could project the dashboard during exercises, using live results as discussion prompts. Data collection and sense-making happened simultaneously rather than sequentially.
The monorepo made maintenance simpler early on
Thanks to the upfront work on shared-ui, the second and third tools were much faster to build. CompScape took a fraction of StakeMap's time because the shared base already existed.
Challenges
Statistical visualizations need solid defaults
Dispersion ellipses, standard deviation bars, and aggregation methods all require design decisions that have statistical implications. Getting the defaults right (e.g., when to show ellipses vs. individual dots) required balancing accuracy with accessibility.
Three apps also mean three deployment processes to maintain
Each tool has its own Vercel project, domain, and Firebase instance. Coordinating updates across the suite required more ops work than a single application.