Home

Awesome

New Wave Stack

The New Wave Stack

Learn more about Remix Stacks.

For more on our thoughts on the New Wave Stack check out our blog post.

To view this template in deployment visit: new-wave-stack.netlify.app

What's in the stack

Development

Sign Up with Clerk

Sign up with Clerk if you haven't already.

Create a new Clerk application

Create a new application from the Clerk dashboard. Check out the Clerk docs for more information about setting up your Clerk application.

Create a new application using the New Wave Stack Template:

npx create-remix@latest --template charles-clerk-dev/new-wave-stack <your-app>

Navigate into your project directory

cd <your-app>

Create a .env file.

  touch .env

Find your Frontend API key and Backend API key on the Dashboard and add them to that file like this:

CLERK_FRONTEND_API=<YOUR_FRONTEND_API>
CLERK_API_KEY=<YOUR_CLERK_API_KEY>

Install Netlify CLI

If you don't already have the Netlify CLI downloaded, run:

npm i -g netlify-cli@latest

Trigger an initial build

npm run build

Start your development instance

npm run dev

Visit http://localhost:3000/. If everything is set up correctly, you should see something that looks like this:

<img width="1771" alt="Screen Shot 2022-05-25 at 9 52 23 PM" src="https://user-images.githubusercontent.com/96198083/170412460-f1b7884e-f1bc-445e-bc1d-79691fc1dafb.png">

That's it! You're all set to start building your Remix application with complete user management provided by Clerk.

Database

This template comes pre-configured to make calls to a Fauna database

To make authenticated calls to a Fauna database, you'll need to use one of Clerk's handy JWT Templates. Check out our detailed instructions about setting up Clerk and Fauna).

For a better understanding about how Fauna works with Remix and Clerk, it is highly recommend to work through Clerk's Remix/Clerk/Fauna Tutorial

Styling

This template is pre-configured to use Tailwind styling. For more information about Tailwind classes and core concepts, check out the Tailwind documentation.

Deployment

This template uses Netlify for deployment. Setting up your Remix app to deploy with Netlify couldn't be easier. Step by step instructions can be found here, and deployment only takes minutes.

Testing

Cypress

We use Cypress for our End-to-End tests in this project. You'll find those in the cypress directory. We've included Cypress's example files to help you on your way, but for more information on Cypress, check out their official documentation.

Jest/Testing Library

For lower level tests of utilities and individual components, we use Jest and Testing Library.

Type Checking

This project uses TypeScript. It's recommended to get TypeScript set up for your editor to get a really great in-editor experience with type checking and auto-complete. To run type checking across the whole project, run npm run typecheck.

Linting

This project uses ESLint for linting. That is configured in .eslintrc.js.

Formatting

We use Prettier for auto-formatting in this project. It's recommended to install an editor plugin (like the VSCode Prettier plugin) to get auto-formatting on save. There's also a npm run format script you can run to format all files in the project.