Spin
Spin

Spin up a new project with supreme ease

universal project scaffolding tool for building, sharing, and generating reusable project templates. Framework-agnosticLanguage-agnostic.

open source under the Apache 2.0 license.

$ curl -sSfL https://spin.pages.dev/install.sh | sh
$ spin --help

spin scaffolds projects from external templates -- git repos, local paths, or pinned specs -- for any language or
framework.

  USAGE

    spin [command] [--flags]

  COMMANDS

    add <spec> [--flags]               Pin a template locally for offline use
    completion [command]               Generate the autocompletion script for the specified shell
    help [command]                     Help about any command
    init <name> [--flags]              Scaffold a new external template directory
    list [--flags]                     List pinned templates
    new <name> [<template>] [--flags]  Scaffold a new project from a template
    registry [command]                 Manage local template registries
    remove <name> [--flags]            Remove a pinned template
    search <query> [--flags]           Search registries and pinned templates
    update [name]                      Refresh a pinned template (or all, if name is omitted)
    version                            Print the spin version

  FLAGS

    -h --help                          Help for spin
    -v --version                       Version for spin
Interactive Template Playground

Discover, pin, and scaffold in real-time.

Scaffold actual project configurations in seconds right. Select a template, pass parameters, and open your project!

STEP 1Choose Template
Custom Templates
Note: To scaffold with a custom Git repository URL or write bespoke weaving plan instructions, run the Spin CLI locally on your machine.
STEP 2Live Execution
$ spin new spin/rust-cli

Awaiting plan execution command...

Press SPIN PROJECT above to run scaffolding

Note: This is a real-time, interactive simulation of the SPIN project scaffolding CLI and Go template rendering engine. All generated file structures and contents are simulated dynamically in the browser.
The Registration Engine

Engineered for developers who craft, not just copy.

Spin acts as a universal router -- decoupling template creation from template discovery, allowing you to scaffold from any Git repository instantly.

100% Agnostic

Universal Scaffolding

Go, Rust, Node.js, Python, Java, React, Vue, Svelte. If it's a repository, it can become a Spin template. A single CLI for any language or framework.

Git Integration

Git First

Spin does not own templates. Templates remain inside their original Git repositories. Spin only knows where they are.

Simple Syntax

Rendering Engine

Spin uses Go's text/template and intentionally keeps the templating language simple. The complexity belongs in the template structure—not in the template language.

Distributed

Decentralized Registries

Anyone can create a registry. A company can host a private registry, or you can publish a public one. No central server is required.

Separation

Template vs Registry

Spin separates template creation from template discovery. Templates own the project source, Registries own discovery metadata.

Automated

Automation Friendly

Supports interactive and non-interactive execution. Perfect for shell scripts, internal tooling, developer portals, and CI pipelines.

Philosophical Core

“Instead of learning dozens of generators, users learn one CLI. Instead of building a custom generator, maintainers publish a Spin template.”

curl -sSfL https://spin.pages.dev/install.sh | sh