No description
- TypeScript 92.1%
- SCSS 4.9%
- Nix 2.3%
- HTML 0.7%
| src | ||
| static | ||
| .envrc | ||
| .gitignore | ||
| .parcelrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| shell.nix | ||
| tsconfig.json | ||
| yarn.lock | ||
why
unix pass stores secrets in a directory of gpg files. it has git cli integration. git can be served over https
standard-notes is note taking software that can be self hosted and allows a custom editor to run in an iframe
this unfortunate bridge binds the two together despite vigerous protestation
components
a component must not be too big to hold in your head, which is why we have five
- note - uses editor-kit to manipulate persistent state
- secret - don't touch my CRUD
- sync - this http smells gitty
- util - theres no bodge like a good bodge
- main - wiring it all together
architecture
each component defines:
- what it "is" - aka state and how it is manipulated
- what it "expects" - aka IO dependencies on external components
- what it "does" - per component logic and display
state
- persistent state - survives reloads, Very Ceremonial because this is where bugs come from
- flash state - defined by react components, ephemeral, UI dependent
- navigation state - encoding how a given UI state was reached (path, which thing is selected, etc)
io
smells like delegate pattern, every thing that needs to reach outside the component defines an abstract set of functions that allow that behavior to be passed in
logic
each component has bespoke needs and defines lower-case.ts files that contain logic
display
UpperCase.tsx files contain functional views (and sometimes flash state)