Home/Documentation

Documentation

Learn how to create, manage, and deploy project templates with Prefab

Getting Started

First Launch

  1. Welcome screen introduces Prefab's capabilities
  2. Choose your persona to customize the experience (Developer, Creative, Writer, Professional, or General)
  3. Starter templates are automatically installed based on your persona
  4. Interactive tour highlights key features
Demo coming soon

First launch experience and persona selection

Creating Your First Template

  1. Click New Template (⌘N) or use the + button
  2. Give your template a name and optional description
  3. Use the Blueprint tab to build your folder structure:
    • Click + Add to create folders and files
    • Click a folder or file to edit its properties
    • Use the toolbar to sort items for easier viewing
  4. Add Placeholders for dynamic content (see Placeholders section)
  5. Set up Automation (optional) for post-creation actions
  6. Deploy using the Deploy button, menu bar, or Finder right-click menu
Tip
You can also import an existing folder as a template by dragging it onto the Prefab dock icon or app window.

Core Concepts

What is a Template?

A template is a blueprint for a project structure. It contains:

  • Folders and files: The structure you want to create
  • Placeholders: Dynamic values filled in during deployment
  • Actions: Automated tasks run after creation
  • Metadata: Name, description, icon, tags

Folders and Files

The building blocks of your template:

  • Folders: Containers that can have children, colors (Finder tags), and SF Symbol icons
  • Files: Documents with optional content and placeholder substitution
Demo coming soon

Building a template structure in the Blueprint editor

Creating Templates

From Scratch

  1. Click New Template (⌘N)
  2. Name your template and add a description
  3. In the Blueprint tab, click + Add to add folders and files
  4. Click any item to edit its name, content, color, or icon

From an Existing Folder

Import an existing project to use as a starting point:

  1. Import a folder using one of these methods:
    • Drag a folder onto the Prefab dock icon or app window
    • Click Import Folder (⌘⇧I)
    • Use the menu bar icon and select "Import Folder"
  2. Choose import options:
    • Folders & Files: Import everything with content
    • Folders Only: Skip all files
    • Folders & Empty Files: Create placeholder files
  3. Toggle additional options:
    • Include hidden files: Import dotfiles like .gitignore
    • Preserve folder colors: Keep Finder color tags
    • Preserve folder icons: Keep custom folder icons
  4. Click Import
  5. Edit the imported template to add placeholders and actions
Demo coming soon

Importing an existing folder as a template

Customizing Folder Appearance

  1. In the Blueprint tab, click a folder
  2. In the properties panel:
    • Color: Choose a Finder tag color (Red, Orange, Yellow, Green, Blue, Purple, Gray)
    • Icon: Search and select an SF Symbol
  3. Colors and icons are applied when the folder is created
Note
Prefab requires macOS 26 (Tahoe). Both folder colors and SF Symbol icons are fully supported.

Placeholders

Placeholders are dynamic values wrapped in double curly braces. When you deploy a template, you'll be prompted to fill in these values.

text
{{project_name}}     → "My App"
{{client_name}}      → "Acme Corp"
{{date}}             → "2026-01-23"
{{version}}          → "1.0.0"

Where Placeholders Work

  • Folder names: {{client_name}} - {{project_name}}
  • File names: {{project_name}}.config.json
  • File contents: # {{project_name}}\n\nVersion: {{version}}
  • Terminal commands: git commit -m "Initial commit for {{project_name}}"

Built-in Placeholders

These are always available without configuration:

PlaceholderDescription
{{project_name}}Name entered at deployment
{{date}}Current date (configurable format)
{{year}}Current year
{{author}}Author name from preferences
{{folder}}Parent folder name

Adding Custom Placeholders

  1. Open your template and go to the Placeholders tab
  2. Click Add Placeholder or use Quick Add presets
  3. Configure the placeholder:
    • Key: The identifier (e.g., client_name)
    • Label: User-friendly name (e.g., "Client Name")
    • Type: Text, Number, Date, Selection, Toggle, Email, URL, File Path
    • Default Value: Pre-filled value (optional)
    • Required: Whether the user must provide a value
Demo coming soon

Adding and configuring placeholders

Tip
Use descriptive placeholder keys like {{client_name}} instead of {{cn}}. It makes templates easier to understand and maintain.

Automation

Post-creation actions run automatically after your template is deployed. Use them to initialize git, install dependencies, open your editor, and more.

Action Types

ActionExample Use
Reveal in FinderShow the created folder
Open in AppOpen in VS Code, Xcode, Figma
Terminal Commandgit init, npm install, pod install
Note
Terminal commands are available for Developer persona users. You can change your persona in Settings at any time.

Shell Runner Setup (One-Time)

To use terminal commands, you need to install a small helper script. This is a one-time setup that allows Prefab to run shell commands with access to your development tools (npm, nvm, homebrew, etc.).

  1. Go to Settings → Shell Commands
  2. Click Install Shell Runner
  3. Save the script to the suggested location (click Save in the file dialog)
  4. The status will show "Authorized" when complete
