A worked example of a JSON article: an invented house whose article carries the card of the invented person who lives in it.
Everything on this page is drawn from one JSON object. Press JSON at the top to see it. Nothing here is real: the house and the person are invented to show how two articles carry each other.
Who lives here
The line below is an Obsidian transclusion, ![[example-person-dana-reyes|lives here]]. It draws the person's article as a card, with the facts that article chose to show.
![[example-person-dana-reyes#facts.work]] draws one branch of the other article's facts as a JSON widget, read live from that article:
the resident's work, read from her article
JSONthe resident's work, read from her article
{4 keys
"title": "pediatric nurse",
"employer": "an invented clinic",
"since": 2017,
"license": {2 keys
"board": "California Board of Registered Nursing",
"status": "UNKNOWN"
}
}
The house itself
This is the house's own facts, as a widget:
facts of this house
JSONfacts of this house
{7 keys
"address": {4 keys
"street": "14 Cypress Lane",
"city": "Mill Valley",
"county": "Marin",
"state": "CA"
},
"built": 1962,
"bedrooms": 3,
"bathrooms": 2,
"lot_sq_ft": 7400,
"residents": [1 item
"example-person-dana-reyes"
],"permits": [2 items
{3 keys
"kind": "reroof",
"year": 2019,
"status": "finaled"
},{3 keys
"kind": "ADU",
"year": 2024,
"status": "UNKNOWN"
}
]
}
Change one fact without sending the whole article: PATCH /api/jarticles/example-house-14-cypress-lane with {"ops":[{"op":"set","path":"facts.permits[1].status","value":"issued"}]} and the hash you read in if-match.
{
"schema":"https://miscsubjects.com/schemas/jarticle.json",
"status":"published",
"slug":"example-house-14-cypress-lane",
"title":"14 Cypress Lane, Mill Valley (an example)",
"kind":"house",
"summary":"A worked example of a JSON article: an invented house whose article carries the card of the invented person who lives in it.",
"tags": [
"example",
"ontology"
],
"facts": {
"address": {
"street":"14 Cypress Lane",
"city":"Mill Valley",
"county":"Marin",
"state":"CA"
},
"built":1962,
"bedrooms":3,
"bathrooms":2,
"lot_sq_ft":7400,
"residents": [
"example-person-dana-reyes"
],
"permits": [
{
"kind":"reroof",
"year":2019,
"status":"finaled"
},
{
"kind":"ADU",
"year":2024,
"status":"UNKNOWN"
}
]
},
"card_fields": [
"address.city",
"built",
"bedrooms"
],
"ontology": {
"above": [
"json-articles-how-they-work"
],
"adjacent": [],
"nested": [
"example-person-dana-reyes"
],
"show_position":true
},
"body": [
"Everything on this page is drawn from one JSON object. Press **JSON** at the top to see it. Nothing here is real: the house and the person are invented to show how two articles carry each other.\n\n## Who lives here\n\nThe line below is an Obsidian transclusion, `![[example-person-dana-reyes|lives here]]`. It draws the person's article as a card, with the facts that article chose to show.\n\n![[example-person-dana-reyes|lives here]]\n\n## One piece of the person\n\n`![[example-person-dana-reyes#facts.work]]` draws one branch of the other article's facts as a JSON widget, read live from that article:\n\n![[example-person-dana-reyes#facts.work|the resident's work, read from her article]]\n\n## The house itself\n\nThis is the house's own `facts`, as a widget:",
{
"type":"json",
"ref":"#facts",
"title":"facts of this house",
"open_depth":2
},
"Change one fact without sending the whole article: `PATCH /api/jarticles/example-house-14-cypress-lane` with `{\"ops\":[{\"op\":\"set\",\"path\":\"facts.permits[1].status\",\"value\":\"issued\"}]}` and the hash you read in `if-match`."
],
"created":"2026-10-05T01:35:41.877Z",
"updated":"2026-10-05T01:35:41.877Z",
"version":1,
"hash":"4e844851c6119c90308080d305ba1f4f1186fa83e1336bf4cad145e3650b98b8",
"styling": {
"scope":"shared",
"how":"no value on the page is set by hand: each comes from this theme, and each theme value becomes the CSS variable named beside it. PATCH https://miscsubjects.com/api/jarticles/theme changes them.",
"widget_style": {
"what":"every widget may carry style: {…}; these are the only keys it reads",
"rotate":"degrees, a number",
"offset_x":"pixels, a number",
"offset_y":"pixels, a number",
"pulse":"true to pulse"
},
"theme": {
"color": {
"page_bg":"#f5f5f7",
"sheet_bg":"#ffffff",
"ink":"#1d1d1f",
"soft":"#424245",
"muted":"#6e6e73",
"dim":"#86868b",
"line":"#d2d2d7",
"accent":"#0071e3",
"accent_soft":"rgba(0,113,227,0.08)",
"link":"#0066cc",
"selection":"rgba(0,113,227,0.18)",
"widget_bg":"#f5f5f7",
"widget_border":"#d2d2d7",
"card_bg":"#ffffff",
"code_bg":"#f5f5f7",
"json_bg":"#161b19",
"json_ink":"#e6e1d4",
"json_key":"#7fd3c3",
"json_string":"#e9c46a",
"json_number":"#f4a261",
"json_bool":"#c792ea",
"json_null":"#928d7e",
"json_punct":"#6b6759",
"json_bar":"#0e1512",
"kind_badge_bg":"#0e6e60",
"kind_badge_ink":"#ffffff"
},
"color_dark": {
"page_bg":"#000000",
"sheet_bg":"#1d1d1f",
"ink":"#f5f5f7",
"soft":"#d2d2d7",
"muted":"#a1a1a6",
"dim":"#86868b",
"line":"#424245",
"accent":"#2997ff",
"accent_soft":"rgba(41,151,255,0.12)",
"link":"#2997ff",
"selection":"rgba(41,151,255,0.25)",
"widget_bg":"#2c2c2e",
"widget_border":"#424245",
"card_bg":"#1d1d1f",
"code_bg":"#2c2c2e",
"json_bg":"#0a0d0c",
"json_ink":"#e6e1d4",
"json_key":"#7fd3c3",
"json_string":"#e9c46a",
"json_number":"#f4a261",
"json_bool":"#c792ea",
"json_null":"#757062",
"json_punct":"#5d665f",
"json_bar":"#060807",
"kind_badge_bg":"#4fc1ab",
"kind_badge_ink":"#0b0f0d"
},
"font": {
"display":"-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Helvetica,Arial,sans-serif",
"body":"-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Helvetica,Arial,sans-serif",
"mono":"ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace",
"google_fonts":""
},
"size": {
"body":"17px",
"small":"17px",
"eye":"17px",
"lead":"17px",
"h1":"52px",
"h2":"34px",
"h3":"22px",
"byline":"17px",
"h1_measure":"none",
"code":"17px",
"json":"17px",
"widget_title":"17px"
},
"leading": {
"body":"1.7",
"head":"1.18",
"lead":"1.5",
"json":"1.6"
},
"weight": {
"display":"700",
"head":"700",
"body":"400",
"strong":"700",
"eye":"700"
},
"tracking": {
"eye":"0.14em",
"display":"-0.03em",
"body":"-0.006em",
"badge":"0.08em"
},
"layout": {
"sheet_width":"1000px",
"text_width":"880px",
"gutter":"16px",
"sheet_padding":"56px 64px 64px",
"sheet_padding_mobile":"24px 18px 40px",
"sheet_margin":"28px auto 72px",
"block_gap":"1.15em",
"widget_gap":"28px",
"grid_gap":"14px"
},
"border": {
"sheet":"0px solid",
"sheet_radius":"30px",
"widget":"1px solid",
"widget_radius":"24px",
"card_radius":"24px",
"badge_radius":"999px",
"rule":"1px solid",
"code_radius":"18px",
"accent_bar":"3px"
},
"shadow": {
"sheet":"0 1px 1px rgba(0,0,0,.02),0 6px 26px rgba(0,0,0,.05)",
"widget":"none",
"card_hover":"0 10px 28px -16px rgba(28,27,23,0.35)"
},
"motion": {
"hover":"160ms ease"
}
}
},
"page":"https://miscsubjects.com/a/example-house-14-cypress-lane",
"json":"https://miscsubjects.com/a/example-house-14-cypress-lane.json",
"markdown":"https://miscsubjects.com/a/example-house-14-cypress-lane.md",
"theme":"https://miscsubjects.com/article-theme.json",
"calls": [
{
"what":"this article as a page (no key)",
"method":"GET",
"url":"https://miscsubjects.com/a/example-house-14-cypress-lane",
"headers": {}
},
{
"what":"this article as its object (no key)",
"method":"GET",
"url":"https://miscsubjects.com/a/example-house-14-cypress-lane.json",
"headers": {}
},
{
"what":"this article as Markdown (no key)",
"method":"GET",
"url":"https://miscsubjects.com/a/example-house-14-cypress-lane.md",
"headers": {}
},
{
"what":"the object with its hash, drafts too",
"method":"GET",
"url":"https://miscsubjects.com/api/jarticles/example-house-14-cypress-lane",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"one piece and that piece’s hash",
"method":"GET",
"url":"https://miscsubjects.com/api/jarticles/example-house-14-cypress-lane/at?path=facts",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"grep: every key or value that matches, with the path to change it",
"method":"GET",
"url":"https://miscsubjects.com/api/jarticles/example-house-14-cypress-lane/grep?q=owner",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"change pieces (set, merge, delete, append, insert, move); if-match is the hash",
"method":"PATCH",
"url":"https://miscsubjects.com/api/jarticles/example-house-14-cypress-lane",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json",
"if-match":"<hash from the read>"
},
"body": {
"ops": [
{
"op":"set",
"path":"facts.example",
"value":1
}
]
}
},
{
"what":"replace the whole object",
"method":"PUT",
"url":"https://miscsubjects.com/api/jarticles/example-house-14-cypress-lane",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json",
"if-match":"<hash>"
},
"body": {
"slug":"example-house-14-cypress-lane",
"title":"…"
}
},
{
"what":"fetch every source, hash what came back and check the quote is in it",
"method":"POST",
"url":"https://miscsubjects.com/api/jarticles/example-house-14-cypress-lane/verify",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json"
},
"body": {}
},
{
"what":"an Obsidian-style command",
"method":"POST",
"url":"https://miscsubjects.com/api/jarticles/cli",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json"
},
"body": {
"command":"backlinks",
"file":"example-house-14-cypress-lane"
}
}
]
}