Blossom supports building and deploying static sites from various static site generators (SSGs). It automatically detects the type of static site generator being used and creates an appropriate build configuration.

Supported Static Site Generators

JavaScript/Node.js Based

  • Astro - Modern static site builder with component islands
  • Eleventy (11ty) - Simpler static site generator
  • Gatsby - React-based static site generator
  • Gridsome - Vue-based static site generator
  • Next.js - React framework with static export
  • Nuxt.js - Vue framework with static generation
  • Parcel - Zero-configuration web application bundler
  • Svelte - Svelte/SvelteKit static site generation
  • Vite - Modern frontend build tool

Ruby Based

  • Bridgetown - Progressive site generator built on Ruby
  • Jekyll - Classic static site generator

Go Based

  • Hugo - Fast static site generator written in Go

Python Based

  • MkDocs - Project documentation with Markdown
  • Pelican - Static site generator written in Python

Other

  • Hexo - Blog framework powered by Node.js

Build Process

For each static site generator, Blossom:

  1. Detects the type of static site generator being used
  2. Creates a multi-stage Dockerfile that:
    • Uses appropriate base images for building
    • Installs necessary dependencies
    • Runs the build process
    • Creates a minimal nginx-based image with the built static files
  3. Builds and deploys the container

Output

All static sites are served using nginx, which provides:

  • Efficient static file serving
  • Proper mime-type handling
  • Basic caching headers
  • SPA fallback support where needed

Example

A typical static site project might look like:

my-static-site/
├── package.json        # For Node.js based SSGs
├── Gemfile            # For Ruby based SSGs
├── requirements.txt   # For Python based SSGs
├── content/          # Your content files
└── config files      # SSG-specific configuration

Blossom will automatically detect the SSG type and handle the build process appropriately.

Notes

  • Each SSG has its own build output directory which is automatically mapped in the final nginx container
  • The build process uses full-featured base images for better compatibility
  • The final nginx image is minimal for efficient deployment
  • SPA routing is supported through nginx configuration