Automatic.Umbraco.DocumentGenerator 1.0.4

dotnet add package Automatic.Umbraco.DocumentGenerator --version 1.0.4
                    
NuGet\Install-Package Automatic.Umbraco.DocumentGenerator -Version 1.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Automatic.Umbraco.DocumentGenerator" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Automatic.Umbraco.DocumentGenerator" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Automatic.Umbraco.DocumentGenerator" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Automatic.Umbraco.DocumentGenerator --version 1.0.4
                    
#r "nuget: Automatic.Umbraco.DocumentGenerator, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Automatic.Umbraco.DocumentGenerator@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Automatic.Umbraco.DocumentGenerator&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Automatic.Umbraco.DocumentGenerator&version=1.0.4
                    
Install as a Cake Tool

🚀 Automatic Umbraco Document Generator

Save 10+ hours on every Umbraco website setup.
Instantly transform design screenshots and wireframes into complete Umbraco Document Types, Element Types, Properties, and a fully-populated Multilingual Content Tree using AI.

Umbraco Version Publisher License

Website & demo video: https://umbraco-document-generator.vercel.app
Feedback, questions or bug reports: support.waqaslabs@gmail.com


🆕 What's New

1.0.4

Packaging only — adds the metadata required to list on the Umbraco Marketplace. No functional change from 1.0.3; there is no need to upgrade if you are already on it.

1.0.3

A security release. Upgrading is recommended for everyone.

  • Security: test-mode licence keys are no longer accepted. Lemon Squeezy reports keys created by a test order as valid and leaves the accept-or-refuse decision to the application. This package did not check, so a test key unlocked Pro exactly like a paid one. Keys flagged as test-mode are now refused, in every build configuration.

Does this affect you? Only if the key in your configuration came from a test checkout rather than a real purchase. A key from a genuine subscription is unaffected and needs no action. If your dashboard drops to Free after upgrading, your key was a test key — contact support.waqaslabs@gmail.com and we will sort it out.


Previously in 1.0.2

A substantial release. If you are on 1.0.1 or earlier, please upgrade — several issues that prevented the dashboard or generation from working at all are fixed here.

New features

  • Choose where Document Types are created. Every generated type now has a folder picker listing your existing Document Type folders, so schema lands where you organise it instead of always at the tree root.
  • Choose where content is seeded. Every content node has a parent picker listing your real Content tree, so generated pages can go under any existing node — not just the root.
  • Vary by Culture, per Document Type. A toggle on each type, defaulting to on when more than one publish language is selected. Turning it on makes every property on that type culture-varying.
  • Block List content seeding (Umbraco 17+). Generated pages now arrive with their Block List populated from your designs, not just an empty property.
  • Automatic Element Type detection. Section types are identified from the AI's own output rather than relying on a flag the model may omit, so a page's Block List always has blocks to allow. The per-row checkbox still lets you override any of it.
  • Diagnostics you can find later. Warnings and errors from a generation run are recorded in Umbraco's own log, tagged [DocumentGenerator] and visible under Settings → Log Viewer — so a run that didn't behave can be diagnosed after the fact, not just watched live. Your designs and content are never written there.

Fixes

  • The dashboard did not appear at all. The client bundle was emitted in a format Umbraco could not read its extension manifests from.
  • Every API call failed. The backoffice API authenticated with a cookie scheme and answered requests with a redirect to the login page instead of JSON.
  • "Expected start object" when generating a content tree. Block List values are now built as proper block data rather than raw JSON.
  • "Cannot save content with an empty name" when seeding a culture-varying tree. Culture-varying documents take their name per culture; only the invariant name was being set.
  • "The configured property editor UI could not be found" on generated properties.
  • Your own Data Types are never adopted. The generator previously picked an arbitrary existing Data Type matching an editor, so a generated page could inherit an unrelated Block List and its block types. Built-in Data Types are now addressed explicitly, and a Block List is created per page type allowing only the Element Types generated with it.
  • Structured properties are no longer filled with plain text. Multi URL Picker, Media Picker and similar editors store JSON; sample text written into them saved but then failed on read. They are now populated only with valid data, or left empty and reported.
  • Rich text properties became plain textboxes because of an editor alias renamed in Umbraco 14.
  • Multilingual selection did nothing. Generated types were always invariant.
  • Upgrades no longer require clearing your browser cache. The bundle URL now changes per release, so a new version is picked up on the next load.
  • Licence activations are counted correctly. Installations now register against your licence, so the 5-installation allowance is applied as intended.

