PHPackages                             gspataro/solista - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. gspataro/solista

ActiveProject[Utility &amp; Helpers](/categories/utility)

gspataro/solista
================

A static website builder

2.0.1(1mo ago)02MITTwig

Since Dec 31Pushed 1mo agoCompare

[ Source](https://github.com/gspataro/Solista)[ Packagist](https://packagist.org/packages/gspataro/solista)[ RSS](/packages/gspataro-solista/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (6)Used By (0)

Solista
=======

[](#solista)

A simple, fast, and flexible static site builder powered by [Orchestra](https://github.com/gspataro/Orchestra).

Solista lets you build fully static websites using plain files, without a database, without complexity, just content and structure.

✨ Features
----------

[](#-features)

- 📄 Write content in Markdown, JSON or plain text
- 🧠 Structured content with schemas
- 🔗 Internal linking system
- 🏞️ Image handling and transformations
- ⚡ Fast builds with caching
- 🧪 Rehearsal mode (no build required)
- 🎨 Theme-based rendering

🚀 Getting started
-----------------

[](#-getting-started)

Create a new project:

`composer create-project gspataro/solista my-site`

Move into your project:

`cd my-site`

Build your site:

`./solista build`

Start the development server:

`./solista rehearsal`

Open your browser at:

`http://localhost:8080`

---

🧱 Project structure
-------------------

[](#-project-structure)

A typical Solista project looks like this:

- /contents (all your media and contents)
- /public (production-ready website)
- /resources/themes (your themes)
- /blueprint.json (the main configuration file)

You are free to organize your contents as you prefer.

✍️ Writing content
------------------

[](#️-writing-content)

Content is written in Markdown with frontmatter:

```
---
title: My first post
published_at: 2026-03-17
categories:
    - news
---

Your content goes here.
```

🔗 Internal links
----------------

[](#-internal-links)

Solista provides a custom protocol to link content safely:

`orchestra://articles/hello-world.md`

`orchestra://blog`

`orchestra://blog.page-2`

Links are automatically resolved to the correct URLs, even if your structure changes.

🏞️ Media
--------

[](#️-media)

Media files live inside `/contents/media`.

You can reference them directly:

```
![Alt Text](/hello-world.jpg?variant=medium "Title Text")
```

Solista can:

- generate image variants
- handle resizing
- provide responsive `srcset`

🧪 Rehearsal mode
----------------

[](#-rehearsal-mode)

Rehearsal is a development server that renders pages on demand.

- no build required
- instant feedback
- perfect for content editing and theme development

⚡ Performance
-------------

[](#-performance)

Solista is designed to be fast:

- content is cached
- builds are incremental
- theme changes do not invalidate content parsing

🎨 Themes
--------

[](#-themes)

Themes control how your content is rendered.

Solista ships with a minimal default theme intended for learning and experimentation.

> A production-ready theme will be introduced in future releases.

If you change or update your theme, Solista will rely on the cached content to only re-build the pages, skipping the content parsing process.

🗺️ Roadmap
----------

[](#️-roadmap)

### 2.1

[](#21)

- Production-ready theme
- Template hierarchy
- Standard theme configuration (e.g. navigation)

### 2.2

[](#22)

- Content validation
- Schema-based structure enforcement

### 2.3

[](#23)

- SourceDriver (external sources support, e.g. APIs)

### 2.4

[](#24)

- Migration to symfony/console

### 2.5

[](#25)

- Rehearsal improvements
- Partial rebuilds based on requested resources

### Future

[](#future)

- WIP

🚧 Work in progress
------------------

[](#-work-in-progress)

Some parts of the ecosystem are still evolving:

- 📚 Documentation / Wiki
- 🧾 JSON Schema support (`$schema`)
- 🧩 Extended developer tooling

🧠 Philosophy
------------

[](#-philosophy)

Solista is built around a few core ideas:

- content should live in real files
- structure should be explicit
- tools should stay out of your way

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance92

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Total

5

Last Release

39d ago

Major Versions

1.2.0 → 2.0.x-dev2026-03-20

### Community

Maintainers

![](https://www.gravatar.com/avatar/9aefcaa413291ada48e15bd53d34c80be02750ae39e91c9d56e6a695dc84a04f?d=identicon)[gspataro](/maintainers/gspataro)

---

Top Contributors

[![gspataro](https://avatars.githubusercontent.com/u/4274226?v=4)](https://github.com/gspataro "gspataro (24 commits)")

### Embed Badge

![Health badge](/badges/gspataro-solista/health.svg)

```
[![Health](https://phpackages.com/badges/gspataro-solista/health.svg)](https://phpackages.com/packages/gspataro-solista)
```

###  Alternatives

[georgringer/numbered-pagination

Improved pagination for TYPO3

281.3M13](/packages/georgringer-numbered-pagination)[lambert/tree-shape

A simple way to generate a tree structure.

186.0k](/packages/lambert-tree-shape)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
