Captive Portal

Portal Designer

The Portal Designer is a drag-and-drop visual editor for building captive portal pages — splash screens, login forms, success pages, and more. Templates created here are assigned to Journeys to control exactly what your guests see when they connect to your WiFi network.

'alt' => 'Dashboard overview', 'caption' => 'The default Kiwire dashboard layout', 'screenshot' => true, 'class' => '', ]) Drop images into: public/assets/img/docs/{page}/{filename} --}}
Image not uploaded yet public/assets/img/docs/portal-designer/overview.png
The Portal Designer template grid — thumbnails, status badges, and action buttons at a glance.

Template Grid

The main Portal Designer page displays all your templates in a thumbnail grid. Each card shows:

  • Thumbnail — an auto-generated screenshot of the template, captured on publish
  • Template name — the display name you assigned
  • Status badgeDraft (grey) or Published (green)
  • Last modified — when the template was last saved
  • Action buttons — Edit, Preview, Clone, Publish/Unpublish, Delete

Only Published templates can be selected in a Journey. A draft template is visible here for editing but will not appear in the Journey template picker.

Visual Editor

Click Edit on any template card (or Create Template for a new one) to open the full-screen visual editor.

'alt' => 'Dashboard overview', 'caption' => 'The default Kiwire dashboard layout', 'screenshot' => true, 'class' => '', ]) Drop images into: public/assets/img/docs/{page}/{filename} --}}
Image not uploaded yet public/assets/img/docs/portal-designer/editor.png
The visual editor — element toolbar on the left, canvas in the centre, property panel on the right.

Canvas

The canvas represents the live portal page. Click any element on the canvas to select it. A blue selection border and resize handles appear around the selected element. You can:

  • Drag to reposition an element freely on the canvas
  • Resize using the corner and edge handles
  • Double-click text elements to edit their content inline
  • Right-click to bring up the context menu (duplicate, delete, bring forward, send backward)

Element Toolbar

The toolbar on the left lists all available elements. Click an element to add it to the canvas, or drag it directly onto the canvas to place it at a specific position.

ElementDescription
TextHeading, paragraph, or label. Supports rich formatting (bold, italic, colour, font size, alignment).
ImageUpload or select from Portal Media. Supports PNG, JPG, GIF, SVG.
ButtonClickable button with configurable label, colour, border radius, and link URL.
Login FormThe guest authentication form. Renders the fields appropriate for the journey's login methods.
DividerHorizontal rule for visual separation. Configurable colour, thickness, and margin.
HTML BlockFree-form HTML — embed custom widgets, analytics snippets, or structured content.
Video EmbedEmbed a YouTube or Vimeo video by URL. Supports autoplay and loop options.
Social IconsPre-built icon row for social media links. Configure which icons appear and their target URLs.

Property Panel

When an element is selected, the Property Panel appears on the right side of the editor. Properties vary by element type, but common options include:

PropertyApplies to
Font family, size, weight, colourText, Button
Background colour / gradientText, Button, HTML Block
Padding (top, right, bottom, left)All elements
Border radiusImage, Button, HTML Block
Link URL / targetButton, Image, Social Icons
Alt textImage
Alignment (left / centre / right)Text, Image, Social Icons
OpacityAll elements
Z-index (layer order)All elements

Template Variables

System variables can be inserted anywhere in text or HTML elements. They are replaced with real data at the moment a guest views the portal.

VariableReplaced with
{{username}}The guest's login username
{{fullname}}The guest's full name (if available)
{{email}}The guest's email address
{{expiry}}The account expiry date and time
{{session_time}}Remaining session time in the current profile
{{tenant_name}}The tenant's display name
{{zone_name}}The name of the zone the guest connected through
{{current_date}}Today's date in the tenant's configured timezone

Use variables in a welcome message on the success page, e.g. "Welcome, {{fullname}}! Your session is valid until {{expiry}}."

Publishing Workflow

Templates follow a Draft → Published lifecycle:

  • Draft — The template is being worked on. It is not visible in Journey configuration. Guests are never served a draft template.
  • Published — The template is finalised. It can be selected in any Journey. A thumbnail screenshot is auto-generated on publish and shown in the template grid.

To publish, click the Publish button in the editor toolbar or from the template card's action menu. To revert to Draft (e.g., to make major changes), click Unpublish. Any Journeys currently using that template will retain the last published version until you publish again.

Unpublishing a template that is actively assigned to one or more Journeys will not break those Journeys — guests will continue to see the last published version. However, the template will be removed from the Journey picker for new assignments.

Template Actions

ActionDescription
CreateStart a new blank template or choose a starter layout from the library.
EditOpen the template in the visual editor.
PreviewView the template in a device frame without leaving the designer. See the Preview Mode section below.
CloneDuplicate the template under a new name. The clone starts as a Draft, even if the source was Published.
Publish / UnpublishToggle the template's status between Draft and Published.
DeletePermanently remove the template. You will be prompted to confirm. Templates assigned to active Journeys cannot be deleted.

Preview Mode

Preview mode renders the portal template in a realistic device frame so you can see exactly how guests will experience it. A device-size toggle at the top lets you switch between:

  • Desktop — full-width browser viewport
  • Tablet — ~768 px wide frame
  • Mobile — ~375 px wide frame, portrait orientation

Template variables are shown in their placeholder form (e.g., [username]) in preview mode. Use Simulation to see them resolved with real test data.

'alt' => 'Dashboard overview', 'caption' => 'The default Kiwire dashboard layout', 'screenshot' => true, 'class' => '', ]) Drop images into: public/assets/img/docs/{page}/{filename} --}}
Image not uploaded yet public/assets/img/docs/portal-designer/preview.png
Preview mode — toggle between desktop, tablet, and mobile to check your layout at every breakpoint.

Media Storage

Images uploaded within the editor are stored at:

These files are shared with the Portal Media module — any image uploaded in the designer is visible in Portal Media and vice versa. Deleting a file from Portal Media while it is referenced in a template will break its display on the live portal.

Required Permissions

view-portal-templates · create-portal-templates · edit-portal-templates · delete-portal-templates · publish-portal-templates