Search by

pushword / flat-file

Robin D.

This package is abandoned and no longer maintained. The author suggests using the pushword/flat package instead.

Transform Pushword in a FlatFile CMS.

Package info

github.com/Pushword/flat

Homepage

Issues

Documentation

Type:symfony-bundle

pkg:composer/pushword/flat-file

Fund package maintenance!

Liberapay

Statistics

Installs: 264

Dependents: 0

Suggesters: 0

Stars: 4

1.0.51 2026-10-09 23:43 UTC

This package is auto-updated.

Last update: 2026-10-11 20:41:02 UTC


README

Turn Pushword into a flat-file CMS — pages and media stored as Markdown + CSV on disk, round-tripped with the database and trackable in Git.

Latest Version Software License GitHub Tests Action Status

Code Coverage Total Downloads

Features

  • Two-way pw:flat:sync between Markdown/CSV files and the database.
  • Auto-export after admin edits, optional auto git commit.
  • Conflict resolution, editorial locks and webhook locking.
  • Optional user sync (users.yaml), conversation and snippet sync.

Installation

composer require pushword/flat

Documentation

Visit pushword.piedweb.com/extension/flat.

Sync flow (pw:flat:sync)

Each entity decides its own direction: import when files are newer, export when the database is. Details: sync behavior reference.

flowchart TD
    Start([pw:flat:sync]) --> LockCheck{Webhook lock?}
    LockCheck -->|Yes| Blocked([Blocked])
    LockCheck -->|No| Media{Media: file hash changed?}

    Media -->|Yes| MediaImport[Import media.csv + files<br/>delete media missing from CSV<br/>regenerate media.csv]
    Media -->|No| MediaExport[Export media.csv]
    MediaImport --> Page
    MediaExport --> Page

    Page{Pages: .md newer than DB?} -->|Yes| PageImport[Import redirection.csv + .md<br/>resolve relations, delete orphan pages<br/>regenerate index.csv]
    Page -->|No| PageExport[Export .md, index.csv, redirection.csv]
    PageImport --> Others
    PageExport --> Others

    Others[Conversations, users.yaml, snippets,<br/>extension syncs] --> End([Done])
Loading

The Pushword ecosystem

Pushword is a modular CMS — one Symfony bundle for the core and one bundle per feature. See the full list and guides at pushword.piedweb.com/extensions.

Contributing

If you're interested in contributing to Pushword, please read our contributing docs before submitting a pull request.

Credits

License

The MIT License (MIT). Please see License File for more information.

PHP Packages Open Source