Documentation

Column reference

The splitter table has 12 columns. By default only a subset is visible. Hover the header row to reveal controls for hiding, showing, and reordering columns. Hidden columns appear in a collapsed bar above the header — click any to restore it.

Column Description Default
Subnet The CIDR notation of the subnet (e.g. 10.0.0.0/24). This is the primary identifier for each row. Visible
Name A user-assigned label. In automatic naming mode, shows the full hierarchical path (e.g. "Servers-Web-1"). In manual mode, shows only the leaf label. Click to edit. Visible
Description A short description for the subnet entry. Click the placeholder to add text. Useful for documenting the purpose of a subnet ("Core switches", "Guest Wi-Fi"). Hidden
Notes A longer free-text field. Supports multi-line content. Display settings let you control the number of visible lines (1, 2, 3, or all) and font size (normal, small, smallest). Hidden
VLAN VLAN ID computed from a macro template. See the VLAN Macros tab for the full expression language. Shows "VLAN not valid" with a tooltip when the expression cannot be resolved. Hidden
Mask The subnet mask in dotted-decimal notation (e.g. 255.255.255.0 for a /24). For IPv6 subnets, shows the prefix length. Hidden
Wildcard The inverse of the subnet mask (e.g. 0.0.0.255 for a /24). Used in ACLs on some router platforms. Hidden
Range The network address to broadcast address range. Display style is configurable: short (only shows the differing octets of the end address) or full (shows both addresses completely). The separator between addresses is also configurable. Visible
Usable The first usable host to last usable host range. Same display options as Range. For /31 point-to-point links (RFC 3021), both addresses are usable. For /32 host routes, usable matches the single address. Hidden
IPs Total number of IP addresses in the subnet (including network and broadcast). Number format is configurable: locale ("4,096"), SI ("4K"), SI.1 ("4.1K"), or raw ("4096"). Visible
Hosts Number of usable host addresses (total minus network and broadcast). Same number format options as IPs. Hidden
Split/Join Action column. Split divides a subnet into two equal halves. Join merges two sibling subnets back into their parent. The join column uses colored bars to show the tree hierarchy. Visible

Column controls

Hover the table header row to reveal controls on each column:

  • Hide — click the up-arrow button above a column label to hide it
  • Reorder — click the left/right arrow buttons to move a column
  • Restore — hidden columns appear in a bar above the header; click one to restore it
  • Reset — the reset button in the hidden-columns bar restores the default column layout
  • Settings — columns with a "settings" label (Range, Usable, IPs, Hosts, Notes, Name, VLAN) open a format picker when clicked

Range display styles

StyleExample
Short10.0.0.0 - .255
Full10.0.0.0 - 10.0.0.255

Number formats

FormatExample (4096)
Locale4,096
SI4K
SI.14.1K
Raw4096

VLAN Macro Language (VML)

The VLAN column uses a small expression language called VML. Instead of manually typing a VLAN ID for every subnet, you write a template like 100 + {o3} and the system evaluates it for each row, substituting variables with values from that row's subnet.

Templates are set globally via the VLAN column settings menu. Each tree section can also override the global template with its own.

Variables

Variables are enclosed in curly braces. They resolve to numeric values based on the subnet's network address, prefix length, or metadata.

VariableDescriptionExample (10.0.5.128/26)
{o1}First octet of the network address10
{o2}Second octet0
{o3}Third octet5
{o4}Fourth octet128
{o3 l}Left digit of third octet5 (from "5")
{o3 r}Right digit of third octet5
{o3 ll}Left two digits of third octet5 (all available digits)
{o3 rr}Right two digits of third octet5
{mask}CIDR prefix length26
{id}Section ID (parsed as integer)Depends on entry
{seq S:N}Sequential generator: S + N * leafIndexVaries by row

Operators

VML supports three arithmetic operators. Evaluation is strictly left-to-right (no operator precedence). Adjacent tokens with no operator are concatenated as strings.

OperatorMeaning
+Addition
-Subtraction
*Multiplication

Examples

TemplateInput subnetResult
{o3}10.0.5.0/245
{o3}2*310.0.5.128/26156
100+{o3}10.0.5.0/24105
{o3}*100+{o4}10.0.5.128/26628
{seq 100:1}(any, row 0)100
{seq 100:1}(any, row 1)101
{seq 100:1}(any, row 2)102
{id}*100+{o3}10.0.5.0/24, ID=2205

Presets

The VLAN settings menu includes preset templates for common patterns:

