1-800-COMPANY Mon-Fri: 9AM - 6PM EST

User Guide

Building a Demo Site

The Demo Site Builder scaffolds a complete DNN site — real pages, content, menus and footers — from a library of ready-made template and design routes, all in one click. It is the fastest way to stand up a fully populated ACME showcase environment from scratch.

The Build demo site dialog listing the full mock library of template and design routes grouped by category
The Build demo site dialog — pick routes from the grouped mock library.

What the Demo Site Builder does

A precise picture of every resource the builder creates.

When you run the Demo Site Builder, it performs the following actions on the target DNN portal:

  1. Configures the portal skin. Sets the AcmeSkin as the default portal skin and the AcmeSkin popup skin as the admin skin, so CKEditor and Text/HTML modules handle the rich HTML content correctly.
  2. Creates core pages. Builds the standard top-level navigation pages — Home, About Us, News & Events, Services, Shop, Templates, Designs, Careers and Contact — each with its HTML content module pre-populated from the template library.
  3. Creates template library pages. Builds the full mock-sample inventory under the Templates and Designs branches of the page tree, reading content from the mock-samples/pages/ folder.
  4. Creates showcase pages. Under Designs, builds a Menu Styles section (seven named navigation-bar showcase pages), a Footers section (nine footer-style showcase pages), and a Heroes section (four hero-variant showcase pages). Each showcase page carries its own per-page AcmeSiteDesign setting so it displays the style it is documenting.
  5. Creates guide pages. Under Designs › Guides, builds the four HOWTO guide pages — the ones you are reading now.
  6. Publishes the menu configuration. Writes the ACME mega-menu config for the portal’s alias, building the navigation items that link to all the created pages.
  7. Normalises top navigation. Ensures the expected top-level pages are in the right order and hides any unexpected top-level pages that do not belong in the demo navigation.

Each page the builder creates has a per-page design applied via the AcmeSiteDesign tab setting — cycling through the 21 available menu-bar presets and 9 footer presets so every demo page shows a different visual style.

What gets built — page categories

The mock library covers every major showcase category.

Core site pages Home, About Us (with sub-pages for Mission, Values, History, Executives, Board, Departments, Advisors), News & Events, Services, Shop, Careers, Contact, Locations.
Template library Dozens of template-sample pages under the Templates branch — different page layouts and content patterns demonstrating the range of the ACME template system.
Design library Design-sample pages under the Designs branch — landing pages, SPA designs, home designs, concept pages, interactive demos and more, grouped by source version (ACMEv20, ACME21, ACMESPA1, ACMESPAV3).
Menu Styles showcase Seven dedicated pages demonstrating each navigation-bar style: Classic Dropdown, Corporate Dropdown, Top Bar Modern, Top Bar Bold, Top Bar Elegant, Corporate Light, and SaaS Dark.
Footers showcase Nine dedicated pages showing each footer variant: Default, Enterprise, Healthcare, Financial, Map, Media, Interactive, Mega, and Brutalist — see the Theme & Footer guide for descriptions of each.
Heroes showcase Four dedicated pages demonstrating hero section variants: Dark Tech, Light Creative, Glassmorphism, and Image Slider.
Guides Four HOWTO guide pages under Designs › Guides — the pages you are reading now. Rebuilt on every run so the guides always reflect the latest content.
Support pages from menu config Any page URLs referenced in the published mega-menu config that do not already exist in the DNN page tree are created as support pages automatically, so no menu link ever 404s.

Step-by-step: run the builder

Generate a full set of demo pages from the template library.

  1. Sign in as Host / SuperUser

    The Demo Site Builder requires a Host / SuperUser account — it can create new portals and modify portal settings, which is restricted to the most privileged DNN role. Administrators on child portals cannot use it. Log in at the DNN Host login page before proceeding.

  2. Open the Menu Builder

    Navigate to any page of the target site. Click the red Edit menu link in the eyebrow bar or the floating red gear button in the bottom-right corner to open the Menu Builder panel.

  3. Click “Build demo site”

    In the toolbar at the top of the Menu Builder, click the Build demo site button. This opens the Demo Site Picker dialog, which lists the full mock library of routes grouped by category.

  4. Browse the route picker

    The picker dialog shows every available route (page) in the mock library — templates, designs, core pages, showcase pages and guides. Routes are grouped into categories so you can find what you want quickly. Each route shows its name and path.

  5. Select the pages you want to build

    Tick the checkbox next to each route you want, or click Select all to choose the entire library. You do not need to select parent pages manually — the builder automatically creates every ancestor page a selected child route needs. For example, selecting designs/footers/enterprise will also create designs and designs/footers if they do not already exist.

  6. Click “Build selected pages”

    Click the Build selected pages button to start the process. The builder posts the selected routes to the BuildDemoSite.ashx handler on the server. A toast notification appears while the build is running. On a full-library build, expect it to take a few seconds depending on server performance.

  7. Review the result toast

    When the build completes, a success toast shows a summary: X pages created, Y pages updated, Z modules inserted. If any warnings were generated (e.g. a skin file was missing, or a page could not be updated), they are included in the response. You can open the browser’s developer console to inspect the full JSON response if needed.

  8. Visit the newly built site

    If the builder targeted a new portal, it opens the new site URL in a new browser tab automatically. If it targeted the current portal, simply close the Builder panel and refresh the page. All the new pages are immediately accessible via the navigation menu.

  9. Re-run any time

    You can run the Demo Site Builder again at any time — to add new pages from the library, refresh existing pages with updated content, or rebuild after template changes. The builder is idempotent: pages that already exist are updated in place (not duplicated), and pages that do not exist are created fresh. Running it again with Reset existing enabled clears old demo module content first so the fresh content is applied cleanly.

