@omniharmonic/openspace-cli 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/README.md +14 -9
  2. package/dist/{agents-md-7DESZGEN.js → agents-md-PVK5NBFF.js} +3 -2
  3. package/dist/bin.js +4 -2
  4. package/dist/bin.js.map +1 -1
  5. package/dist/chunk-26AZCID5.js +44 -0
  6. package/dist/chunk-26AZCID5.js.map +1 -0
  7. package/dist/{chunk-TQZ5F7VG.js → chunk-RG7S2MUH.js} +13857 -22780
  8. package/dist/chunk-RG7S2MUH.js.map +1 -0
  9. package/dist/{chunk-AAMRGTSI.js → chunk-UQXJVMUV.js} +9116 -855
  10. package/dist/chunk-UQXJVMUV.js.map +1 -0
  11. package/dist/chunk-WE4QCL3R.js +12836 -0
  12. package/dist/chunk-WE4QCL3R.js.map +1 -0
  13. package/dist/crawl-5ZZ5W7B6.js +9 -0
  14. package/dist/crawl-5ZZ5W7B6.js.map +1 -0
  15. package/dist/index.js +4 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/starter/site/AGENTS.md +13 -6
  18. package/dist/templates/atelier/content/pages/about.json +1 -1
  19. package/dist/templates/atelier/content/pages/commissions.json +1 -1
  20. package/dist/templates/atelier/content/pages/contact.json +1 -1
  21. package/dist/templates/atelier/content/pages/home.json +1 -1
  22. package/dist/templates/atelier/content/pages/work.json +1 -1
  23. package/dist/templates/atelier/content/site.json +1 -1
  24. package/dist/templates/atelier/content/styles.json +1 -1
  25. package/dist/templates/atelier/openspace.json +2 -2
  26. package/dist/templates/atelier/template.json +1 -1
  27. package/dist/templates/beacon/content/collections/events/_collection.json +13 -0
  28. package/dist/templates/beacon/content/collections/events/keeper-training-november.mdoc +14 -0
  29. package/dist/templates/beacon/content/collections/events/planting-day-harbour-ward.mdoc +14 -0
  30. package/dist/templates/beacon/content/collections/events/planting-day-linden-north.mdoc +14 -0
  31. package/dist/templates/beacon/content/collections/news/2026-09-12-heat-map-2026.mdoc +13 -0
  32. package/dist/templates/beacon/content/collections/news/2026-09-30-school-gardens-harvest.mdoc +13 -0
  33. package/dist/templates/beacon/content/collections/news/2026-10-14-planting-season-begins.mdoc +13 -0
  34. package/dist/templates/beacon/content/collections/news/_collection.json +16 -0
  35. package/dist/templates/beacon/content/pages/about.json +572 -0
  36. package/dist/templates/beacon/content/pages/contact.json +260 -0
  37. package/dist/templates/beacon/content/pages/donate.json +406 -0
  38. package/dist/templates/beacon/content/pages/get-involved.json +412 -0
  39. package/dist/templates/beacon/content/pages/home.json +701 -0
  40. package/dist/templates/beacon/content/pages/our-work.json +855 -0
  41. package/dist/templates/beacon/content/site.json +363 -0
  42. package/dist/templates/beacon/content/styles.json +17 -0
  43. package/dist/templates/beacon/media/LICENSES.json +163 -0
  44. package/dist/templates/beacon/openspace.json +21 -0
  45. package/dist/templates/beacon/template.json +113 -0
  46. package/dist/templates/commons/content/pages/about.json +1 -1
  47. package/dist/templates/commons/content/pages/{members.json → directory.json} +16 -16
  48. package/dist/templates/commons/content/pages/home.json +2 -2
  49. package/dist/templates/commons/content/pages/join.json +1 -1
  50. package/dist/templates/commons/content/site.json +3 -3
  51. package/dist/templates/commons/content/styles.json +1 -1
  52. package/dist/templates/commons/openspace.json +2 -2
  53. package/dist/templates/commons/template.json +3 -3
  54. package/dist/templates/darkroom/content/collections/work/_collection.json +13 -0
  55. package/dist/templates/darkroom/content/collections/work/after-hours.mdoc +28 -0
  56. package/dist/templates/darkroom/content/collections/work/dry-season.mdoc +28 -0
  57. package/dist/templates/darkroom/content/collections/work/faces-of-the-guild.mdoc +28 -0
  58. package/dist/templates/darkroom/content/collections/work/two-weddings.mdoc +28 -0
  59. package/dist/templates/darkroom/content/collections/work/white-lines.mdoc +28 -0
  60. package/dist/templates/darkroom/content/pages/about.json +449 -0
  61. package/dist/templates/darkroom/content/pages/contact.json +185 -0
  62. package/dist/templates/darkroom/content/pages/home.json +636 -0
  63. package/dist/templates/darkroom/content/pages/services.json +636 -0
  64. package/dist/templates/darkroom/content/site.json +264 -0
  65. package/dist/templates/darkroom/content/styles.json +17 -0
  66. package/dist/templates/darkroom/media/LICENSES.json +284 -0
  67. package/dist/templates/darkroom/openspace.json +21 -0
  68. package/dist/templates/darkroom/template.json +103 -0
  69. package/dist/templates/encore/content/pages/about.json +1 -1
  70. package/dist/templates/encore/content/pages/contact.json +1 -1
  71. package/dist/templates/encore/content/pages/home.json +87 -1
  72. package/dist/templates/encore/content/pages/music.json +1 -1
  73. package/dist/templates/encore/content/site.json +1 -1
  74. package/dist/templates/encore/content/styles.json +1 -1
  75. package/dist/templates/encore/media/LICENSES.json +22 -0
  76. package/dist/templates/encore/openspace.json +2 -2
  77. package/dist/templates/encore/template.json +1 -1
  78. package/dist/templates/field-notes/content/pages/about.json +1 -1
  79. package/dist/templates/field-notes/content/pages/contact.json +1 -1
  80. package/dist/templates/field-notes/content/pages/home.json +95 -1
  81. package/dist/templates/field-notes/content/pages/subscribe.json +1 -1
  82. package/dist/templates/field-notes/content/site.json +1 -1
  83. package/dist/templates/field-notes/content/styles.json +1 -1
  84. package/dist/templates/field-notes/openspace.json +2 -2
  85. package/dist/templates/field-notes/template.json +1 -1
  86. package/dist/templates/fixwell/content/pages/about.json +508 -0
  87. package/dist/templates/fixwell/content/pages/contact.json +321 -0
  88. package/dist/templates/fixwell/content/pages/home.json +888 -0
  89. package/dist/templates/fixwell/content/pages/pricing.json +467 -0
  90. package/dist/templates/fixwell/content/pages/services.json +648 -0
  91. package/dist/templates/fixwell/content/site.json +293 -0
  92. package/dist/templates/fixwell/content/styles.json +17 -0
  93. package/dist/templates/fixwell/media/LICENSES.json +119 -0
  94. package/dist/templates/fixwell/openspace.json +21 -0
  95. package/dist/templates/fixwell/template.json +108 -0
  96. package/dist/templates/folio/content/collections/projects/_collection.json +13 -0
  97. package/dist/templates/folio/content/collections/projects/field-notes-app.mdoc +28 -0
  98. package/dist/templates/folio/content/collections/projects/harbour-health-dashboards.mdoc +28 -0
  99. package/dist/templates/folio/content/collections/projects/open-budget.mdoc +28 -0
  100. package/dist/templates/folio/content/collections/projects/transit-times.mdoc +28 -0
  101. package/dist/templates/folio/content/collections/writing/2026-08-30-designing-for-night-shifts.mdoc +9 -0
  102. package/dist/templates/folio/content/collections/writing/2026-09-20-testing-with-real-data.mdoc +9 -0
  103. package/dist/templates/folio/content/collections/writing/2026-10-12-one-honest-number.mdoc +9 -0
  104. package/dist/templates/folio/content/collections/writing/_collection.json +16 -0
  105. package/dist/templates/folio/content/pages/about.json +366 -0
  106. package/dist/templates/folio/content/pages/contact.json +218 -0
  107. package/dist/templates/folio/content/pages/experience.json +552 -0
  108. package/dist/templates/folio/content/pages/home.json +410 -0
  109. package/dist/templates/folio/content/site.json +186 -0
  110. package/dist/templates/folio/content/styles.json +17 -0
  111. package/dist/templates/folio/media/LICENSES.json +229 -0
  112. package/dist/templates/folio/openspace.json +21 -0
  113. package/dist/templates/folio/template.json +103 -0
  114. package/dist/templates/gather/content/collections/fringe/_collection.json +13 -0
  115. package/dist/templates/gather/content/collections/fringe/library-open-studio.mdoc +14 -0
  116. package/dist/templates/gather/content/collections/fringe/morning-run.mdoc +14 -0
  117. package/dist/templates/gather/content/collections/fringe/plain-language-pub-quiz.mdoc +14 -0
  118. package/dist/templates/gather/content/pages/about.json +435 -0
  119. package/dist/templates/gather/content/pages/contact.json +196 -0
  120. package/dist/templates/gather/content/pages/home.json +527 -0
  121. package/dist/templates/gather/content/pages/programme.json +449 -0
  122. package/dist/templates/gather/content/pages/speakers.json +225 -0
  123. package/dist/templates/gather/content/pages/tickets.json +495 -0
  124. package/dist/templates/gather/content/pages/venue.json +382 -0
  125. package/dist/templates/gather/content/site.json +222 -0
  126. package/dist/templates/gather/content/styles.json +17 -0
  127. package/dist/templates/gather/media/LICENSES.json +185 -0
  128. package/dist/templates/gather/openspace.json +21 -0
  129. package/dist/templates/gather/template.json +118 -0
  130. package/dist/templates/harbor/content/pages/about.json +1 -1
  131. package/dist/templates/harbor/content/pages/contact.json +1 -1
  132. package/dist/templates/harbor/content/pages/get-involved.json +1 -1
  133. package/dist/templates/harbor/content/pages/home.json +1 -1
  134. package/dist/templates/harbor/content/pages/programs.json +1 -1
  135. package/dist/templates/harbor/content/site.json +1 -1
  136. package/dist/templates/harbor/content/styles.json +1 -1
  137. package/dist/templates/harbor/openspace.json +2 -2
  138. package/dist/templates/harbor/template.json +1 -1
  139. package/dist/templates/hearth/content/pages/about.json +1 -1
  140. package/dist/templates/hearth/content/pages/home.json +1 -1
  141. package/dist/templates/hearth/content/pages/menu.json +1 -1
  142. package/dist/templates/hearth/content/pages/private-dining.json +1 -1
  143. package/dist/templates/hearth/content/pages/visit.json +1 -1
  144. package/dist/templates/hearth/content/site.json +1 -1
  145. package/dist/templates/hearth/content/styles.json +1 -1
  146. package/dist/templates/hearth/openspace.json +2 -2
  147. package/dist/templates/hearth/template.json +1 -1
  148. package/dist/templates/inkwell/content/collections/essays/2026-09-17-notebooks.mdoc +13 -0
  149. package/dist/templates/inkwell/content/collections/essays/2026-10-01-kitchen-radio.mdoc +13 -0
  150. package/dist/templates/inkwell/content/collections/essays/2026-10-15-the-same-mile.mdoc +13 -0
  151. package/dist/templates/inkwell/content/collections/essays/_collection.json +21 -0
  152. package/dist/templates/inkwell/content/pages/about.json +281 -0
  153. package/dist/templates/inkwell/content/pages/books.json +459 -0
  154. package/dist/templates/inkwell/content/pages/contact.json +201 -0
  155. package/dist/templates/inkwell/content/pages/home.json +457 -0
  156. package/dist/templates/inkwell/content/pages/speaking.json +522 -0
  157. package/dist/templates/inkwell/content/site.json +222 -0
  158. package/dist/templates/inkwell/content/styles.json +17 -0
  159. package/dist/templates/inkwell/media/LICENSES.json +119 -0
  160. package/dist/templates/inkwell/openspace.json +21 -0
  161. package/dist/templates/inkwell/template.json +108 -0
  162. package/dist/templates/keystone/content/collections/notes/2026-09-17-hard-conversations.mdoc +11 -0
  163. package/dist/templates/keystone/content/collections/notes/2026-10-01-weekly-rhythm.mdoc +11 -0
  164. package/dist/templates/keystone/content/collections/notes/2026-10-15-the-first-manager.mdoc +11 -0
  165. package/dist/templates/keystone/content/collections/notes/_collection.json +21 -0
  166. package/dist/templates/keystone/content/pages/about.json +371 -0
  167. package/dist/templates/keystone/content/pages/contact.json +207 -0
  168. package/dist/templates/keystone/content/pages/home.json +815 -0
  169. package/dist/templates/keystone/content/pages/results.json +396 -0
  170. package/dist/templates/keystone/content/pages/work-with-me.json +477 -0
  171. package/dist/templates/keystone/content/site.json +224 -0
  172. package/dist/templates/keystone/content/styles.json +17 -0
  173. package/dist/templates/keystone/media/LICENSES.json +75 -0
  174. package/dist/templates/keystone/openspace.json +21 -0
  175. package/dist/templates/keystone/template.json +108 -0
  176. package/dist/templates/kiln/content/pages/about.json +1 -1
  177. package/dist/templates/kiln/content/pages/contact.json +1 -1
  178. package/dist/templates/kiln/content/pages/home.json +1 -1
  179. package/dist/templates/kiln/content/pages/workshops.json +1 -1
  180. package/dist/templates/kiln/content/site.json +1 -1
  181. package/dist/templates/kiln/content/styles.json +1 -1
  182. package/dist/templates/kiln/openspace.json +2 -2
  183. package/dist/templates/kiln/template.json +1 -1
  184. package/dist/templates/ledger/content/pages/about.json +1 -1
  185. package/dist/templates/ledger/content/pages/contact.json +1 -1
  186. package/dist/templates/ledger/content/pages/home.json +63 -1
  187. package/dist/templates/ledger/content/pages/services.json +1 -1
  188. package/dist/templates/ledger/content/site.json +1 -1
  189. package/dist/templates/ledger/content/styles.json +1 -1
  190. package/dist/templates/ledger/openspace.json +2 -2
  191. package/dist/templates/ledger/template.json +1 -1
  192. package/dist/templates/link/content/pages/home.json +1 -1
  193. package/dist/templates/link/content/site.json +1 -1
  194. package/dist/templates/link/content/styles.json +1 -1
  195. package/dist/templates/link/openspace.json +2 -2
  196. package/dist/templates/link/template.json +1 -1
  197. package/dist/templates/meadow/content/pages/about.json +1 -1
  198. package/dist/templates/meadow/content/pages/bodywork.json +1 -1
  199. package/dist/templates/meadow/content/pages/classes.json +1 -1
  200. package/dist/templates/meadow/content/pages/contact.json +1 -1
  201. package/dist/templates/meadow/content/pages/home.json +1 -1
  202. package/dist/templates/meadow/content/site.json +1 -1
  203. package/dist/templates/meadow/content/styles.json +1 -1
  204. package/dist/templates/meadow/openspace.json +2 -2
  205. package/dist/templates/meadow/template.json +1 -1
  206. package/dist/templates/orbit/content/collections/changelog/2026-09-21-faster-attachments.mdoc +11 -0
  207. package/dist/templates/orbit/content/collections/changelog/2026-10-05-snooze-until-reply.mdoc +11 -0
  208. package/dist/templates/orbit/content/collections/changelog/2026-10-19-help-centre-search.mdoc +13 -0
  209. package/dist/templates/orbit/content/collections/changelog/_collection.json +39 -0
  210. package/dist/templates/orbit/content/pages/about.json +396 -0
  211. package/dist/templates/orbit/content/pages/contact.json +195 -0
  212. package/dist/templates/orbit/content/pages/features.json +603 -0
  213. package/dist/templates/orbit/content/pages/home.json +1273 -0
  214. package/dist/templates/orbit/content/pages/pricing.json +608 -0
  215. package/dist/templates/orbit/content/site.json +368 -0
  216. package/dist/templates/orbit/content/styles.json +17 -0
  217. package/dist/templates/orbit/media/LICENSES.json +141 -0
  218. package/dist/templates/orbit/openspace.json +21 -0
  219. package/dist/templates/orbit/template.json +108 -0
  220. package/dist/templates/signal/content/pages/about.json +1 -1
  221. package/dist/templates/signal/content/pages/contact.json +1 -1
  222. package/dist/templates/signal/content/pages/home.json +1 -1
  223. package/dist/templates/signal/content/pages/pricing.json +1 -1
  224. package/dist/templates/signal/content/site.json +1 -1
  225. package/dist/templates/signal/content/styles.json +1 -1
  226. package/dist/templates/signal/openspace.json +2 -2
  227. package/dist/templates/signal/template.json +1 -1
  228. package/dist/templates/vow/content/pages/about.json +1 -1
  229. package/dist/templates/vow/content/pages/home.json +1 -1
  230. package/dist/templates/vow/content/pages/registry.json +1 -1
  231. package/dist/templates/vow/content/pages/rsvp.json +1 -1
  232. package/dist/templates/vow/content/pages/schedule.json +1 -1
  233. package/dist/templates/vow/content/pages/travel.json +1 -1
  234. package/dist/templates/vow/content/site.json +1 -1
  235. package/dist/templates/vow/content/styles.json +1 -1
  236. package/dist/templates/vow/openspace.json +2 -2
  237. package/dist/templates/vow/template.json +1 -1
  238. package/package.json +7 -7
  239. package/dist/chunk-AAMRGTSI.js.map +0 -1
  240. package/dist/chunk-TQZ5F7VG.js.map +0 -1
  241. /package/dist/{agents-md-7DESZGEN.js.map → agents-md-PVK5NBFF.js.map} +0 -0