Tip
If you selected the Developer persona during onboarding, you were prompted to install the shell runner as part of the setup. You can also install it later from Settings.

Setting Up Actions

  1. Open your template and go to the Automation tab
  2. Click Add Action
  3. Choose the action type and configure it:
    • Terminal Command: Enter the command (e.g., git init && git add .)
    • Open in App: Select the application
    • Reveal in Finder: No configuration needed
  4. Configure options:
    • Label: Descriptive name for the action
    • Continue on Error: Whether to proceed if this action fails

Using Placeholders in Commands

Placeholders work in terminal commands too:

bash
# Initialize git with custom commit message
git init && git add . && git commit -m "Initial commit for {{project_name}}"

# Create a virtual environment with project name
python3 -m venv {{project_name}}_env

# Install dependencies and run setup
npm install && npm run setup:{{environment}}

How Terminal Commands Work

When you deploy a template with terminal commands:

  1. The template structure is created first
  2. Commands run in the newly created project folder
  3. Your shell environment is loaded (nvm, homebrew, etc.)
  4. Each command runs in sequence
Warning
Terminal commands run with your user permissions. Only use commands you understand and trust. Test commands manually before adding them to templates.

Deploying Templates

There are three ways to deploy a template. Choose the one that fits your workflow.

Method 1: From Within the App

  1. Open your template in Prefab
  2. Click the Deploy button
  3. Choose the destination folder
  4. Fill in any placeholder values
  5. Click Deploy

Method 2: Menu Bar

  1. Click the Prefab icon in the macOS menu bar
  2. Hover over "Create from Template"
  3. Select a template
  4. Choose destination in the file picker
  5. Fill in placeholders and deploy

Method 3: Finder Right-Click

  1. In Finder, navigate to where you want to create the project
  2. Right-click and select "New Folder(s) from Template"
  3. Choose a template from the list
  4. Fill in any placeholder values
  5. Click Deploy
Demo coming soon

Deploying a template from Finder

Tip
Enable "Background Mode" in Settings to keep Prefab in the menu bar even when the main window is closed.

Example Templates

Node.js Project

"I start 3-4 new projects a week. Each needs the same structure: src folder, tests, configs, README, and git initialized."

text
{{project_name}}/
├── src/
│   └── index.js
├── tests/
│   └── index.test.js
├── .gitignore
├── package.json
├── README.md
└── .env.example

Placeholders: project_name, description, author, license (Selection: MIT, Apache, GPL)

Actions: npm init -y → git init → Open in VS Code

Design Project

"Every client project needs the same folder structure for assets, exports, and documentation."

text
{{client_name}} - {{project_title}}/
├── 00_Brief/
│   └── Project Brief.md
├── 01_References/
├── 02_Working/
├── 03_Exports/
│   ├── Print/
│   └── Digital/
├── 04_Final/
└── 05_Archive/

Placeholders: client_name, project_title, delivery_date (Date), dimensions

Actions: Reveal in Finder → Open in Figma

Legal Matter

"Every new matter needs proper folder structure for compliance. Prefab ensures consistency across all client files."

text
{{client_name}} - {{matter_number}}/
├── 01_Client_Documents/
├── 02_Correspondence/
│   ├── Incoming/
│   └── Outgoing/
├── 03_Research/
├── 04_Pleadings/
├── 05_Discovery/
├── 06_Billing/
└── Matter_Info.md

Placeholders: client_name, matter_number, case_type (Selection), jurisdiction

Actions: Reveal in Finder

Keyboard Shortcuts

ActionShortcut
New Template⌘N
Import Folder⌘⇧I
Settings⌘,
Undo⌘Z
Redo⌘⇧Z
Cut⌘X
Copy⌘C
Paste⌘V
Delete
Select All⌘A
Toggle Sidebar⌘\

Tips & Best Practices

Template Design

  • Start with your actual workflow: Import a real project, then remove specific content and add placeholders.
  • Use descriptive placeholder keys: {{client_name}} is clearer than {{cn}}.
  • Set sensible defaults: Pre-fill common values to speed up deployment.
  • Group related placeholders: Put project info together, contact info together, etc.
  • Add help text: Explain what each placeholder is for.

Folder Organization

  • Number your folders: 01_Research, 02_Development keeps things ordered in Finder.
  • Use color coding consistently: Red for urgent, green for approved, etc.
  • Add README files: Include a README.md explaining the folder structure.

Automation

  • Chain related commands: git init && git add . && git commit -m "Initial commit"
  • Use Continue on Error wisely: Enable for non-critical commands, disable for essential setup.
  • Test commands manually first: Verify they work before adding to templates.
  • Include error handling: npm install || echo "npm install failed"

Need Help?

Check the Support page for FAQs, or contact us directly.