|
| 1 | +<p align="center"><a href="https://craftcms.com/" target="_blank"><img width="300" height="300" src="https://nystudio107.com/img/site/nystudio107_submark.svg" alt="nystudio107"></a></p> |
| 2 | + |
| 3 | +## About nystudio107/craft |
| 4 | + |
| 5 | +This is an alternate scaffolding package for Craft 3 CMS projects to Pixel & Tonic's canonical [craftcms/craft](https://github.com/craftcms/craft) package. |
| 6 | + |
| 7 | +The project is based on [Craft CMS](https://CraftCMS.com) using a unique `templates/_boilerplate` system for web/AJAX/AMP pages, and implements a number of technologies/techniques: |
| 8 | + |
| 9 | +* [webpack](https://webpack.js.org/) is used for the build system as per [An Annotated webpack 4 Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-webpack-4-config-for-frontend-web-development) |
| 10 | +* [VueJS](https://vuejs.org/) is used for some of the interactive bits on the website as per |
| 11 | +* [Tailwind CSS](https://tailwindcss.com/) for the site-wide CSS |
| 12 | +* JSON-LD structured data as per [Annotated JSON-LD Structured Data Examples](https://nystudio107.com/blog/annotated-json-ld-structured-data-examples) |
| 13 | +* [Google AMP](https://developers.google.com/amp/) versions of the podcast episode and other pages |
| 14 | +* Implements a Service Worker via Google's [Workbox](https://developers.google.com/web/tools/workbox/) as per [Service Workers and Offline Browsing](https://nystudio107.com/blog/service-workers-and-offline-browsing) |
| 15 | +* Critical CSS as per [Implementing Critical CSS on your website](https://nystudio107.com/blog/implementing-critical-css) |
| 16 | +* Frontend error handling as per [Handling Errors Gracefully in Craft CMS](https://nystudio107.com/blog/handling-errors-gracefully-in-craft-cms) |
| 17 | +* A custom site module as per [Enhancing a Craft CMS 3 Website with a Custom Module](https://nystudio107.com/blog/enhancing-a-craft-cms-3-website-with-a-custom-module) |
| 18 | +* CLI-based queue as per [Robust queue job handling in Craft CMS](https://nystudio107.com/blog/robust-queue-job-handling-in-craft-cms) |
| 19 | +* FastCGI Static Cache as per [Static Page Caching with Craft CMS](https://nystudio107.com/blog/static-caching-with-craft-cms) |
| 20 | +* [Craft-Scripts](https://github.com/nystudio107/craft-scripts) as described in the [Database & Asset Syncing Between Environments in Craft CMS](https://nystudio107.com/blog/database-asset-syncing-between-environments-in-craft-cms), [Mitigating Disaster via Website Backups](https://nystudio107.com/blog/mitigating-disaster-via-website-backups) & [Hardening Craft CMS Permissions](https://nystudio107.com/blog/hardening-craft-cms-permissions) articles |
| 21 | + |
| 22 | +...and probably a bunch of other stuff too. |
| 23 | + |
| 24 | +The following Craft CMS plugins are used on this site: |
| 25 | +* [FastCGI Cache Bust](https://nystudio107.com/plugins/fastcgi-cache-bust) - to bust the FastCGI cache whenever entries are modified |
| 26 | +* [ImageOptimize](https://nystudio107.com/plugins/imageoptimize) - for the optimized images and `srcset`s used on the site |
| 27 | +* [Minify](https://nystudio107.com/plugins/minify) - to minify the HTML and inline JS/CSS |
| 28 | +* [Retour](https://nystudio107.com/plugins/retour) - for setting up 404 redirects |
| 29 | +* [SEOmatic](https://nystudio107.com/plugins/seomatic) - for handling site-side SEO |
| 30 | +* [Twigpack](https://nystudio107.com/plugins/twigpack) - for loading webpack-generated `manifest.json` resources in a modern way |
| 31 | +* [Typogrify](https://nystudio107.com/plugins/typogrify) - for smart quotes and other typographic ligatures |
| 32 | +* [Webperf](https://nystudio107.com/plugins/webperf) - for monitoring web performance |
| 33 | + |
| 34 | +You can read more about it in the [Setting up a New Craft 3 CMS Project](https://nystudio107.com/blog/setting-up-a-craft-cms-3-project) article. |
| 35 | + |
| 36 | +## Using nystudio107/craft |
| 37 | + |
| 38 | +This project package works exactly the way Pixel & Tonic's [craftcms/craft](https://github.com/craftcms/craft) package works; you create a new project by first creating & installing the project: |
| 39 | + |
| 40 | + composer create-project nystudio107/craft PATH |
| 41 | + |
| 42 | +Make sure that `PATH` is the path to your project, including the name you want for the project, e.g.: |
| 43 | + |
| 44 | + composer create-project nystudio107/craft craft3 |
| 45 | + |
| 46 | +Then `cd` to your new project directory, and run Craft's `setup` console command to create your `.env` environments and optionally install: |
| 47 | + |
| 48 | + cd PATH |
| 49 | + ./craft setup |
| 50 | + |
| 51 | +Finally, run the `nys-setup` command to configure Craft-Scripts based on your newly created `.env` settings: |
| 52 | + |
| 53 | + ./nys-setup |
| 54 | + |
| 55 | +That's it, enjoy! |
| 56 | + |
| 57 | +If you ever delete the `vendor` folder or such, just re-run: |
| 58 | + |
| 59 | + ./nys-setup |
| 60 | + |
| 61 | +...and it will re-create the symlink to your `.env.sh`; don't worry, it won't stomp on any changes you've made. |
| 62 | + |
| 63 | +Below is the entire intact, unmodified `README.md` from Pixel & Tonic's [craftcms/craft](https://github.com/craftcms/craft): |
| 64 | + |
| 65 | +..... |
| 66 | + |
1 | 67 | <p align="center"><a href="https://craftcms.com/" target="_blank"><img width="312" height="90" src="https://craftcms.com/craftcms.svg" alt="Craft CMS"></a></p> |
2 | 68 |
|
3 | 69 | ## About Craft CMS |
|
0 commit comments