โ† All apps

CandyMold

๐Ÿงช CandyMold

Starter skeleton for CandyCore apps

port of bubbletea-app-template starter skeleton create-project

composer create-project candycore/candy-mold my-app โ€” pour your model into the mold and you've got a working app. Demo Counter Model, PHPUnit wired up, bin/start entry point.

Install

composer require candycore/candy-mold

Quickstart

composer create-project candycore/candy-mold my-app
cd my-app
./bin/start

# Replace src/Counter.php with your own Model and keep editing.
my-app/
โ”œโ”€โ”€ composer.json     # requires candy-core + candy-sprinkles
โ”œโ”€โ”€ phpunit.xml
โ”œโ”€โ”€ bin/start         # entry point โ€” runs Program(new Counter())
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ Counter.php   # demo Model with up/down/quit, styled border
โ””โ”€โ”€ tests/
    โ””โ”€โ”€ CounterTest.php

What's in the box

composer create-projectThree commands and you're running. composer create-project candycore/candy-mold my-app && cd my-app && ./bin/start.
Demo Countersrc/Counter.php โ€” a minimal Model with up/down/quit and a styled border.
Tests in placePHPUnit 10 wired to tests/. Replace, don't reconfigure.
Three-line entrybin/start is autoload + Model + Program::run().
Pure-Model anatomyDemonstrates init / update / view + readonly props.
Common-next-steps tableREADME points at the SugarBits / SugarPrompt / SugarCharts / CandyWish you're likely to reach for next.

Source & demos

Try the quickstart โ†’

Demos.

VHS-recorded GIFs of every example shipped with the app. Regenerated automatically on every push that touches the source.

Bootstrap

Bootstrap

Counter app from scratch โ€” the demo Model that ships in the skeleton.