v1.0 — component framework

InstanceIO

Build static or dynamic websites with a component-based PHP framework. HTMx and Docker ready. Export to flat HTML for S3, serverless, or IPFS.

HTMx Docker IPFS PHP
Capabilities

What it does

Component-Based

PHP classes, HTML templates, CSS. Compose and extend infinitely. One command to scaffold.

HTMx Ready

Server-driven UI updates. No JS framework required.

Docker First

Dev and prod containers. One command.

Static Export

Compile to flat HTML for S3, serverless, or IPFS. Dynamic to static with
php console/cmd.php build.

API Integration

Ingest .iio templates from any endpoint. Render remote components locally.

CLI Tooling

Generate components, controllers, routes from the terminal.

Server-driven UI

Full HTMx support. Build dynamic interfaces without a JS framework.

  • Server-driven UI updates without JavaScript
  • Swap, morph, or append content with HTML attributes
  • Trigger endpoints with clicks, forms, or custom events
<!-- HTMx in InstanceIO -->
<button hx-post="/api/action"
        hx-target="#result"
        hx-swap="outerHTML">
    Execute
</button>

<div id="result">
    <!-- Server response here -->
</div>
# Development
php console/cmd.php Docker build

# Production (dynamic)
php console/cmd.php Docker build prod-app

# Production (static HTML)
php console/cmd.php Docker build prod-html

# Watch + auto-compile
php console/cmd.php Docker watch

One-command containers

Dev, prod-app, and prod-html Docker images out of the box.

  • Local dev environment in one command
  • Production images for dynamic or static apps
  • Auto-compile watcher in container

Decentralized hosting

Compile to flat HTML and pin to IPFS. Content-addressed, immutable, versioned via IPNS.

# Build static HTML
php console/cmd.php Build

# Pin to IPFS
ipfs add -r dist/

# Publish to IPNS
ipfs name publish /ipfs/QmYourHash
Example

Component syntax

PHP class + HTML template + CSS. That's a component.

class Hero extends Component {

    public array $defaults = [
        'title' => 'InstanceIO',
        'subtitle' => 'Component-based PHP framework'
    ];

    public function __construct(
        public array $params,
        public string $component = __DIR__ . '/Hero'
    ){
        parent::__construct($this->params, $this->component);
    }

}
<section class="hero">
    <div class="container">
        <h1 class="hero__title">Component syntax</h1>
        <p class="hero__subtitle">PHP class + HTML template + CSS. That's a component.</p>
        <a href="/docs" class="btn btn--primary">Get Started</a>
    </div>
</section>
.hero {
    padding: var(--space-4xl) 0;
    background: var(--surface);
}

.hero__title {
    font-size: 48px;
    font-weight: 700;
    color: var(--text-primary);
}

Start building

Install the framework and scaffold your first component in under a minute.