Free & Open Source Gatsby Themes by LekoArts
Get high-quality and customizable Gatsby themes to quickly bootstrap your website! Choose from many professionally created and impressive designs with a wide variety of features and customization options. Use Gatsby Themes to take your project to the next level and let you and your customers take advantage of the many benefits Gatsby has to offer.
๐ผ Contents
This repository is a collection of my Gatsby themes, managed as a monorepo with Lerna and yarn workspaces.
examples
: Contains the corresponding example sites for thethemes
. These projects can and should be used as a starter and will be copied over to their own repository. Hence they contain example data and additional Gatsby plugins (e.g.gatsby-plugin-manifest
andgatsby-plugin-offline
). The folder names are the contents aftergatsby-theme-*
themes
: Contains the themes themselves. They should only have the bare minimum of plugins installed (asexamples
can expand them) and also useTheme UI
for styling. The naming of the folders must begatsby-theme-[name-with-dashes]
and the package name under the scope of@lekoarts
www
: Contains the source code for themes.lekoarts.de
๐ค How to Contribute
Make sure that you have yarn
installed on your machine (as it's mandatory for yarn workspaces
). Fork this repository, clone it and run yarn
in the root directory.
To launch the development server of an example site, use:
yarn workspace [examples/name] develop
In the case of examples/emma
this command would be yarn workspace emma develop
. Now you can make changes to the respective theme and see them via Hot-Reloading.
Commit your changes to a feature branch of your fork and open up a PR against this repository. The PR will have checks in place (unit and end-to-end tests) which you can also run on your machine in preparation for the PR.
Testing
Cypress
The Cypress tests are written in TypeScript, too, and hence need to be compiled before usage. Run the following script for development:
bash ./scripts/e2e-dev.sh "example-name"
In the case of examples/emma
the "example-name" would be "emma".
The script starts tsc
in watch mode (for the files in cypress/e2e
) and outputs them to cypress/e2e/build
+ starts start-server-and-test
with Gatsby's development server and Cypress. Once the Cypress GUI opens select the fitting test (the others won't work, only the respective test + smoke.js
!).
CircleCI will run the e2e-build.sh
script โ you can use it to run the tests headless.
You can skip the e2e tests if you use docs
or www
in your branch name, e.g. docs/improve-readme
or www/add-new-entry
.
๐คฉ Newsletter
If you want to receive monthly updates on my themes and all things related to Gatsby themes (relevant blog posts from me and other people) you can subscribe to my newsletter.