elouann.dev
FR — version française

ProjectsSystems, network & algorithms

SpinUp

A web stack in one commandongoing

Period
Oct 2025 – present
Context
personal
Team
solo
  • Go
  • Vue.js
  • Docker
  • DevOps
  • System administration
  • CLI
  • Web

View source

A command-line tool that sets up a complete web project in a single command: it reads a configuration, fetches the chosen front-end and back-end templates, and installs them side by side.

Cobra : init · create · resetspin createmy-appdefaults.yaml~/.config/spinup.env${VAR:default}resolveremote + frameworkclone frontgoroutineclone backgoroutinemy-app/my-app-front/ · my-app-back/both clones run in parallel
DiagramWhat spin create does: read the configuration, resolve the templates, then clone them in parallel.

Usage

Three commands: spin init creates the default configuration in ~/.config/spinup/, spin create my-app creates the project, and spin reset resets the configuration. The configuration is a YAML file that lists template repositories and the defaults (front-end, back-end, project name).

Under the hood

A template’s address is built from the remote repository and the framework name. Values can come from environment variables, with a default (${GITHUB_TOKEN:…}), which also allows private repositories.

The front-end and back-end are cloned in parallel, thanks to Go’s goroutines. Commands are built on the Cobra library.

Why

I started it to learn Go, on a real need: I was wasting time rebuilding the same base for every new project.

What I took away

  • Go makes concurrency easy to write, and therefore easy to misuse: you still have to wait properly.
  • A good CLI tool fits in a few well-named commands.