PresetTemplate
Third Octet{o3}
Site + Octet{id}*100+{o3}
Site Offset{id}+{o3}
Sequential{seq 100:1}
Octet Base 100{o3}+100
Fourth Octet{o4}+{mask}

Per-section override

Each tree section can override the global VLAN template. Click its VLAN cell in the section heading (marked GLOBAL while inheriting) and enter a local template. Clear that field (or enter only spaces) to inherit the global template again. In the global settings menu, Apply to all sections commits the visible template and clears local overrides together; Undo restores both.

Validation

Malformed syntax cannot replace the current template. Correct the associated error or press Escape to cancel. Valid formulas may still produce range or subnet-specific warnings in individual rows.

VML validates that the computed result is an integer between 1 and 4094 (the valid VLAN range). VLANs 1002–1005 are flagged with a warning because they are reserved for FDDI and Token Ring. Results that fall outside the valid range or produce non-integer values display "VLAN not valid" in the cell with a tooltip explaining the problem. Missing section IDs and IPv4-octet tokens used on IPv6 also show errors, even with warning badges disabled. Imported invalid formulas stay available for repair. Operands and intermediate results must be safe integers (at most 9,007,199,254,740,991 in magnitude); rounded arithmetic is rejected. Leading zeroes in literals are retained for concatenation. Octet slices are numeric and have no automatic padding. Sequences use the zero-based leaf position within each section; splitting or joining earlier rows can renumber later results.

Color modes and themes

Row colors are controlled by two settings: a color mode (which rows share colors) and a color theme (which palette is used). Both are accessible from the controls below the table.

Color modes

Sibling

Mergeable sibling pairs share a color from the palette. Colors cycle through the theme and restart per tree section. This is the default mode — it visually groups pairs that can be joined.

Siblings & Cousins

Consecutive rows at the same prefix length share a color. Groups subnets at the same depth in the tree, regardless of whether they are direct siblings.

Cycle

Each row gets the next palette color sequentially, wrapping around at the end. Unlike Sibling (which pairs mergeable neighbors) or Cousins (which groups by depth), Cycle assigns one color per row regardless of tree structure.

Alternating Colors

Rows alternate between two user-chosen colors. Pick any two colors from the color controls. Useful for a clean, simple look without tree-structure information.

Zebra

Classic gray/white alternating stripes. Ignores the theme palette entirely and adapts to dark or light mode automatically.

Manual

Each row can be assigned a custom color individually. A paint bucket icon appears on each row for color selection. Rows without a manual color fall back to zebra stripes.

None

All rows use a uniform gray. No color differentiation. Useful for export or when colors are distracting.

Color themes

Themes provide a palette of 8 colors used by the Sibling and Cousins modes. The active theme also tints the ambient background on the about and docs pages. Excel adds spreadsheet-style headers and grid lines while retaining your selected color mode and page appearance.

ThemeCharacter
PastelSoft blues, pinks, greens — the default
ExcelWhite and gray sheet fills, pale greens, green headers and fine grid lines
MoodyDeep purples and grays
NeonBright cyan, pink, lime
Mid-ModWarm amber, teal, red — mid-century modern
TerminalGreen, cyan, yellow — retro terminal
RainbowFull spectrum: red through violet
ForestDeep greens and browns
OceanBlues and teals
MountainWarm and cool grays
DesertAmbers, oranges, reds
PolarIce blues and whites
CanadaReds and pinks
USABlues and reds
NigeriaGreens
CubaBlues and reds
IndiaOrange, green, blue
South KoreaRed, blue, gray

How to change

The color mode picker and theme picker are in the controls area below the subnet table. Select a mode from the dropdown, then choose a theme from the palette grid. Changes apply instantly and are autosaved.

Split To: equal IPv4 subnets

Right-click an IPv4 leaf's existing /prefix link in Split / Join. Choose a target prefix through /30. For example, /24 to /26 creates 4 subnets in one Undo action. The count is the resulting subnet count. Existing prefix links still divide one leaf in half, including /30 to /31, /31 to /32, and IPv6.

Each child follows the existing names, notes, description and color inheritance rules at every split level. Sequence VLAN formulas remain positional and can renumber later rows in that section. Unavailable choices explain the 4,095-node, 8 MiB saved-file or safe-ID limit. Split To is available in Simple and Advanced modes, even when the Subnet column is hidden. There is no extra visible control.

