Maintaining a single prototype for multiple versions


Hi everyone,

Our client has a co-branded product (which we built and for which we are using Axure to prototype) and they use this product with different companies across the country. Some of the screens show the partner company’s logo or their multiple locations. So we started making different .rp files for the different partner companies - for e.g., one .rp for ACME1, one .rp for ACME 2 where we add label fields or the company’s logo on top of the other layers. The problem is when we make a change to the core prototype (which has dozens of pages), we’ll need to make that change in all our .rps, which will get unwieldy. Any suggestion on how to proceed with this?

Many thanks in advance!


To keep branded versions in one prototype, I would create an initial branching page (e.g, “Home” in the sitemap) with buttons or a droplist for each “brand”. Choosing a brand (clicking a button or selecting a list option) would set a global variable to that brand name or identifier. Each page would then have an OnPageLoad action to test this global variable and set things accordingly.

To make it easier, put all the “branded content” on each page in a dynamic panel (or set of dynamic panels if they are in various locations on the page) and add a state for each brand. If it is something common to all pages, such as a logo image and/or page header, create that as a Master and deploy the Master to all pages. Put the OnPageLoad event code in the master so it can take care of itself. As a simple example, with ACME1 or ACME2 as the only choices, and different logo images being the only difference, I would assign OnLoadVariable to a value of either “ACME1” or “ACME2” on my Home page. Then in my master header/logo, use OnPageLoad to set the panel state to the value of OnLoadVariable (making sure to name my states the same as the possible values.)


Many thanks! That’s tremendously helpful. Do you know if there is a way I can share a link to these prototypes from a point AFTER the brand has been chosen? Our client would prefer that their companies not know who else they are working with.


A couple of approaches you could try…

  • Make a separate “jump page” for each brand that sets the global variable and automatically loads the first page, e.g., a page named “ACME1-Start”, a page named “ACME2-Start” etc. Each jump page would be empty but have an OnPageLoad event that sets the global variable to the brand identifier (you could even use “set OnLoadVariable to [[PageName]]” ) and then “Open “Page 1” in Current Window”. So, you would either share the URL http:\\\acme1-start.html or http:\\\acme2-start.html . Both would automatically redirect to \page1.html .

  • Send out the URL without the sitemap and vary the global variable value. So, look at the URL for the Axure prototype without the sitemap, and you’ll see your global variables and their values. It would look something like this: http:\\\page_1.html#OnLoadVariable=ACME2&CSUM=1 . …These URLs can get pretty long and ugly, though.

You should also make your default (top state of dynamic panel) generic, so your brands don’t get accidentally exposed by loading or reloading the prototype “cold” (global variable doesn’t get set or gets reset to the null default.) Do note this doesn’t make things bulletproof. A knowledgeable user can inspect the HTML and figure things out.

  • Or, for more “brand security” instead of a master panel for brands, create a master or sets of masters for all common widgets/groups/panels–whatever you would not vary by brand. Thus, when you need to make a change to any of this it will be applied to all brand versions. Then, create brand-specific pages (probably best grouped into brand folders; also best to build out one whole set (for ACME1) then duplicate the branch (for ACME2) replacing the brand info on each page.) Then, create unique HTML generators for each brand. In the ACME1-HTML generator, select only the ACME1 branch of pages to publish; in the ACME2-HTML generator, select only the ACME2 branch of pages, etc. In the Publish > More Generators and Configurations menu, you can select the HTML 1 (default) item and duplicate it, then rename it. Double-click the Configuration name or click “Edit” to select which pages, fonts, etc. to use. In this way, your ACME1 prototype will only have ACME1 brand info and nothing about any other brands. More secure but more for you to set up.