{"id":26962489,"url":"https://github.com/madebyshape/craft-cms","last_synced_at":"2026-04-07T12:00:51.243Z","repository":{"id":37590565,"uuid":"135734239","full_name":"madebyshape/craft-cms","owner":"madebyshape","description":"Craft CMS 5.x starter - DDEV, Vite, Tailwind, Alpine \u0026 Servd","archived":false,"fork":false,"pushed_at":"2026-02-03T10:43:59.000Z","size":24620,"stargazers_count":106,"open_issues_count":16,"forks_count":21,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-02-03T22:31:01.302Z","etag":null,"topics":["alpinejs","boilerplate","craftcms","craftcms5","tailwindcss","vuejs"],"latest_commit_sha":null,"homepage":"https://madebyshape.co.uk","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/madebyshape.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-06-01T15:27:08.000Z","updated_at":"2026-02-03T10:43:10.000Z","dependencies_parsed_at":"2026-01-06T03:07:25.435Z","dependency_job_id":null,"html_url":"https://github.com/madebyshape/craft-cms","commit_stats":{"total_commits":386,"total_committers":2,"mean_commits":193.0,"dds":"0.010362694300518172","last_synced_commit":"c2920258b62c286191d658157286828c308ab7b5"},"previous_names":[],"tags_count":110,"template":false,"template_full_name":null,"purl":"pkg:github/madebyshape/craft-cms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyshape%2Fcraft-cms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyshape%2Fcraft-cms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyshape%2Fcraft-cms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyshape%2Fcraft-cms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madebyshape","download_url":"https://codeload.github.com/madebyshape/craft-cms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyshape%2Fcraft-cms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31511784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpinejs","boilerplate","craftcms","craftcms5","tailwindcss","vuejs"],"created_at":"2025-04-03T05:28:35.845Z","updated_at":"2026-04-07T12:00:51.236Z","avatar_url":"https://github.com/madebyshape.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/madebyshape/craft-cms/blob/master/src/public/images/favicon.png\" width=\"60\"\u003e\n\n# Craft CMS 5 Starter\n\nThis is a [Craft CMS 5.x](https://github.com/craftcms/cms) starter that [MadeByShape](https://madebyshape.co.uk) use internally for projects. We open sourced it so anybody can use it.\n\n## The Stack\n\n-   [Craft CMS 5.x](https://craftcms.com) Content management system\n-   [DDEV](https://ddev.com) Local development environment\n-   [Vite 8.x](https://vitejs.dev) Front-end build tool with HMR\n-   [Tailwind CSS 4.x](https://tailwindcss.com) Utility-first CSS framework\n-   [Alpine.js 3.x](https://alpinejs.dev/) Minimal JS framework\n-   [Mailgun](https://www.mailgun.com/) Email API\n-   [Servd](https://servd.host) Craft CMS first hosting provider\n-   [Craft Cloud](https://craft.cloud) Craft CMS hosting provider\n-   [Tailscale](https://tailscale.com) Device testing via secure tunnels\n\n## Requirements\n\n-   [Docker](https://www.docker.com)\n-   [DDEV](https://ddev.com)\n-   [Tailscale](https://tailscale.com/download) (optional, for device testing)\n\n## Features\n\n-   Templates\n    -   Layout templates setup ready with header and footer globals\n    -   Exception templates for 404, offline/maintenance and generic errors\n    -   Page templates setup for use with matrix fields\n    -   Email template for sending prettier system emails (Forgot password etc)\n-   Config\n    -   Configs for all Craft CMS plugins\n    -   Customised general config with required features that hook into .env vars\n-   Env\n    -   Customised .env file with Servd and Mailgun included\n-   Building\n    -   HMR\n    -   CSS and JS minified and purged\n    -   Favicon is generated and auto-inserted into the template\n    -   Images compressed\n    -   Sourcemaps generated\n-   Servd\n    -   Setup to be used with Servd hosting platform\n    -   Enabled for using static caching\n-   Craft Cloud\n    -   Setup to be used with Craft Cloud hosting provider\n    -   Enabled for using artifacts with Vite JS and Imager X\n-   Caching\n    -   Uses Blitz to handle server caching and warming\n-   Device Testing\n    -   Test on phones and tablets via Tailscale Share or Funnel\n    -   Vite dev server assets served through the tunnel\n\n## Plugins\n\n### Craft CMS\n\n-   Blitz\n-   CKEditor\n-   Formie\n-   Imager X\n-   Mailgun\n-   Minify\n-   SEOMatic\n-   Servd Assets and Helpers\n-   Craft Cloud Extension\n-   Imager X Craft Cloud Transformer\n-   Sprig\n-   Vite\n\n## Install\n\nCreate an empty folder and `cd` to it in your terminal (if you plan to use Option 1 or 2).\n\n### 1a. Option 1: Composer\n\nIf you have Composer installed locally, open your terminal and run:\n\n```shell\ncomposer create-project madebyshape/craft-cms\n```\n\n### 1b. Option 2: Git\n\nYou can clone the repo from GitHub using the Git CLI:\n\n```shell\ngit clone git@github.com:madebyshape/craft-cms.git\n```\n\n### 1c. Option 3: Manual\n\nDownload a copy of this repo to your computer using the `Code` button above, and choosing `Download ZIP`. Move these files to your empty folder.\n\n### 2. Start DDEV, Install Craft CMS and dependencies\n\nFirstly, edit `.ddev/config.yaml` and change the `name` to your project name.\n\nThen, there are a few CLI commands ([See more](#cli-commands)) we've created that allow starting DDEV, installing Craft CMS and installing dependencies (Node particularly). The one to get you started:\n\n```shell\nmake install\n```\n\n### 3. Starting Vite\n\nOnce step 2 has successfully completed, start Vite for front-end tooling:\n\n```shell\nmake dev\n```\n\n## Production\n\nWhen you're ready to go live, make sure you have `npm` installed on the server, then run the production command to minify, compress and build the front-end assets:\n\n```shell\nnpm run build\n# or\nmake prod\n```\n\n## CLI commands\n\nWe've created a few commands to make development easier. All commands are run in your terminal:\n\n| Command                    | Description                                  |\n| -------------------------- | -------------------------------------------- |\n| `make install`             | Start DDEV, install Craft CMS \u0026 dependencies |\n| `make setup`               | Pull repo + install deps                     |\n| `make start`               | Start DDEV + Vite                            |\n| `make dev`                 | Start Vite (HMR)                             |\n| `make prod`                | Production build (Vite build)                |\n| `make npm-install`         | Run `npm install` inside DDEV                |\n| `make clean`               | Remove vendor \u0026 node_modules                 |\n| `make clean-logs`          | Remove storage logs                          |\n| `make update`              | Run Craft updates                            |\n| `make up`                  | Apply project config \u0026 migrations            |\n| `make pull-db`             | Pull database dump into local DB             |\n| `make import-db file=...`  | Import a SQL dump into the local DB          |\n| `make tp`                  | Launch TablePlus                             |\n| `make l`                   | Launch site                                  |\n| `make keys`                | Setup Craft project keys                     |\n| `make update-search-index` | Rebuild search index                         |\n| `make mp`                  | Launch Mailpit                               |\n| `make kill-vite`           | Kill running Vite dev processes              |\n| `make share`               | Share site over Tailscale (private)          |\n| `make funnel`              | Share site via Tailscale Funnel (public)     |\n\n## Device Testing with Tailscale\n\nYou can test your local site on other devices (phones, tablets) using [Tailscale](https://tailscale.com). This gives you a real HTTPS URL that works on any device.\n\n- [Tailscale](https://tailscale.com/download) installed and running on your Mac\n- For `make share`: Tailscale installed on the test device too\n- For `make funnel`: No Tailscale needed on the test device (public URL)\n- Funnel requires HTTPS certificates and the `funnel` node attribute enabled in your [Tailscale admin console](https://login.tailscale.com/admin/acls)\n\nThe share/funnel commands automatically register the Tailscale hostname with DDEV's router and expose the Vite dev server so CSS/JS assets load correctly on remote devices. Run `make share` or `make funnel` in one terminal and `make dev` in another.\n\n## Nice to know\n\n### File system type\n\nThe file system type is set in the `.env` file. It can be set to either `local`, `servd` or `craftCloud` depending on where you are hosting your project. `local` is good for local and also production if the files are hosted on the same server.\n\n```shell\nFILESYSTEM_TYPE=local\n```\n\n### Database\n\nTo access the database inside the DDEV environment, you can use TablePlus. You can use the following command to open TablePlus to export/import:\n\n```shell\nddev tableplus\nor\nmake tp\n```\n\n### Email\n\nTo access the email inside the DDEV environment, you can use Mailpit. You can use the following command to open Mailpit:\n\n```shell\nddev mailpit\nor\nmake mp\n```\n\n### HTTPS recommended\n\nThere are a few issues getting Vite, DDEV and Craft CMS running nicely together over HTTP, so always make sure you are using HTTPS. For DDEV just run:\n\n```shell\nddev stop --all\nmkcert -install\nddev start\nddev launch\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadebyshape%2Fcraft-cms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadebyshape%2Fcraft-cms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadebyshape%2Fcraft-cms/lists"}