Working prototypes and user testing for product managers and designers.
Test a journey where the price is recalculated with every choice and every answer lands in a collection. You change it between two sessions without waiting for the engineering team to free up, starting from a description or from your imported screens.
Updated on
Demo: Lumen Stores, a fictional maker of made-to-measure awnings and blinds in Toulouse, and the configurator its product manager is putting to the test, built with Kubbler.
Named sections
The home page's tree: each line names a section (the story, the three products, the steps from measuring to fitting, the questions) with its component on the right.
A price tied to the rule
In the page being edited, the rule's sentence shows its variables (perSqm, motorPrice, depositPercent): the home page reads the rule from the database rather than copying figures.
Read the rule, recompute it
The configurator block reads the rule through the getRule route and sends the order through checkout, which redoes the sum on the server before writing to the configurations collection.
The rule, on the home page
The published home page spells out rule v3 (€180 per m², +€190 for the motor, +12% for blackout fabric) and prices a 400 x 300 cm awning, ecru fabric, hand crank: €2,160.
Lumen Stores, a demo built with Kubbler.
Lumen Stores makes and fits made-to-measure awnings, roller shutters and indoor blinds from its Gabardie workshop in Toulouse. Its product manager, Claire Fabre, is testing a configurator there before handing it to an agency: the price follows every measurement and option, and a 30% deposit is paid by card.
3 products, 5 colours, size limits per product (awnings 150 to 600 cm wide)
A rule in 4 values: price per m², motor, blackout surcharge, deposit
4 versions of the rule, from €160 to €180 per m², each kept with its configurations
Lumen Stores, Claire Fabre and the testers are fictional, the configurations are demonstration data and the deposit goes through Stripe in test mode.
The whole site, page by page
Each thumbnail is a complete page of the demo, as a visitor sees it. On a computer, hover one to scroll through it.
A test session, followed from Kubbler.
What your tester has in front of them, and what Kubbler shows you of it at the same moment: no more piecing the session together from your notes.
The tester enters their measurements
Awning, 450 cm wide with a 270 cm projection, set with sliders. The scale drawing follows along, and the panel on the right already prices the fabric: 450 x 270 cm at €180 per m², €2,187.
The home page, in the Workshop
You see the page tree on the left and the page on the right, with the expressions that tie it to the data. Between two sessions, a heading, a photo or a FAQ answer gets reworked here, in Dev.
They read the sum, line by line
Brick blackout fabric, radio motor: €2,187 of fabric, €262 for the blackout option, €190 for the motor, €2,639 in total. The tester reacts to that price, no longer to a mock-up stuck at €640.
The pricing rule, in four fields
Price per m², motor, blackout surcharge, deposit: Claire Fabre takes the m² from €180 to €165 and sees the effect on four sample configurations before publishing. Version 4 brings the 400 x 300 cm awning to €1,980 instead of €2,160.
Contact details, then the deposit
Camille Roques, Toulouse, 31500: the postcode is for the home measuring visit, in Haute-Garonne and the neighbouring departments. "Payer l'acompte de 792 €" pays 30% by card, and the €1,847 balance is due on fitting day.
One configuration, one version
The configuration goes into the configurations collection: LS reference, measurements, area, fabric, colour, motor, price, deposit, payment status and ruleVersion, the number of the rule that priced it. In production, the table can be read but not changed.
Screenshots: Lumen Stores, the configurator of a fictional Toulouse manufacturer built with Kubbler, demonstration configurations, deposit in Stripe test mode.
Every configuration that comes in carries the number of the rule that priced it.
Between two sessions, Claire Fabre publishes a new version of the rule; the next tester sees the new price, and their configuration lands at the top of this table with that number. In one week, three versions (€160, €170, then €180 per m²) each received their configurations, and the screen sets them side by side. The server recomputes every price with the rule in force: the amount shown in the browser does not decide what is charged.
21 configurations in
At the top: 21 configurations, 13 deposits paid, €7,101 collected in deposits, an average basket of €1,540.
Versions compared
Version 3, in force at €180 per m², has 10 configurations and a €1,562 average basket; v2 has 8 at €1,622, v1 has 3 at €1,248.
Signed v3, deposit paid
Olivier Gaubert, in Pibrac: a 160 x 240 cm indoor blind at €964, a €289 deposit paid, and the v3 tag at the end of the row.
What is in place before the first session, what you change in between.
For a tester to open your journey from home, it needs hosting, a database and a compliant cookie banner. They are already there: your preparation is about the journey.
Our part
What appears in none of your tickets, and still has to work from the first session.
One database to tune, one to test
You tune the journey in the preview, which has its own database. Testers' answers land in the live database, which Kubbler shows read-only.
A link to send
Published over HTTPS from OVHcloud servers in France, the journey writes to a database that belongs to your project alone, backed up automatically.
Testers' consent
The cookie banner refuses everything by default, then applies the tester's choice on every screen of the journey.
Your part
What the sessions teach you, and what you fix before the next one.
The pricing rule
Base rate, per-option supplement, cap: the values in the calculation change in the Workshop, and the next session tests the new version.
Steps and labels
One question fewer, a shorter label, a block moved: you do it in the Preview, or ask the AI for it.
Your design
Your colours and typefaces in the brand kit, or your screens imported from an HTML file, a .zip or Figma.
The tester changes an option, the price on screen stays put.
You are preparing five test sessions on a new subscription journey. In the prototype, the price stays the one you drew, whatever the tester picks, and the fields accept no input. So you ask them to imagine the rest, and what you observe becomes their reaction to a mock-up.
Getting that price to compute takes a developer, and the team is booked until next quarter. A no-code prototyping tool can wire up a formula, at the cost of one more tool to learn and a journey engineering will rebuild anyway. An agency can do it, on a quote, for a journey that will change after the first session. Tools that generate an app with AI give you a journey that computes on the first evening, but nobody can say where the testers' answers go, or what the engineering team will be able to reuse.
In Kubbler, the journey is an application: the steps are real screens, the pricing rule is a computed value you read and change in the Workshop, and every answer is saved in a collection in your project. Between two sessions, the new rule is tried in the preview before being republished for the next tester. When engineering picks it up, they open the same project and read the same rules there.
What it costs
One project and 500 sparks a month, the budget that pays for AI generations. Packs can be added if you need more.
With your own domain: €44 excl. VAT a month.
No commitment. The domain name itself is paid separately.
See all pricesWhat to have ready
The journey to test, step by step, with what the tester enters at each one.
The pricing rule, even a rough one: a starting amount, then each choice that raises or lowers it.
The questions each session needs to settle, and what you will compare from one version to the next.
Your screens as an HTML file or in Figma, if you are starting from an existing design.
Realistic content (real labels, long copy, edge cases) to put the layout to the test.
Nothing else: no specification, no mock-up.
The questions we get asked.
Including the ones where the answer is "not yet".
A clickable prototype chains images of screens. Here, every field takes input and checks it, the amount is calculated from the answers, and every completed journey is saved. Figma remains the tool for exploring, and your screens can be the starting point.
Yes, in an existing project, with a Figma token and the file key. An HTML file, or a .zip up to 16 MB, works too. The screens become editable sections in the project's colours, and the import reports what it could not convert: plan a clean-up pass in the editors.
Yes, with the Payment brick: the tester pays by card through Stripe and gets the receipt by email. Without it, the journey stops at the summary and the submission of the answer, which is already enough to test whether the offer is understood and how people react to the price.
Not yet: the application has no audience measurement tool, no funnel and no session recording. What you have are the saved answers: by comparing them with the number of testers invited, you know who reached the end, without knowing where the others stopped.
They join the project in Kubbler, with the role you give them: viewer, editor or admin. In the Workshop, they read the pricing rule, the required fields and the chain down to the collections, and they can export the API's description to OpenAPI 3.0 or a Postman collection. The code itself does not export.
Starter, at €29 excl. VAT a month, includes one project. Putting the journey online adds hosting: €15 excl. VAT monthly with your own domain, €5 excl. VAT monthly with a kubbler.app address. No commitment: you can stop once the round of testing is over.
Run your next test session on a journey that calculates.
You start from a description of the journey or from your imported screens. You reread each step and its pricing rule, then send the link to your testers.