No description
  • TypeScript 92.1%
  • SCSS 4.9%
  • Nix 2.3%
  • HTML 0.7%
Find a file
2022-04-03 09:23:14 -07:00
src WIP: ?? 2022-04-03 09:23:14 -07:00
static Prettier 2022-02-26 19:44:48 -08:00
.envrc Node 16 dev env 2022-01-22 19:14:08 -08:00
.gitignore Broken sketch 2022-01-25 21:48:54 -08:00
.parcelrc Transition build system to parcel+typescript 2022-01-22 23:40:31 -08:00
.prettierignore Prettier 2022-02-26 19:44:48 -08:00
.prettierrc.json WIP: coming together 2022-02-26 19:35:37 -08:00
flake.lock Node 16 dev env 2022-01-22 19:14:08 -08:00
flake.nix WIP: Massive rewrite for component-based organization 2022-02-04 17:32:12 -08:00
LICENSE Fresh via standardnotes/react-blank-slate without scss 2022-01-22 19:25:11 -08:00
package.json WIP: ?? 2022-04-03 09:23:14 -07:00
README.md Prettier 2022-02-26 19:44:48 -08:00
shell.nix Transition build system to parcel+typescript 2022-01-22 23:40:31 -08:00
tsconfig.json Prettier 2022-02-26 19:44:48 -08:00
yarn.lock WIP: ?? 2022-04-03 09:23:14 -07:00

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)