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
bun
is not provided bynix
, installbun
first bun install
to install all javascript dependenciesbun run dev -- --open
to begin developing with hot reload, which will auto-open the app in the browser
typescript
as scripting languagesveltekit
as full-stack application frameworksvelte
as component frameworkvite
as javascript module bundlerbun
as server runtime and package managerxyflow
as flowchart component librarytailwind
as component styling frameworkshadcn-svelte
as component repositoryplaywright
as end-to-end testing frameworkvitest
as unit testing frameworksvelte-persisted-store
as temporary(!) data storage layerquill
orTipTap
as WYSIWYG editor componentrenovate
as dependency automation toolelkjs
as 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.conf
What 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-direnv
direnv 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.
canivete
as repository frameworkpre-commit
as git hook frameworkcommitizen
as release management toolgitleaks
as secret exposure prevention toollychee
as hyperlink validatormarkdownlint
as markdown lintermdsh
as markdown shell preprocessortagref
as code annotation frameworktypos
as spell checkeralejandra
as nix formatterdeadnix
as nix linter for dead codestatix
as general nix linterbiome
as javascript linter and formatter