Tab to the existing prefix link and press Shift+F10 (or the Context Menu key). Use Tab or the arrow keys, Home and End to reach a choice; Enter or Space selects it. Escape closes the popup and returns focus to the prefix link. Left-click or Enter on the prefix continues to split it in half. Unavailable choices remain focusable so their explanation can be read.

Keyboard shortcuts

The app supports undo and redo via standard keyboard shortcuts. Use Shift+F10 on an eligible prefix link to open its Split To context menu.

Action Mac Windows / Linux
Undo Cmd+Z Ctrl+Z
Redo Cmd+Shift+Z Ctrl+Shift+Z
Redo (alt) Cmd+Y Ctrl+Y

Undo/Redo details

The undo system maintains an 8-level in-memory stack. Every action (split, join, edit a name, change a color, reorder columns) captures a full state snapshot. Undo restores the previous snapshot; redo reverses the undo.

Taking a new action after undoing clears the redo stack — the standard behavior users expect. The undo/redo state is held in memory only and does not persist across page reloads.

Keyboard controls

Use Tab to reach column restore, settings, font, padding, and color controls. Enter or Space activates a button. Popup choices are also buttons; Escape closes the popup and returns focus to its trigger. Header controls become visible when keyboard focus enters the header.

Save, Load, and Export

All data lives in your browser. There is no server, no account, and no cloud storage. The app provides four ways to persist and share your work.

Save

Downloads a .json configuration file containing your complete state: all subnets, names, descriptions, notes, VLAN settings, column order, visibility, color mode, palette, and both Simple and Advanced layouts. Accepted text is preserved without truncation.

Load

Uploads a previously saved .json file and restores the full state. The file is validated before loading: node count limits, column allowlists, CIDR format checks, hex color validation, tree topology verification, and cross-tree ID uniqueness are all enforced. Invalid configs are rejected with an error message. Legacy version 2 plans are checked against their original macro rules. If a VLAN value or error status changes, a review lists the old and corrected results before loading. Accept corrected plan replaces the current plan as one undoable action; Download original preserves the exact source bytes. Unchanged plans load directly.

Plans support up to 4,095 total tree nodes, including split parents, and 8 MiB of JSON. Editing and Save use the same limits as Load. An edit that exceeds a limit is rejected without replacing the last valid plan.

Export (CSV)

Downloads a .csv file with all currently visible columns. Hidden columns are excluded. The export respects your active display settings (range format, number format). CSV fields are escaped to prevent formula injection in spreadsheet applications. Valid VLANs and reserved warnings remain numeric; invalid results have an empty VLAN field. If an exported VLAN row has an error or warning, two columns are appended: VLAN Status (valid, warning, error, or unset) and VLAN Message. All-valid exports and exports hiding VLAN keep their usual columns. This status is independent of warning badges.

Autosave

After every action, the complete state is serialized and written to localStorage. Refresh the page or close and reopen the tab to restore the saved plan, including the Advanced layout hidden by Simple mode. A previous-save recovery copy is kept when possible.

Autosave is purely local to your browser. Clearing browser data or switching browsers will lose the autosaved state. Use the Save button to create a portable backup.

Browser storage can be blocked or fill up before the file limit is reached. Planning still works, but use Save if an autosave warning appears. Invalid autosaves are retained for recovery rather than silently deleted. Cancelling a startup VLAN review protects the original autosave and pauses writes. You can edit and use Save current; Review original and Download original remain available. Save manual work before reloading while paused. Changes in another tab or in the working plan invalidate an open review; both sources are retained rather than overwriting a newer plan. Internal page links retain the unsaved-work warning while persistence is paused or has failed. If repeated saves fail, earlier original downloads remain available until a save succeeds.

Config file format

New files use version: 3 and vlanMacroVersion: 2 for corrected evaluation. Version 2 files with no macro marker or marker 1 remain loadable through the legacy check. Older deployed clients reject version 3 files, so use the updated app to reopen them. The JSON config contains a top-level object with these keys:

KeyDescription
version3 for newly saved plans
vlanMacroVersion2 for corrected left-to-right macro evaluation
treesSection metadata and flat node arrays with CIDRs, text, colors, and child ID pairs
colOrderArray of column keys in display order
visibleColsArray of currently visible column keys
layoutMode, column order/visibility, font sizes, padding, and the retained Advanced layout
colorConfigObject with mode, theme, and alternating color settings
rangeDisplayDisplay style settings for Range and Usable columns
numberDisplayNumber format settings for IPs and Hosts columns
nameDisplayNaming mode (automatic or manual)
vlanDisplayGlobal VLAN template and preset; section overrides are stored inside trees