PHPackages                             cwmoss/slowfoot - 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. cwmoss/slowfoot

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

cwmoss/slowfoot
===============

your friendly static site generator

031PHPCI passing

Since Apr 5Pushed 1mo ago1 watchersCompare

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

READMEChangelogDependenciesVersions (1)Used By (0)

[![Make Doku](https://github.com/cwmoss/slowfoot/actions/workflows/doku.yml/badge.svg)](https://github.com/cwmoss/slowfoot/actions/workflows/doku.yml)

W.I.P slowfoot
==============

[](#wip-slowfoot)

php &gt;= 8.4

config
------

[](#config)

everything will change!

### sources

[](#sources)

content sources have a unique name, a source type and opts

included source loader

- dataset, json nd, load\_dataset()
- json, load\_json()
- directory, markdown/ frontmatter, load\_directory()

### types

[](#types)

types are content types with template, path pattern or path function

### hooks

[](#hooks)

available hooks

- on\_load(row) =&gt; row || null

pipeline
--------

[](#pipeline)

```
include src/helper.php => SLOWFOOT_BASE (project root directory)
read config.php => sources, types, hooks
| load_sources
| load template helper
=> dataset, paths
  | build pages from all types with defined templates
  | build pages from src/pages folder
  => website

```

asset references
----------------

[](#asset-references)

~/path/to.jpg relative to file-content-source-base ../parent/path/to.jpg relative to file-content-source-current-directory ./path/to.jpg relative to file-content-source-current-directory /path/to.jpg relative to project-source-directory

global cli
----------

[](#global-cli)

alias slowfoot="/Users/rw/dev/slowfoot/bin/slowfoot -d ."

docker
------

[](#docker)

docker run --rm -it -v ${PWD}:/project sft info

alias slowfoot="docker run --rm -it -p 1199:1199 -v ${PWD}:/project ghcr.io/cwmoss/slowfoot"

#### todo

[](#todo)

resolve urls for pages, remove path\_page function

```
"jcupitt/vips": "^2.5" removed b.a.w

```

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance60

Regular maintenance activity

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity11

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/d448396576beaec8f896c46e121a942c2186e9798a4a84d1dba738ffe15bef28?d=identicon)[cwmoss](/maintainers/cwmoss)

---

Top Contributors

[![cwmoss](https://avatars.githubusercontent.com/u/16048828?v=4)](https://github.com/cwmoss "cwmoss (171 commits)")

### Embed Badge

![Health badge](/badges/cwmoss-slowfoot/health.svg)

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

###  Alternatives

[pastuhov/yii2-yml-catalog

YML (Yandex Market Language) generator.

2116.7k](/packages/pastuhov-yii2-yml-catalog)[fastly/cdn

Fastly CDN module for Magento 1.x

275.5k](/packages/fastly-cdn)

PHPackages © 2026

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