Screenshot for a T3 Code bug report: inline code in Markdown tables.
md hello-effect-schema
cd hello-effect-schema
pnpm init
pnpm i typescript @effect/schema effect fast-check vitest
Make tsconfig.json:
type Group = {
id: Uuid
members: Group[]
keys: KeysetWithSecrets
graph:
}- Automerge: Making servers optional for real-time collaboration A very clear explanation by Martin Kleppmann of how CRDTs work, along with an introduction to Automerge. This is the video that started me down this whole road, as documented in this blog post
- Local-first software: You own your data, in spite of the cloud The manifesto that gave a name to the concept and that still stands as the best introduction to it; by Martin Kleppmann & Peter Van Hardenberg et al.
- localfirst.fm A podcast by Johannes Schickling about local-first software development. The first episode with Peter Van Hardenberg gives a good overview of the current state of the art.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { exec as _exec } from 'child_process' | |
| import fs from 'fs' | |
| import path from 'path' | |
| import { fileURLToPath } from 'url' | |
| import { promisify } from 'util' | |
| const exec = promisify(_exec) | |
| // ensure outputDir exists | |
| const __dirname = fileURLToPath(new URL('.', import.meta.url)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Available variables: | |
| // - Machine | |
| // - interpret | |
| // - assign | |
| // - send | |
| // - sendParent | |
| // - spawn | |
| // - raise | |
| // - actions |
This is pseudo-documentation for a hypothetical auth provider for Automerge Repo built around @localfirst/auth.
A LocalFirstAuthProvider is configured with information about the local user and device.
import { LocalFirstAuthProvider, createUser, createDevice } from 'automerge-repo-auth-localfirstauth'NewerOlder