Open Sauced provides structured onboarding for new contributors to open source. This structure provides a way to track your next contributions by leveraging a unique dashboard built on top of the GitHub GraphQL API.
In order to run the project from a container we need node>=14
, npm>=7
and docker>=20
installed on our development machines or
use one of the listed cloud providers we support:
โ fully ready integrated development environment
Gitpod is mostly free but has extensive documentation for all its contributing features.
For Vite to work with Gitpod we need to use a custom Dockerfile that lives under .gitpod.Dockerfile.
Open Sauced comes with a pre-defined .gitpod.yml that should work out of the box in multiple contribution scenarios.
โ fully ready integrated development environment
Replit is an old service that recently supported NixOS, enabling full customisation of the runner and project.
Open Sauced is configured with a shell environment supporting node@16 and npm@8. The build environment script lives in shell.nix and the repl config lives in .replit.
โ can be used as editor replacement
โ supports deployment preview
โญ enforces custom package manager for stability
โญ low resources free tier limitations
โ can be used as editor replacement
โ supports deployment preview
โญ enforces custom package manager for stability
โญ limited documentation on container limitations
โ can be used as editor replacement
โ supports deployment preview
โญ enforces custom package manager for stability
โญ does not support stacked hot module reload
โญ severely low resources free tier limitations
To install the application:
npm ci
To start a local copy of the app on port 3000
:
npm start
For running the test suite, use the following command. Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to install watchman.
npm test
You can request a coverage report by running the following command:
npm run test:coverage
A development preview can also be run from docker:
docker build -t open-sauced-dev .
docker run -p 8080:80 open-sauced-dev
Alternatively you can pull the production container and skip all builds:
docker run -dit -p 8080:80 ghcr.io/open-sauced/open-sauced
To check the code and styles quality, use the following command:
npm run lint
This will also display during development, but not break on errors.
To fix the linting errors, use the following command:
npm run format
A production deployment is a complete build of the project, including the build of the static assets.
npm run build
You can analyze the build by running the following command:
npm run build:analyze
We also have a script for updating .svg
files used in the project, you only need to run this if you add new assets:
npm run build:svgo
And one for .png
and .jpg
files:
npm run build:squoosh
Thanks to antfu/vite-plugin-inpesct we can always inspect the bundles in development by navigating to localhost:3000/__inspect/ in your browser.
Storybook is being leveraged to mock out visual React components. The latest version of the design system can be found at this URL.
npm run storybook
Authentication is handled through OneGraph's AuthGuardian service.
This project uses GitHub as a database. When you login, you will be presented with a button to create a goals repository. That repository template lives at open-sauced/goals-template.
This project uses the sw-precache to kickstart an offline cache. The offline cache only registers in production. If service needs to be manually removed make an unregister call from the registerServiceWorker.js import.
This project supports "dark mode" styling, and by default it will follow the color preference on your device. It also allows for overriding this using buttons at the top right of the screen, which will persist the preference to local storage on your device. More info about color preference web API's can be found here: MDN Web Docs
This project leverages Remirror for a delightful experience in documenting your Open Source goals. The editor supports markdown features including heading levels, bulleted lists, text formatting, code snippets, and emojis!
We encourage you to contribute to Open Sauced! Please check out the Contributing guide for guidelines about how to proceed.
We have a commit utility called @open-sauced/conventional-commit that helps you write your commits in a way that is easy to understand and process by others.
It is generally integrated as an npm
script but you can run it with npx
as well:
npm run push
For any other npm based project or dotnpmrc defaulting to --yes
:
npx -y @open-sauced/conventional-commit
Got Questions? Join the conversation in our Discord.
Find Open Sauced videos and release overviews on our YouTube Channel.
MIT ยฉ Open Sauced