Changed

  • Requires Umbraco 14 or later. Umbraco 13's AngularJS backoffice cannot load this dashboard.
  • Anthropic provider defaults to a current Claude model.
  • The separate Create Custom Page panel has been removed — its job is now done by the parent picker on each content node.

💡 The Problem vs. The AI Solution

⏱️ Manual Umbraco Setup (Before) ⚡ Automatic Document Generator (With AI)
Spending 6-10 hours creating dozens of Document Types, Element Types, and Properties by hand. Upload your design wireframes or screenshots and click Analyze. AI generates your schema in 30 seconds.
Manually typing property aliases (heroTitle, bodyText, mediaPicker) line by line. Automatically infers correct property types (Textstring, RichText, MediaPicker3, BlockList, etc.).
Manually creating content nodes and copying text from client mocks into Umbraco. Automatically extracts exact copy from images and seeds a full Multilingual Content Tree.
Repetitive setup work on every client project. Plug and play across all your Umbraco projects to launch websites 10x faster.

✨ Features Highlight

  • 📷 AI Design Analysis & Clipboard Paste: Drag & drop screenshots, browse files, or press Ctrl + V (or Cmd + V) to paste copied screenshots directly from your clipboard!
  • 🤖 Multi-AI Model Support: Works seamlessly with Google Gemini, OpenAI, Anthropic Claude, or Ollama (Self-Hosted / Local AI).
  • 🔄 Dynamic Umbraco Version Awareness: Auto-detects your server's Umbraco CMS version (v14, v15, v16, v17, v18+) and instructs AI to generate version-optimized Document Types.
  • 🏗️ Document & Element Type Workbench: Review, edit names, customize property aliases, toggle Element Types, set Vary by Culture, or remove items before committing to Umbraco.
  • 📁 Destination Pickers: Choose the Document Type folder for each generated type, and the Content tree parent for each generated node.
  • 🧱 Block List Generation: A Block List is created per page type, wired to the Element Types generated alongside it — and populated with content on Umbraco 17+.
  • 🌳 Automatic Content Tree Population: Seeds live content nodes with real copy extracted directly from your design images.
  • 🌍 Multilingual Publishing: Detects installed Umbraco languages (en-US, es-ES, fr-FR, de-DE, etc.) and seeds multi-culture content trees with localized sample text.
  • 🛡️ Non-destructive: Your existing Document Types and Data Types are never modified. If an alias already exists, a new uniquely-named type is created instead.
  • ⚡ 5-Attempt Free Trial: Comes out-of-the-box with 5 free generation attempts per site (up to 3 screenshots per analysis).

💡 Image Upload Best Practices for Maximum AI Accuracy

For the highest precision Document Type & Content Tree generation:

  1. Clean, Focused Screenshots: Upload crisp, high-resolution screenshots of individual pages or visual sections.
  2. Clear Typography: Ensure text in images is legible so Vision AI can extract exact copy into your Umbraco properties.
  3. Modular Page Sections: Shorter, clearer page/section screenshots allow AI to dissect layouts into precise Block Element Types and Page Templates.
  4. Use a capable model. Smaller, cheaper models often ignore parts of the requested structure. A mid or high tier model produces noticeably better Element Type and Block List results.

📋 Supported Umbraco Versions

Umbraco Version Compatibility Status Runtime
Umbraco 13.x (LTS) ❌ Not supported See note below
Umbraco 14.x ✅ Fully Supported .NET 8
Umbraco 15.x & 16.x ✅ Fully Supported .NET 9
Umbraco 17.x & 18.x ✅ Fully Supported .NET 10

Why not Umbraco 13? The dashboard is a Lit web component built for the Bellissima backoffice introduced in Umbraco 14. Umbraco 13's backoffice is AngularJS and cannot load it. Supporting 13 would require a second, separate UI rather than a compatibility shim, so it is out of scope rather than partially working.

Block List content seeding requires Umbraco 17 or later. On Umbraco 14, 15 and 16 the Block List property is still created and wired to your Element Types, but is left empty for an editor to populate. Umbraco's block storage format differs on those versions and this package only writes the format it has been verified against.


📦 Installation

Install the package into your Umbraco CMS project via NuGet:

dotnet add package Automatic.Umbraco.DocumentGenerator

