Artistry & Intelligence

Enter the Atelier

Behind the Scenes

How We Build Your Installation

A look at the actual process—from initial setup to the first working iteration.

The foundation

Every installation starts from a foundation. We maintain a base repository that encapsulates years of best practices—not a template you'd recognize, but a starting point we customize completely for your project.

Here's what that looks like when we start a new project:

terminal
# Create your project from our foundation
git clone https://github.com/supported-systems/foundation.git your-project
cd your-project

# Remove the origin and make it yours
git remote remove origin

The code is now completely independent—your project, your repository, your history. This is what "you own everything" actually means.

Why this matters

Unlike SaaS platforms where your data lives on someone else's infrastructure, or themes where you're forever dependent on upstream updates—this is truly yours. Disconnect from the internet, and you still have everything needed to run, modify, and deploy your installation.

Environment configuration

We use environment variables to configure each installation. This keeps secrets secure, allows different configurations for development and production, and makes deployments predictable.

Here's a simplified view of a typical configuration:

.env
# Environment Configuration
NODE_ENV=development
DOMAIN=your-domain.com
SITE_NAME="Your Installation Name"

# Development Settings
HOT_RELOAD=true
DEBUG_MODE=false

# Production-specific (different values in prod)
CACHE_ENABLED=true
CDN_URL=https://cdn.your-domain.com

This separation means we can iterate rapidly in development (with hot reload, verbose logging, and debug tools) while production runs optimized for speed and security.

What environment does YOUR project need to thrive? A fast development cycle? Strict security requirements? Offline capability?

See also in Process

Environment Variables Reference

Complete documentation of all configuration options

Containerized development

We run everything in Docker containers. This guarantees that the installation works identically on any machine—your laptop, our development server, production.

terminal
# Start the development environment
docker compose -f docker-compose.yml -f docker-compose.dev.yml up

# What you'll see:
 Container web-1     Started
 Container api-1     Started
 Container db-1      Started
 Ready in 1.2s
  Local: https://localhost:4321/

This isn't just convenient—it's essential for self-hosted deployments. The same container that runs on your laptop runs on your production server. No "works on my machine" surprises.

Development Mode

  • • Hot reload enabled
  • • Source maps for debugging
  • • Verbose error messages
  • • Mounted source code

Production Mode

  • • Optimized build
  • • Static file serving
  • • Automatic HTTPS
  • • Health monitoring

See also in Process

Docker Local Development

How we set up and run development environments

The iteration loop

Here's the rhythm of development. It's fast, visual, and conversational:

  1. 1

    We make a change

    Edit a component, adjust styling, add functionality

  2. 2

    Hot reload shows it instantly

    The browser updates automatically—no refresh needed

  3. 3

    You review and give feedback

    Via screen share, recorded walkthrough, or review session

  4. 4

    We iterate until it's right

    As many rounds as needed—artisan work takes craft

This isn't a waterfall process where you wait weeks to see progress. It's collaborative—you're involved throughout, seeing changes as they happen.

Imagine watching YOUR vision come to life like this—iteration by iteration, with your input shaping every detail.

Structure and organization

Every installation follows a consistent structure. This makes the code navigable, maintainable, and extensible:

project structure
your-project/
├── src/
│   ├── components/       # Reusable UI components
│   ├── layouts/          # Page templates
│   ├── pages/            # Each file = a route
│   │   ├── index.astro   # → yoursite.com/
│   │   ├── about.astro   # → yoursite.com/about
│   │   └── blog/         # → yoursite.com/blog/*
│   └── styles/           # Global styles
├── public/               # Static assets
├── docker-compose.yml    # Container orchestration
└── .env                  # Configuration

The pattern is intentional: pages map directly to URLs, components are isolated and reusable, and configuration lives in environment variables. When you inherit this codebase, you can find anything.

See also in Craft

Component Library

Reference documentation for all available components

From development to production

When your installation is ready, deployment is straightforward. The same containerized approach that made development consistent makes production reliable:

deployment
# Production deployment
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

# Caddy handles HTTPS automatically
# Zero-downtime deploys via container orchestration
# Same containers, different configuration

Your installation runs on infrastructure you control. We set it up, ensure it's secure, and hand you the keys. After that, it's yours—we're available for maintenance and updates if you want them, but you're never locked in.

Self-hosted means self-owned

Your installation runs on a VPS, cloud instance, or even a machine in your office. You control the data, the uptime, the security. If we disappeared tomorrow, your installation would keep running.

See also in Process

Production Deployment

Complete guide to deploying your installation

This is the first week

What you've seen here—the foundation setup, environment configuration, containerized development, iteration loop—this is typically the first week of a project.

By day seven, you usually have:

  • A working installation running locally and in staging
  • Core structure reflecting your specific needs
  • Initial design direction and color palette
  • A rhythm of iteration that continues throughout the project

The rest builds from there—storytelling, advanced features, polish—each layer adding to the foundation until your installation is exactly what you envisioned.

Ready to start that conversation? Tell me about your project and we'll figure out if we're a good fit.

Ready to explore your project?

Every installation starts with a conversation. What are you building? What matters most? What story do you want to tell?

Want to see more? The next page explores digital storytelling—how we craft compelling narratives that make installations memorable.

Loading Johnny Castaway...

Original Johnny Castaway (1992) by Sierra On-Line/Dynamix
Recreation by xesf on GitHub
Click anywhere or press ESC to exit
Click anywhere or press ESC to exit
Recreation by Bryan Braun
Original Berkeley Systems After Dark (1989)
Click anywhere or press ESC to exit
supported.systems
MISSION CONTROL
CURRENT RELEASE v6.0.0-beta.18
LAUNCH DATE Mar 4, 2026
RECENT UPDATES
  • #15668 `1118ac4` Thanks @florian-lefebvre! - Changes Ty...
  • #15726 `6f19ecc` Thanks @ocavue! - Updates dependency `...
  • #15694 `66449c9` Thanks @matthewp! - Adds `preserveBuil...
All systems nominal
Click anywhere or press ESC to exit
The web framework for content-driven websites