@@ -0,0 +1,222 @@
1
+ {
2
+ "$schema": "https://schema.openspace.host/v1/site.json",
3
+ "title": "June Okafor",
4
+ "tagline": "Essays on attention, place and noticing.",
5
+ "nav": [
6
+ {
7
+ "type": "collection",
8
+ "collection": "essays",
9
+ "label": "Essays"
10
+ },
11
+ {
12
+ "type": "page",
13
+ "page": "pg_jrse89j7zr",
14
+ "label": "Books"
15
+ },
16
+ {
17
+ "type": "page",
18
+ "page": "pg_2j99byhsdz",
19
+ "label": "Speaking"
20
+ },
21
+ {
22
+ "type": "page",
23
+ "page": "pg_7s4s483qqy",
24
+ "label": "About"
25
+ },
26
+ {
27
+ "type": "page",
28
+ "page": "pg_4vcke76yez",
29
+ "label": "Contact"
30
+ }
31
+ ],
32
+ "header": {
33
+ "variant": "logo-center-nav-below",
34
+ "sticky": false,
35
+ "transparentOnHero": false,
36
+ "mobileMenu": "fullscreen",
37
+ "colorTheme": "light",
38
+ "logoHeight": {
39
+ "d": 72,
40
+ "m": 44
41
+ }
42
+ },
43
+ "footer": {
44
+ "id": "sec_46m2qttec7",
45
+ "preset": "footer/signup-dark@1",
46
+ "label": "Footer with signup band",
47
+ "layout": {
48
+ "mode": "stack",
49
+ "columns": {
50
+ "d": [
51
+ 6,
52
+ 6
53
+ ],
54
+ "m": [
55
+ 12
56
+ ]
57
+ },
58
+ "gap": "xl"
59
+ },
60
+ "style": {
61
+ "colorTheme": "dark",
62
+ "padding": {
63
+ "d": "xl",
64
+ "m": "lg"
65
+ }
66
+ },
67
+ "blocks": [
68
+ {
69
+ "id": "blk_pyc15m7v1g",
70
+ "type": "text",
71
+ "v": 1,
72
+ "fields": {
73
+ "content": {
74
+ "type": "doc",
75
+ "content": [
76
+ {
77
+ "type": "paragraph",
78
+ "attrs": {
79
+ "preset": "lead"
80
+ },
81
+ "content": [
82
+ {
83
+ "type": "text",
84
+ "text": "Slow Light"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "type": "paragraph",
90
+ "content": [
91
+ {
92
+ "type": "text",
93
+ "text": "Essays from June Okafor, every other Thursday."
94
+ }
95
+ ]
96
+ }
97
+ ]
98
+ }
99
+ },
100
+ "column": 0,
101
+ "variant": "default"
102
+ },
103
+ {
104
+ "id": "blk_xc6z6jj9tn",
105
+ "type": "newsletter",
106
+ "v": 1,
107
+ "fields": {
108
+ "askName": false,
109
+ "placeholder": "you@example.com",
110
+ "buttonLabel": "Subscribe",
111
+ "successMessage": "Thank you — the next letter is on its way."
112
+ },
113
+ "column": 1,
114
+ "variant": "inline"
115
+ },
116
+ {
117
+ "id": "blk_c4vvqt1chf",
118
+ "type": "text",
119
+ "v": 1,
120
+ "fields": {
121
+ "content": {
122
+ "type": "doc",
123
+ "content": [
124
+ {
125
+ "type": "paragraph",
126
+ "attrs": {
127
+ "preset": "small"
128
+ },
129
+ "content": [
130
+ {
131
+ "type": "text",
132
+ "text": "© 2026 June Okafor · "
133
+ },
134
+ {
135
+ "type": "text",
136
+ "text": "Essays",
137
+ "marks": [
138
+ {
139
+ "type": "link",
140
+ "attrs": {
141
+ "href": "/essays/"
142
+ }
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "type": "text",
148
+ "text": " · "
149
+ },
150
+ {
151
+ "type": "text",
152
+ "text": "Contact",
153
+ "marks": [
154
+ {
155
+ "type": "link",
156
+ "attrs": {
157
+ "href": "/contact/"
158
+ }
159
+ }
160
+ ]
161
+ }
162
+ ]
163
+ }
164
+ ]
165
+ }
166
+ },
167
+ "column": 0,
168
+ "variant": "default"
169
+ },
170
+ {
171
+ "id": "blk_xs0nxsgm4m",
172
+ "type": "social-links",
173
+ "v": 1,
174
+ "fields": {
175
+ "source": "site",
176
+ "profiles": [
177
+ {
178
+ "network": "instagram",
179
+ "url": "https://instagram.com/juniperyoga"
180
+ },
181
+ {
182
+ "network": "youtube",
183
+ "url": "https://youtube.com/@juniperyoga"
184
+ },
185
+ {
186
+ "network": "email",
187
+ "url": "mailto:hello@juniperyoga.com"
188
+ }
189
+ ]
190
+ },
191
+ "column": 1,
192
+ "variant": "icons",
193
+ "style": {
194
+ "align": {
195
+ "d": "end"
196
+ }
197
+ }
198
+ }
199
+ ]
200
+ },
201
+ "social": [
202
+ {
203
+ "network": "bluesky",
204
+ "url": "https://bsky.app/profile/juneokafor.example"
205
+ },
206
+ {
207
+ "network": "instagram",
208
+ "url": "https://instagram.com/juneokafor.example"
209
+ }
210
+ ],
211
+ "seo": {
212
+ "titleTemplate": "%s · June Okafor",
213
+ "description": "Essays on attention, place and noticing, and the Slow Light newsletter.",
214
+ "image": "https://images.unsplash.com/photo-1558009250-d3d2229fdf28?w=1200&q=80"
215
+ },
216
+ "locale": "en-GB",
217
+ "integrations": {
218
+ "analytics": true,
219
+ "bookingUrl": null,
220
+ "stripeConnected": false
221
+ }
222
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://schema.openspace.host/v1/styles.json",
3
+ "choices": {
4
+ "palette": {
5
+ "brand": "oklch(0.45 0.13 25)",
6
+ "neutral": "warm",
7
+ "contrast": "standard",
8
+ "source": "curated"
9
+ },
10
+ "pairing": "eb-garamond-inter",
11
+ "density": "airy",
12
+ "shape": "sharp",
13
+ "buttons": "text-arrow",
14
+ "motion": "subtle",
15
+ "imageTreatment": "none"
16
+ }
17
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "$comment": "Licenses for the demo media in the Inkwell template. Replace the demo photos with your own; this file can be deleted once none of them are used.",
3
+ "design": {
4
+ "license": "CC-BY-4.0",
5
+ "licenseUrl": "https://creativecommons.org/licenses/by/4.0/"
6
+ },
7
+ "media": [
8
+ {
9
+ "kind": "image",
10
+ "src": "https://images.unsplash.com/photo-1434030216411-0b793f4b4173",
11
+ "title": "A person writing notes in a notebook beside a mug",
12
+ "author": "Unseen Studio",
13
+ "authorUrl": "https://unsplash.com/@uns__nstudio",
14
+ "source": "Unsplash",
15
+ "sourceUrl": "https://unsplash.com/photos/person-writing-on-brown-wooden-table-near-white-ceramic-mug-s9CC2SKySJM",
16
+ "license": "Unsplash License",
17
+ "licenseUrl": "https://unsplash.com/license"
18
+ },
19
+ {
20
+ "kind": "image",
21
+ "src": "https://images.unsplash.com/photo-1494809610410-160faaed4de0",
22
+ "title": "A woman reaching for a book in library stacks",
23
+ "author": "Clay Banks",
24
+ "authorUrl": "https://unsplash.com/@claybanks",
25
+ "source": "Unsplash",
26
+ "sourceUrl": "https://unsplash.com/photos/woman-standing-between-library-book-shelves-GX8KBbVmC6c",
27
+ "license": "Unsplash License",
28
+ "licenseUrl": "https://unsplash.com/license"
29
+ },
30
+ {
31
+ "kind": "image",
32
+ "src": "https://images.unsplash.com/photo-1505682634904-d7c8d95cdc50",
33
+ "title": "An old typewriter on a dark wooden desk",
34
+ "author": "Patrick Fore",
35
+ "authorUrl": "https://unsplash.com/@patrickian4",
36
+ "source": "Unsplash",
37
+ "sourceUrl": "https://unsplash.com/photos/black-corona-typewriter-on-brown-wood-planks-0gkw_9fy0eQ",
38
+ "license": "Unsplash License",
39
+ "licenseUrl": "https://unsplash.com/license"
40
+ },
41
+ {
42
+ "kind": "image",
43
+ "src": "https://images.unsplash.com/photo-1544005313-94ddf0286df2",
44
+ "title": "Portrait of a woman with long brown hair in a striped shirt",
45
+ "author": "Štefan Štefančík",
46
+ "authorUrl": "https://unsplash.com/@cikstefan",
47
+ "source": "Unsplash",
48
+ "sourceUrl": "https://unsplash.com/photos/smiling-woman-wearing-white-and-black-pinstriped-collared-top-QXevDflbl8A",
49
+ "license": "Unsplash License",
50
+ "licenseUrl": "https://unsplash.com/license"
51
+ },
52
+ {
53
+ "kind": "image",
54
+ "src": "https://images.unsplash.com/photo-1558009250-d3d2229fdf28",
55
+ "title": "A pale blue typewriter with a sheet of paper on a white table",
56
+ "author": "Luca Onniboni",
57
+ "authorUrl": "https://unsplash.com/@lucaonniboni",
58
+ "source": "Unsplash",
59
+ "sourceUrl": "https://unsplash.com/photos/teal-and-black-typewriter-machine-4v9Kk01mEbY",
60
+ "license": "Unsplash License",
61
+ "licenseUrl": "https://unsplash.com/license"
62
+ },
63
+ {
64
+ "kind": "image",
65
+ "src": "https://images.unsplash.com/photo-1580489944761-15a19d654956",
66
+ "title": "Portrait of a woman with dark hair pinned up, smiling",
67
+ "author": "Jake Nackos",
68
+ "authorUrl": "https://unsplash.com/@jakenackos",
69
+ "source": "Unsplash",
70
+ "sourceUrl": "https://unsplash.com/photos/woman-in-white-crew-neck-shirt-smiling-IF9TK5Uy-KI",
71
+ "license": "Unsplash License",
72
+ "licenseUrl": "https://unsplash.com/license"
73
+ },
74
+ {
75
+ "kind": "image",
76
+ "src": "https://images.unsplash.com/photo-1582079768381-0e81b88db423",
77
+ "title": "A woman reading a book at a cafe table in low light",
78
+ "author": "Priscilla Du Preez 🇨🇦",
79
+ "authorUrl": "https://unsplash.com/@priscilladupreez",
80
+ "source": "Unsplash",
81
+ "sourceUrl": "https://unsplash.com/photos/woman-in-brown-long-sleeve-shirt-reading-book-JaH62ihQLuE",
82
+ "license": "Unsplash License",
83
+ "licenseUrl": "https://unsplash.com/license"
84
+ },
85
+ {
86
+ "kind": "image",
87
+ "src": "https://images.unsplash.com/photo-1667053508464-eb11b394df83",
88
+ "title": "A studio portrait of a woman against a soft grey backdrop",
89
+ "author": "Dmitry Ganin",
90
+ "authorUrl": "https://unsplash.com/@ganinph",
91
+ "source": "Unsplash",
92
+ "sourceUrl": "https://unsplash.com/photos/a-woman-with-a-straight-face-JRa8lCQQhSs",
93
+ "license": "Unsplash License",
94
+ "licenseUrl": "https://unsplash.com/license"
95
+ },
96
+ {
97
+ "kind": "image",
98
+ "src": "https://images.unsplash.com/photo-1677462679593-97b817fb118a",
99
+ "title": "A colourful wall of books on wooden shelves",
100
+ "author": "Bree Anne",
101
+ "authorUrl": "https://unsplash.com/@breebuddy",
102
+ "source": "Unsplash",
103
+ "sourceUrl": "https://unsplash.com/photos/a-book-shelf-filled-with-lots-of-books-NRRv0J0881Y",
104
+ "license": "Unsplash License",
105
+ "licenseUrl": "https://unsplash.com/license"
106
+ },
107
+ {
108
+ "kind": "image",
109
+ "src": "https://images.unsplash.com/photo-1780387477222-730504564368",
110
+ "title": "Portrait of a smiling grey-haired woman in a beige jumpsuit",
111
+ "author": "Centre for Ageing Better",
112
+ "authorUrl": "https://unsplash.com/@ageing_better",
113
+ "source": "Unsplash",
114
+ "sourceUrl": "https://unsplash.com/photos/woman-in-beige-jumpsuit-smiling-sitting-on-a-stool-IxacjtwPdGM",
115
+ "license": "Unsplash License",
116
+ "licenseUrl": "https://unsplash.com/license"
117
+ }
118
+ ]
119
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://schema.openspace.host/v1/site-config.json",
3
+ "siteId": "st_63saner28z",
4
+ "schemaVersion": 1,
5
+ "template": {
6
+ "id": "inkwell",
7
+ "version": "1.0.0"
8
+ },
9
+ "hub": "https://hub.openspace.host",
10
+ "deploy": {
11
+ "target": "github-pages",
12
+ "url": "https://example.github.io/inkwell",
13
+ "customDomain": null
14
+ },
15
+ "features": {
16
+ "forms": true,
17
+ "newsletter": true,
18
+ "analytics": true,
19
+ "search": false
20
+ }
21
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "$schema": "https://schema.openspace.host/v1/template.json",
3
+ "id": "inkwell",
4
+ "name": "Inkwell",
5
+ "description": "A reading-first site for writers and newsletters, with signup above the fold, essays, books with press, speaking and a simple way to write in.",
6
+ "persona": "Writers, authors & newsletters",
7
+ "mood": "Literary, warm, unhurried",
8
+ "version": "1.0.0",
9
+ "tags": [
10
+ "writer",
11
+ "newsletter",
12
+ "author",
13
+ "essays",
14
+ "books",
15
+ "speaking"
16
+ ],
17
+ "sample": {
18
+ "name": "June Okafor",
19
+ "tagline": "Essays on attention, place and noticing."
20
+ },
21
+ "thumbnailPage": "pg_1zw7q5scxj",
22
+ "looks": [
23
+ {
24
+ "id": "paper",
25
+ "name": "Paper",
26
+ "description": "Cream paper, an oxblood accent and EB Garamond for long reading.",
27
+ "choices": {
28
+ "palette": {
29
+ "brand": "oklch(0.45 0.13 25)",
30
+ "neutral": "warm",
31
+ "contrast": "standard",
32
+ "source": "curated"
33
+ },
34
+ "pairing": "eb-garamond-inter",
35
+ "density": "airy",
36
+ "shape": "sharp",
37
+ "buttons": "text-arrow",
38
+ "motion": "subtle",
39
+ "imageTreatment": "none"
40
+ }
41
+ },
42
+ {
43
+ "id": "riverbank",
44
+ "name": "Riverbank",
45
+ "description": "A sage accent, Alegreya type and soft corners — a gentle, natural feel.",
46
+ "choices": {
47
+ "palette": {
48
+ "brand": "oklch(0.55 0.07 150)",
49
+ "neutral": "warm",
50
+ "contrast": "standard",
51
+ "source": "curated"
52
+ },
53
+ "pairing": "alegreya",
54
+ "density": "comfortable",
55
+ "shape": "soft",
56
+ "buttons": "pill-outline",
57
+ "motion": "subtle",
58
+ "imageTreatment": "rounded"
59
+ }
60
+ },
61
+ {
62
+ "id": "night-edition",
63
+ "name": "Night edition",
64
+ "description": "Ink blue, Libre Caslon headings and an underline button style.",
65
+ "choices": {
66
+ "palette": {
67
+ "brand": "oklch(0.42 0.12 265)",
68
+ "neutral": "cool",
69
+ "contrast": "standard",
70
+ "source": "brand"
71
+ },
72
+ "pairing": "libre-caslon-nunito-sans",
73
+ "density": "comfortable",
74
+ "shape": "sharp",
75
+ "buttons": "underline",
76
+ "motion": "none",
77
+ "imageTreatment": "grain"
78
+ }
79
+ }
80
+ ],
81
+ "pages": [
82
+ {
83
+ "id": "pg_1zw7q5scxj",
84
+ "title": "Home",
85
+ "slug": ""
86
+ },
87
+ {
88
+ "id": "pg_7s4s483qqy",
89
+ "title": "About",
90
+ "slug": "about"
91
+ },
92
+ {
93
+ "id": "pg_jrse89j7zr",
94
+ "title": "Books",
95
+ "slug": "books"
96
+ },
97
+ {
98
+ "id": "pg_2j99byhsdz",
99
+ "title": "Speaking",
100
+ "slug": "speaking"
101
+ },
102
+ {
103
+ "id": "pg_4vcke76yez",
104
+ "title": "Contact",
105
+ "slug": "contact"
106
+ }
107
+ ]
108
+ }
@@ -0,0 +1,11 @@
1
+ ---
2
+ status: published
3
+ title: The hard conversation you're avoiding
4
+ date: 2026-09-17
5
+ author: Nadia Brooks
6
+ excerpt: Most founders know exactly which conversation they're putting off. Here's a script.
7
+ ---
8
+
9
+ Name what you've noticed, say what it means for the team, ask what's going on, then decide together what happens next.
10
+
11
+ It's never as bad as the week of dread before it.
@@ -0,0 +1,11 @@
1
+ ---
2
+ status: published
3
+ title: A weekly rhythm for teams of ten
4
+ date: 2026-10-01
5
+ author: Nadia Brooks
6
+ excerpt: Three short meetings that replace a dozen long ones.
7
+ ---
8
+
9
+ Monday priorities, a Wednesday unblock and a Friday demo. Thirty minutes each, the same time every week.
10
+
11
+ The point isn't the meetings — it's that everyone knows when a decision will be made.
@@ -0,0 +1,11 @@
1
+ ---
2
+ status: published
3
+ title: Your first manager hire is about you
4
+ date: 2026-10-15
5
+ author: Nadia Brooks
6
+ excerpt: Before you hire someone to manage people, decide what you'll stop doing.
7
+ ---
8
+
9
+ Founders hire their first manager hoping to get time back. They rarely do, because they never decided which decisions they'd let go of.
10
+
11
+ Write the list first. Then hire.
@@ -0,0 +1,21 @@
1
+ {
2
+ "kind": "blog",
3
+ "label": "Notes",
4
+ "itemLabel": "Note",
5
+ "list": {
6
+ "layout": "list",
7
+ "pageSize": 20,
8
+ "sort": "date-desc"
9
+ },
10
+ "itemPage": {
11
+ "layout": "article",
12
+ "showDate": true,
13
+ "showAuthor": false,
14
+ "showRelated": true
15
+ },
16
+ "feed": {
17
+ "enabled": true,
18
+ "title": "Notes by Nadia Brooks",
19
+ "description": "Short essays on leading small teams."
20
+ }
21
+ }