- Remix (full stack web framework)
- React (UI library)
- Contentful (headless CMS) with GraphQL (API interaction)
- Algolia (search)
- Fly (hosting)
- Tailwind CSS (styles)
- GitHub Actions (CI/CD)
-
Create a new app and index at Algolia.
-
Create a new space, content management token, and content delivery (access) token at Contentful.
-
Clone this repo and change to the directory.
- You'll probably want to edit the name, description, etc.
-
Use the
contentful-cli
package to run the following:contentful space import --management-token <your-management-token> --space-id <your-space-id> --content-file contentful-space.json
-
Copy the provided
.env.example
file to a new.env
file and fill in the values with your information. -
Deploy to Fly:
- See Fly docs for Node apps
- See Remix Indie Stack for a comprehensive example
-
Create a couple webhooks in Contentful (one for dev and one for prod):
- Trigger off
Entry
Publish
andUnpublish
events POST
requests to<your-domain>/_/content-change
(domain should differ for dev and prod)- Set custom
X-Contentful-Webhook-Token
header to a private, generated token of your choosing (this will need to match what's in yourCONTENTFUL_ACCESS_TOKEN
environment variable) - Leave the default content type (
application/vnd.contentful.management.v1+json
)
- Trigger off
-
Install the Algolia integration in Contentful and modify the resulting webhooks as necessary.