Or via Package Manager Console:

Install-Package Automatic.Umbraco.DocumentGenerator

⚙️ Quick Configuration

Add your Account Key and AI settings to your Umbraco site's appsettings.json under the AutomaticDocumentGenerator section:

{
  "AutomaticDocumentGenerator": {
    "AccountKey": "YOUR_LICENCE_KEY",
    "AiProvider": "Gemini",
    "AiModel": "gemini-2.0-flash",
    "AiApiKey": "YOUR_GEMINI_API_KEY"
  }
}

Option 2: OpenAI (GPT-4o)

{
  "AutomaticDocumentGenerator": {
    "AccountKey": "YOUR_LICENCE_KEY",
    "AiProvider": "OpenAI",
    "AiModel": "gpt-4o",
    "AiApiKey": "YOUR_OPENAI_API_KEY"
  }
}

Option 3: Anthropic Claude (Sonnet 5)

{
  "AutomaticDocumentGenerator": {
    "AccountKey": "YOUR_LICENCE_KEY",
    "AiProvider": "Claude",
    "AiModel": "claude-sonnet-5",
    "AiApiKey": "YOUR_CLAUDE_API_KEY"
  }
}

Option 4: Ollama (100% Free & Self-Hosted AI)

{
  "AutomaticDocumentGenerator": {
    "AccountKey": "YOUR_LICENCE_KEY",
    "AiProvider": "Ollama",
    "AiModel": "llama3.2-vision",
    "AiApiKey": "http://localhost:11434"
  }
}

Leave AccountKey empty to use the free tier. The AI API key is yours — you obtain it from and pay your chosen provider directly; no AI usage is routed through Waqas Labs.

Tip: keep keys out of source control by setting them as environment variables instead: AutomaticDocumentGenerator__AccountKey and AutomaticDocumentGenerator__AiApiKey.


🚀 How to Use (Step-by-Step Guide)

  1. Open Umbraco Backoffice: Log into your Umbraco Backoffice and click the Automatic Document Generator dashboard tab in the Content section.
  2. Upload Screenshots: Drag & drop your client's design screenshots or wireframes (Homepage, About Us, Blog Detail, Contact, etc.).
  3. Analyze Layout with AI: Click Analyze Layouts with AI. Watch real-time process logs as the AI interprets the layout architecture.
  4. Customize the Workbench:
    • Edit Document Type names and property aliases.
    • Toggle reusable sections as Element Types for Block Lists.
    • Toggle Vary by Culture per type for multilingual sites.
    • Pick the Document Type folder each type should be created in.
    • Delete anything you don't want.
  5. Generate Document Types: Click Generate Document Types to commit the schema into Umbraco.
  6. Review the Content Tree: Switch to Content Tree Preview, choose your publish languages, and pick the parent node for each content node.
  7. Generate Content Tree: Click Generate Content Tree.
  8. Done! Refresh your Content section to see your pre-populated content tree.

Choose your publish languages before generating Document Types — culture variance is applied when the types are created.


🩺 Troubleshooting

  • Dashboard doesn't appear after upgrading from 1.0.1 or earlier. Once only, clear the cached bundle: open DevTools (F12), right-click the reload button and choose Empty Cache and Hard Reload. Ctrl + Shift + R alone is not enough. From 1.0.2 onward this is handled automatically.
  • A generation run didn't do what you expected. Go to Settings → Log Viewer in the backoffice and search for [DocumentGenerator]. Every skip and warning is recorded there with the reason.
  • Block List left empty. Expected on Umbraco 14–16 (see the compatibility note above). On 17+, the log will state why.
  • Types created with a _1 suffix. An alias of that name already existed, so a new type was created rather than modifying yours. Delete the earlier one if it was from a previous run.

Still stuck? Email support.waqaslabs@gmail.com with the [DocumentGenerator] log lines and we'll take a look.

Your designs and content are not written to your log files — only what the plugin did, and why anything was skipped.


💳 Pro Licensing & Support

  • Free Trial: 5 free generation attempts per site out-of-the-box (3 screenshots max per analysis). No account or payment required.
  • Waqas Labs Pro — $10/month: Unlocks unlimited generations, unlimited screenshot uploads, and use on up to 5 installations per licence key (typically a live site, a staging environment, and the developer machines working on it).
  • Buy a licence: Subscribe on Lemon Squeezy — your key is emailed the moment checkout completes
  • Website & demo video: https://umbraco-document-generator.vercel.app
  • Support, feedback & bug reports: support.waqaslabs@gmail.com

