Scaffold is my collection of project templates used as starting points for new development. Rather than beginning every project from scratch, I keep clean, reusable foundations here that already contain the structure, conventions, and tooling I commonly use.
Each template subfolder has its own README — treat that as the authoritative source for anything specific to that template (structure, conventions, renaming steps, changelog). This root README is just the index:
- Update the table below whenever a template is added, renamed, or removed — but leave template-specific detail in the template's own README, not here.
- Don't duplicate a template's rules here. If you find yourself writing something like "zero NuGet packages" or a renaming checklist in this file, it belongs in that template's own README instead.
- Each template keeps its own Changelog in its own README. This root README doesn't need one unless the repository-level structure itself changes (e.g. a template being added/removed) — see the note under Repository Structure below.
Scaffold/
├── SystemApp/
├── RevitAddin/
├── RevitCommon/
└── README.md
Each folder directly under the repo root is a standalone project template that can be copied or cloned to kick-start a new project — there's no src/ wrapper layer; a template's project folder sits directly beside its own .sln and README.md, and those template folders sit directly beside this one. RevitCommon is the exception to the single-.sln-at-the-root shape: it's a multi-project template (a shared-library layer plus two example addins), each with its own .sln — see its own README for the full layout.
| Template | Description | README |
|---|---|---|
| SystemApp | A WPF desktop app skeleton for Windows "system application" style tools — background utilities with optional UI, a tray icon, dark theming, hand-rolled MVVM, and JSON settings persistence. | SystemApp/README.md |
| RevitAddin | A starter template for Autodesk Revit external application add-ins, with multi-version Revit support and conventions for wiring up ribbon buttons, icons, and tooltips with minimal boilerplate. | RevitAddin/README.md |
| RevitCommon | A scaffold for sharing code (forms, extensions, Excel I/O) across multiple Revit addins — independently-versioned common libraries referenced one-way by example addins, with two example addins showing full vs. partial consumption of the shared libraries. | RevitCommon/README.md |
- Clone this repository.
- Copy the template you want (
SystemApp/,RevitAddin/, orRevitCommon/) to kick-start a new project. - Follow that template's own README for the exact renaming/setup steps (namespace, project/solution names, GUIDs where applicable, etc.).
- Start building.
The aim of Scaffold is to:
- Save time starting new projects.
- Keep project structures consistent.
- Reuse proven boilerplate and utilities.
- Experiment with improvements in one place before using them elsewhere.
More templates will be added over time as new project types emerge.