Skip to content
CanopyX

Live demos built with CanopyX

A file explorer over more than 100,000 nodes, a device inventory reporting grid and a static outline, all generated in C# with CanopyX.

File explorer

A share audit across 26 shares, written with SaveHtmlBundle into static files. Nothing here runs on a server: branches and search results are files read as you need them.

Nodes
113,550
Data files
393
On disk
42.2 MB
Largest file
469 KB
File explorer /live/files/index.html Open the file explorer full screen
  1. Lazy branches

    Expand a share, then one of its departments.

    Each branch opens from one pack file in data/, read the first time you open it. The page never downloads the whole tree.

  2. Search shards

    Type budget into Search files and folders and pick a hit.

    Only the shards for the words you typed are read; the tree then opens every branch on the path to the hit.

  3. Filters

    Turn on Only changed in the last 7 days.

    Folders above a changed file stay visible, so the tree keeps its shape around the matches.

  4. Detail rows

    Expand a file that has an arrow, then its History and a version.

    The version's changes open as a before and after table inside the tree, under the file they belong to.

  5. Deep links

    Select a row and look at the address bar of the full-screen page.

    The hash carries the row's path. Opening that address expands straight to the row.

On disk/live/files/The explorer's own files, explored with CanopyXOpen the file layout
Every file the bundle writer produced for the demo above, with its size and role. Open data/ and its packs to see why one branch costs a single small file.

Device inventory

A reporting grid over 1,200 devices, written with ToHtmlPage: data and runtime in a single file you can attach to a ticket or open from disk.

Records
1,200
Grouped by
Site
Facets
Site, OS, encryption
Files
1 page
Device inventory /live/inventory.html Open the device inventory full screen
  1. Grouping

    Collapse the Berlin group heading.

    The heading keeps its count and its patch level summary; collapsed rows still count in selections and exports.

  2. Facets

    Open the filter in the Site or Operating system header and tick a few values.

    The value counts come from all 1,200 devices that match, not from the rows on screen.

  3. Aggregates

    Read the totals row under the grid, then filter.

    Average and lowest patch level follow the filtered query.

  4. Selection

    Tick a few rows, then use Select all matching.

    The status bar counts the selection. Select all matching captures the query instead of every record ID.

  5. CSV export

    Open Export and choose Download CSV.

    Pick filtered, selected or all records. The file follows the accepted query and the column order, not the visible rows.

  6. Saved views

    Hide a column, then open Views and save the layout.

    Named views keep columns, filters and sorting, and Reset view returns to the definition.

Static outline

A smaller file tree as a plain table with no script, for email, print and Word. It is the same view definition as an interactive tree.

Weekly changes CanopyStaticHtml.Render(view, options)
From
File share report
Subject
Weekly changes on three shares

Here is this week's outline. The interactive report is attached.

File shares
NameSizeModifiedOwnerState
\\files\share-a3 changed (+54)1.7 GB
Finance383.2 MB
Budget150.9 MB
Łódź office 1.xlsx (+11)30.7 MB2026-09-14 17:55 UTCdana.leviOK
Contracts 2.docx43.8 MB2026-07-27 10:15 UTCanna.kowalskaLarge
Roadmap 3.pdf40.1 MB2026-09-04 13:43 UTCerik.lundLarge
Budget 4.pptx34.1 MB2026-08-29 11:19 UTCchen.weiOK
Straße survey 5.csv2.2 MB2026-08-12 12:12 UTCchen.weiOK
Roadmap114.2 MB
Quarterly review 1.xlsx (+11)28.9 MB2026-08-10 22:37 UTCerik.lundOK
Αθήνα partners 2.docx8.4 MB2026-07-26 22:32 UTCerik.lundOK
Hiring 3.pdf8.3 MB2026-08-06 09:23 UTCben.okaforOK
Москва office 4.pptx14.5 MB2026-08-17 11:52 UTCanna.kowalskaOK
Roadmap 5.csv38.7 MB2026-08-01 15:21 UTCdana.leviLarge
Campaign 6.txt15.5 MB2026-08-04 15:35 UTCben.okaforOK
Contracts118.0 MB
Hiring 1.xlsx (+5)41.0 MB2026-08-03 21:52 UTCchen.weiLarge
Москва office 2.docx52.1 KB2026-09-06 17:54 UTCanna.kowalskaOK
Budget 3.pdf38.5 MB2026-08-08 16:05 UTCdana.leviLarge
Hiring 4.pptx38.4 MB2026-07-05 07:58 UTCchen.weiLarge
Engineering1 changed403.8 MB
Roadmap114.7 MB
Roadmap 1.xlsx (+11)13.7 MB2026-09-17 06:41 UTCchen.weiOK
Contracts 2.docx27.0 MB2026-08-06 21:39 UTCerik.lundOK
Roadmap 3.pdf16.3 MB2026-09-06 01:46 UTCerik.lundOK
Москва office 4.pptx23.6 MB2026-08-12 19:32 UTCnot collectedOK
Budget 5.csv34.2 MB2026-07-27 13:56 UTCnot collectedOK
Contracts73.6 MB
Αθήνα partners 1.xlsx (+7)6.0 MB2026-07-09 00:33 UTCben.okaforStale
Łódź office 2.docx31.9 MB2026-07-03 17:53 UTCerik.lundStale
Straße survey 3.pdf35.7 MB2026-08-03 16:25 UTCfatima.zahraOK
Campaign1 changed215.5 MB
Campaign 1.xlsx (+9)21.1 MB2026-09-18 18:52 UTCdana.leviOK
İstanbul launch 2.docx29.3 MB2026-07-09 14:41 UTCerik.lundOK
Audit 3.pdf44.9 MB2026-07-12 03:59 UTCben.okaforLarge
Campaign 4.pptxchanged39.0 MB2026-09-23 22:25 UTCben.okaforLarge
Αθήνα partners 5.csv46.3 MB2026-08-24 15:49 UTCanna.kowalskaLarge
İstanbul launch 6.txt34.8 MB2026-09-01 08:28 UTCerik.lundOK
Legal1 changed (+35)498.4 MB
Contracts1 changed (+13)199.7 MB
Showing 40 of 540 rows.
  1. No script

    Switch the site theme in the header.

    The outline follows it through the page's --cx-* properties. In a mail client its literal colours apply.

  2. Row limits

    Look for the counts after a cut branch.

    MaxRows and MaxDepth cut the outline, and each cut branch shows how many rows it hides.

  3. Print

    Print this page or save it as PDF.

    The table is plain HTML with inline styles, so it prints and pastes into Word as it looks here.

SiteDemos/Program.csC#
var options = new CanopyStaticHtmlOptions {
    MaxRows = 40, MaxDepth = 4, UseThemeVariables = true
};
string html = CanopyStaticHtml.Render(outline, options);

Every demo on this page is generated by Website/tools/SiteDemos in the CanopyX repository with the public .NET API, then served as static files. Each one follows the theme switch in the header.