Feedback genuinely shapes this roadmap — if something is missing or awkward for your workflow, please say so.

Commercial License © 2026 Waqas Labs. All Rights Reserved.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.4 93 8/19/2026
1.0.3 90 8/18/2026

1.0.4
- Packaging only; no functional change from 1.0.3. Adds the metadata the Umbraco
 Marketplace requires for listing: the umbraco-marketplace tag, a package icon and
 a project URL.

1.0.3
- Security: test-mode licence keys are no longer accepted. Lemon Squeezy reports keys
 from test orders as valid and leaves the decision to the integrator, so a key issued
 by a store's test checkout — which accepts test card numbers — unlocked Pro exactly
 like a paid one. Any key flagged test_mode is now refused, in every build.

1.0.2
- Added: choose which Document Types folder each generated type is created in. A
 dropdown on every proposed type lists the folders already in your Settings tree,
 defaulting to the root so existing behaviour is unchanged.
- Added: choose where in the Content tree each node is seeded. Every node in the
 preview has a parent picker listing your real content, so generated content can go
 under an existing page instead of always landing at the root. Child nodes stay
 under their generated parent unless you point them somewhere else.
- Removed: the separate "Create Custom Page" panel. Placing content is now done
 per node, in the same place you review it.
- Fixed: the content preview seeded Block List properties with placeholder text such
 as "Home Content Blocks". Block editors hold structured JSON, so they are now left
 for the generator to build.

1.0.1
- Fixed: the backoffice dashboard did not appear. The client bundle was emitted as an
 IIFE, which exports nothing, so Umbraco could not read its manifests.
- Fixed: the dashboard element registered the same class under two custom element
 names, throwing NotSupportedError and aborting the bundle before it loaded.
- Fixed: all API calls were answered with a 302 redirect to the login page. The
 controller authenticated with Umbraco's cookie scheme instead of the bearer scheme
 the backoffice client actually sends.
- Fixed: duplicate route attributes caused ambiguous-match failures on generate and
 analyze endpoints.
- Fixed: the extension bundled its own copy of the backoffice library (632 KB),
 producing duplicate Lit and context tokens so notifications never appeared.
- Fixed: generated properties could adopt one of the site's OWN Data Types, because
 the generator asked for every Data Type using an editor and took an arbitrary one.
 On an established project a generated page inherited an unrelated Block List and
 its allowed block types. Built-in Data Types are now addressed by their stable
 GUIDs, and a Block List is created per page type allowing only the Element Types
 generated in the same run. A user-defined Data Type is never adopted.
- Fixed: "One or more Block Types ... is configured to Vary By Culture" when
 generating into an existing site. Caused by the inherited Block List above.
- Fixed: "Expected start object" when seeding a content tree. Block List values were
 written as the AI's raw JSON array; they are now built as a proper block value
 (layout / contentData / expose) using Umbraco's own model and serializer.
- Fixed: rich text properties silently became plain textboxes, because the AI was
 told to emit Umbraco.TinyMCE, which Umbraco 14 renamed to Umbraco.RichText.
- Fixed: selecting several languages produced invariant content. Generated types now
 vary by culture when more than one culture is selected, and Vary by Culture is now
 a per-Document-Type toggle in the dashboard.
- Fixed: "Cannot save content with an empty name" when seeding a culture-varying
 content tree. A varying document takes its name per culture via SetCultureName;
 only the invariant name was being set.
- Fixed: "The configured property editor UI could not be found" on generated
 properties. Data Types need an editorUiAlias as well as an editor alias, and
 Umbraco's built-in Multi URL Picker was not being matched because it is stored
 under the legacy RelatedLinks key.
- Fixed: the AI's Element Type classification was discarded, so every visual section
 became a page-level Document Type with its own root content node and no Element
 Types remained for a page's Block List to allow.
- Changed: requires Umbraco 14 or later. Umbraco 13 is no longer supported - its
 AngularJS backoffice cannot load this package's Lit dashboard.
- Changed: Anthropic provider now defaults to a current Claude model.
- Known limitation: Block List content seeding requires Umbraco 17+. On Umbraco
 14/15/16 the Block List property is created but left empty rather than filled
 with a value that has not been verified on those versions.