It is recommended to use the Nix development shell instructions to have access to all repository tooling, but the core application can be developed without this. Here are the simple instructions to begin:
- (optional) if
bunis not provided bynix, installbunfirst bun installto install all javascript dependenciesbun run dev -- --opento begin developing with hot reload, which will auto-open the app in the browser
typescriptas scripting languagesveltekitas full-stack application frameworksvelteas component frameworkviteas javascript module bundlerbunas server runtime and package managerxyflowas flowchart component librarytailwindas component styling frameworkshadcn-svelteas component repositoryplaywrightas end-to-end testing frameworkvitestas unit testing frameworksvelte-persisted-storeas temporary(!) data storage layerquillorTipTapas WYSIWYG editor componentrenovateas dependency automation toolelkjsas flowchart layout algorithm
As with many of @schradert's code repositories, this one uses the nix: package manager as a metatool for accessing, building, and running any other software reproducibly. To access the tools in this section (required for final approval on merging pull requests into trunk), please follow the instructions below.
- Follow the installation instructions for your runtime preference.
- Activate necessary experimental features
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.confWhat this does is allow you to use the nix command directly on a "flake", which are essentially standard nowadays
Because the nix-command and flakes features are active now, simply run nix develop from within the project directory and watch the magic happen. This will take a while to complete but by the end, you will enter an interactive shell with all of the tools you need to work on the project.
This development environment is configurable from within the project, but it does not hot reload by default without a separate tool: direnv. To enable this autoloading feature, install the necessary tools like so:
nix profile install nixpkgs#direnv nixpkgs#nix-direnvdirenv is a simple but effective tool that will run code in every .envrc in an entered directory and its ancestors. We include the nix-direnv library to support building the project's development shell using Nix.
After running this command, a prompt will instruct you to allow the project's environment to evaluate by running direnv allow. Now any process that enters any of this project's directories will be sure to operate within the development environment.
If there are issues with code not autoloading, direnv reload will force the environment to reevaluate.
caniveteas repository frameworkpre-commitas git hook frameworkcommitizenas release management toolgitleaksas secret exposure prevention toollycheeas hyperlink validatormarkdownlintas markdown lintermdshas markdown shell preprocessortagrefas code annotation frameworktyposas spell checkeralejandraas nix formatterdeadnixas nix linter for dead codestatixas general nix linterbiomeas javascript linter and formatter