Portal targeting options

Control whether the builder runs on the current portal or creates a new one.

The Demo Site Builder supports two targeting modes, passed as parameters in the build request:

  1. Target current portal (default from the builder UI)

    When Build demo site is clicked inside the Menu Builder, it targets the current portal by passing targetCurrentPortal: true. The builder resolves the portal from the current page’s DNN tab ID and writes all pages into that portal. No new portal is created.

  2. Target a new portal (via alias slug)

    When targetCurrentPortal is false and an aliasSlug is provided (e.g. acme-demo), the builder looks for a portal at hostname/acme-demo. If it does not exist, a new DNN portal is created using the Blank Website template, the AcmeSkin is applied, and all demo pages are built inside it. If it already exists (same name), the builder reuses it.

The resetExisting option (enabled by default from the UI) clears any previously generated demo module content before rebuilding, so you always get a clean result even if you have run the builder before.

Troubleshooting

Common problems and how to resolve them.

Problem Likely cause Fix
The “Build demo site” button is not visible in the toolbar. You are not logged in as a Host / SuperUser. The Demo Site Builder requires Host/SuperUser privileges. Administrator-level accounts on child portals do not see the button. Log in with a SuperUser account.
Build fails with “Login required” or “Host/SuperUser only”. Your session expired or the request was made without credentials. Refresh the page, log in as Host again, and retry. Ensure cookies are enabled and the browser is not blocking credentials on the same-origin request.
Build fails with “Cross-origin requests rejected”. The ASHX handler received a request from a different origin. Always run the build from a page on the same domain/port as the DNN site. Do not attempt to call the endpoint from an external origin.
Some pages were created but others are missing. A subset of routes failed due to missing template files or DNN errors. Check the warnings list in the build result toast (or the server logs). Missing template HTML files produce warnings but do not abort the entire build — re-run after correcting the files.
Newly built pages do not show the correct design (wrong footer / menu bar). The per-page AcmeSiteDesign tab setting was not applied. Check that the AcmeSkin is correctly installed. Re-run the builder with “Reset existing” enabled. The per-page design is applied inside ApplyPerPageDesign() which cycles through the preset arrays — if tab settings fail, a warning is added to the build result.
New portal was created but the site is unreachable. The portal alias was registered but DNS or IIS is not routing the subdirectory alias. Check that the DNN portal alias (e.g. localhost/acme-demo) is accessible in a browser directly. Ensure the DNN PortalAlias record was created (visible in DNN Admin › Site Management).
Build completes but the navigation menu still shows old items. The menu config was published but the browser is reading a cached version. Hard-refresh (Ctrl+Shift+R / Cmd+Shift+R). The menu config is updated as part of the build via PublishMenuConfigForAlias(), but browser caches may delay the update by a few seconds.

Frequently asked questions

  • Will the builder delete pages I created myself?

    No. The builder only creates or updates pages that match routes in the mock library. Your manually created pages are untouched. The only destructive step is Reset existing, which clears the demo Text/HTML module content on pages that the builder created — it never deletes pages wholesale.

  • Is it safe to run the builder multiple times?

    Yes — the builder is fully idempotent. Pages that already exist are updated; pages that do not exist are created. Running it again after making changes to the template HTML files will refresh the content on the corresponding pages. There is no risk of ending up with duplicate pages.

  • Can I select only a subset of pages to build?

    Yes. The route picker lets you tick individual routes. You can build just the Footer showcase pages, for example, without rebuilding the entire library. Parent pages are created automatically as needed. The Home page is always built regardless of selection, as it is required for the root navigation link.

  • What happens if I choose “Select all” on a large site that already has content?

    With Reset existing enabled (the default), the builder first clears the demo module content on any page it previously created, then writes the fresh content. Your own manually created pages and modules are never touched. The process may take 30–60 seconds on a full-library build.

  • Does the builder create a new portal every time?

    Only if the portal at the specified alias does not already exist. If a portal with the same site name already exists in DNN, the builder reuses it rather than creating a duplicate. From the Menu Builder UI, the current portal is always targeted, so no new portal is created.

  • Which DNN roles are required to run the builder?

    The ASHX handler enforces Host / SuperUser only. This is required because the builder can create DNN portals and modify portal-level settings, which are operations that exceed Administrator-level permissions. The button itself is hidden in the Menu Builder for all non-SuperUser accounts.

  • Can I edit the pages the builder creates?

    Yes. Every page the builder creates is a normal DNN page with a standard Text/HTML module. You can edit or restyle it exactly like any other page. Re-running the builder will overwrite the module content, so make your edits on separate modules or pages if you want to preserve them.

  • The builder returned a warning about “Could not delete old demo section”. Should I worry?

    This warning appears when the builder tries to remove legacy top-level pages from a previous build (e.g. pages named “home-corporate” or “spa” that were created by an older version). It is safe to ignore — the pages may already be deleted or may be locked by DNN permissions. The rest of the build continues normally.

ACME Demo — User Guide · Demo Site Builder