Awesome
Remix Matador stack
A bold interface that helps you monitor your BullMQ queues.
Learn more about Remix Stacks.
$ npx create-remix@latest --template nullndr/matador
What's in the stack
- Matador interface built with MantineUI at
/matador
routethere is also a pure tailwind Matador implementation that can be found here
- A little utility that helps you build your queues
- Styling with Tailwind
- Code formatting with Prettier
- Linting with ESLint
- Static Types with TypeScript
Development
-
Start the Redis Database with Docker:
ℹ️ we use the latest version of Docker that already includes compose, not docker-compose
$ npm run dev:docker
-
Start dev server:
$ npm run dev
If you want to stop the development Redis Database, run npm run dev:docker:stop
Connecting to your Redis server
Matador needs a Redis 6 instance at least to work.
Set your redis connection string as the REDIS_URL
env variable in your .env
file.
Testing
Cypress
We use Cypress for our End-to-End tests in this project. You'll find those in the cypress
directory. As you make changes, add to an existing file or create a new file in the cypress/e2e
directory to test your changes.
We use @testing-library/cypress
for selecting elements on the page semantically.
To run these tests in development, run npm run test:e2e:dev
which will start the dev server for the app as well as the Cypress client.
Vitest
For lower level tests of utilities and individual components, we use vitest
. We have DOM-specific assertion helpers via @testing-library/jest-dom
.
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.
What if I already have a project with BullMQ?
No worries, we've already thought about it!
An easy bash script can be found here.
in order to simply install Matador in your Remix project, run:
$ curl https://raw.githubusercontent.com/nullndr/Matador/main/remix.init/installer.sh | \
sh -s -- "/my/remix/project"
Matador will be copied in /my/remix/project/app/routes/matador
, /my/remix/project/app/routes/matador.tsx
and
/my/remix/project/app/lib/matador
.
But wait a sec, I do not use the app folder!!
Not a problem, you can provide the folder as the second argument of the script:
$ curl https://raw.githubusercontent.com/nullndr/Matador/main/remix.init/installer.sh | \
sh -s -- "/my/remix/project" "root"
Matador will be copied in /my/remix/project/root/routes/matador
, /my/remix/project/root/routes/matador.tsx
and
/my/remix/project/root/lib/matador
.