A starter framework for front-end projects, built around a Gulp-based CSS/JS pipeline using CUBE CSS. Optionally bundles a pre-configured Craft CMS application skeleton, or an Eleventy static site skeleton, for projects that need one.
Run the installer script from your new project's root directory. It will ask:
What kind of project do you want to initialise?
• craft (Craft CMS + Twig templates)
• eleventy (Eleventy static site + Nunjucks templates)
• no (holding page — asset pipeline only)
- craft — merges the Craft application skeleton into the project root, copies
.env.example.devto.env, runscomposer install, sets up DDEV (ddev config+ddev start), then automatically runs Craft'sddev craft setupwizard, which populatesCRAFT_APP_ID,CRAFT_SECURITY_KEY, andPRIMARY_SITE_URLin.envand creates your admin account. It also installs the CKEditor plugin and opens the site in your browser. - eleventy — merges the Eleventy skeleton into the project root and adds its build scripts/dependencies to
package.json.npm run buildruns the Gulp build followed by Eleventy, writing pages toweb/next to Gulp'sweb/assets/(Gulp must run first, since itscleanstep would otherwise wipe Eleventy's optimised images);npm run devruns both concurrently with live reload. - no — discards both skeletons entirely, leaving just the asset pipeline (
src/,gulpfile.js,package.json) for a static holding page.
Either way, the script also initialises Git, installs NPM packages, and runs an initial asset build.
For staging or production environments, copy .env.example.staging or .env.example.production to .env on that environment and fill in the values manually.
npm run dev— watchessrc/and rebuilds CSS/JS on change (gulp watchFiles).npm run build— produces the production asset build (gulp build).
Craft CMS application skeleton — only present if you choose to install Craft, in which case its contents are moved into the project root during installation. Includes:
.ddev/— local development environment config.env.example.*— environment variable templates for dev, staging, and productioncomposer.json— Craft CMS, CKEditor, and SEOmatic dependenciesconfig/,migrations/,templates/,web/— standard Craft application directories
Eleventy static site skeleton — only present if you choose to install Eleventy, in which case its contents are moved into the project root during installation. Includes:
eleventy.config.js— Eleventy config: Nunjucks as the template engine, output toweb/(shared with Gulp'sweb/assets/), the@11ty/eleventy-imgHTML transform plugin (post-processes every rendered<img>tag into an optimised, responsive image — replacing Craft's image-transform macros, without the async/macro restrictions a shortcode-based approach would hit), adatefilter, and auid()global for components that need a unique DOM idpackage.additions.json—scripts/devDependenciesmerged into the rootpackage.jsonat install time, then discardedscripts/clean-eleventy-output.js— clears stale Eleventy output fromweb/on every build without touchingweb/assets/content/— pages, a samplearticlescollection, acontent/images/folder for content-authored images (article photos, avatars — kept separate fromsrc/img/, which stays Gulp-only for icons/static UI assets), and_includes/layouts/+_includes/components/, the latter a Nunjucks port of every component in_craft/templates/components/(one macro per file, e.g.{% from "components/_button.njk" import button %})
CSS, JavaScript, fonts, and images for the project, output by the Gulp build. CSS follows CUBE CSS:
css/global/— resets, variables, base typographycss/compositions/— layout primitives (grid, cluster, center, wrapper, etc.)css/blocks/— components (buttons, forms, cards, tabs, etc.)css/utilities/— single-purpose overridesjs/— application JavaScript, with third-party code injs/vendor/
Configuration for the Gulp-based asset preprocessor.
Configuration for the asset preprocessor.