@omniharmonic/openspace-cli 0.0.0-stage → 0.1.1

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 (205) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +74 -2
  3. package/dist/agents-md-2DTXWUZQ.js +8 -0
  4. package/dist/agents-md-2DTXWUZQ.js.map +1 -0
  5. package/dist/bin.d.ts +1 -0
  6. package/dist/bin.js +11 -0
  7. package/dist/bin.js.map +1 -0
  8. package/dist/chunk-3F6TAUAT.js +41167 -0
  9. package/dist/chunk-3F6TAUAT.js.map +1 -0
  10. package/dist/chunk-LTJEM3DN.js +17161 -0
  11. package/dist/chunk-LTJEM3DN.js.map +1 -0
  12. package/dist/index.d.ts +83 -0
  13. package/dist/index.js +23 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/starter/site/.github/workflows/publish.yml +38 -0
  16. package/dist/starter/site/AGENTS.md +392 -0
  17. package/dist/starter/site/astro.config.mjs +8 -0
  18. package/dist/starter/site/package.json +21 -0
  19. package/dist/starter/site/public/.gitkeep +0 -0
  20. package/dist/starter/site/src/pages/[...slug].astro +10 -0
  21. package/dist/starter/site/tsconfig.json +5 -0
  22. package/dist/starter/variants/cloudflare/.github/openspace/gated-sync.mjs +121 -0
  23. package/dist/starter/variants/cloudflare/.github/workflows/publish.yml +70 -0
  24. package/dist/starter/variants/cloudflare/astro.config.mjs +11 -0
  25. package/dist/starter/variants/cloudflare/package.json +23 -0
  26. package/dist/starter/variants/cloudflare/wrangler.jsonc +13 -0
  27. package/dist/templates/atelier/content/collections/projects/_collection.json +13 -0
  28. package/dist/templates/atelier/content/collections/projects/cordillera.mdoc +32 -0
  29. package/dist/templates/atelier/content/collections/projects/field-studies.mdoc +32 -0
  30. package/dist/templates/atelier/content/collections/projects/salt-and-glass.mdoc +32 -0
  31. package/dist/templates/atelier/content/collections/projects/white-city.mdoc +32 -0
  32. package/dist/templates/atelier/content/pages/about.json +180 -0
  33. package/dist/templates/atelier/content/pages/commissions.json +307 -0
  34. package/dist/templates/atelier/content/pages/contact.json +117 -0
  35. package/dist/templates/atelier/content/pages/home.json +524 -0
  36. package/dist/templates/atelier/content/pages/work.json +332 -0
  37. package/dist/templates/atelier/content/site.json +190 -0
  38. package/dist/templates/atelier/content/styles.json +25 -0
  39. package/dist/templates/atelier/media/LICENSES.json +218 -0
  40. package/dist/templates/atelier/openspace.json +21 -0
  41. package/dist/templates/atelier/template.json +115 -0
  42. package/dist/templates/commons/content/collections/gatherings/_collection.json +13 -0
  43. package/dist/templates/commons/content/collections/gatherings/grant-writing-workshop.mdoc +17 -0
  44. package/dist/templates/commons/content/collections/gatherings/seed-swap.mdoc +16 -0
  45. package/dist/templates/commons/content/collections/gatherings/winter-general-assembly.mdoc +17 -0
  46. package/dist/templates/commons/content/pages/about.json +227 -0
  47. package/dist/templates/commons/content/pages/home.json +540 -0
  48. package/dist/templates/commons/content/pages/join.json +304 -0
  49. package/dist/templates/commons/content/pages/members.json +499 -0
  50. package/dist/templates/commons/content/site.json +306 -0
  51. package/dist/templates/commons/content/styles.json +27 -0
  52. package/dist/templates/commons/media/LICENSES.json +108 -0
  53. package/dist/templates/commons/openspace.json +21 -0
  54. package/dist/templates/commons/template.json +113 -0
  55. package/dist/templates/encore/content/collections/sessions/_collection.json +19 -0
  56. package/dist/templates/encore/content/collections/sessions/session-10-headphones-on.mdoc +16 -0
  57. package/dist/templates/encore/content/collections/sessions/session-11-neon-tide.mdoc +16 -0
  58. package/dist/templates/encore/content/collections/sessions/session-12-slow-static.mdoc +16 -0
  59. package/dist/templates/encore/content/collections/tour/_collection.json +13 -0
  60. package/dist/templates/encore/content/collections/tour/brooklyn-elsewhere.mdoc +18 -0
  61. package/dist/templates/encore/content/collections/tour/chicago-thalia-hall.mdoc +18 -0
  62. package/dist/templates/encore/content/collections/tour/london-electric-ballroom.mdoc +18 -0
  63. package/dist/templates/encore/content/collections/tour/minneapolis-first-avenue.mdoc +18 -0
  64. package/dist/templates/encore/content/collections/tour/toronto-danforth.mdoc +18 -0
  65. package/dist/templates/encore/content/pages/about.json +251 -0
  66. package/dist/templates/encore/content/pages/contact.json +122 -0
  67. package/dist/templates/encore/content/pages/home.json +363 -0
  68. package/dist/templates/encore/content/pages/music.json +297 -0
  69. package/dist/templates/encore/content/site.json +293 -0
  70. package/dist/templates/encore/content/styles.json +17 -0
  71. package/dist/templates/encore/media/LICENSES.json +97 -0
  72. package/dist/templates/encore/openspace.json +21 -0
  73. package/dist/templates/encore/template.json +103 -0
  74. package/dist/templates/field-notes/content/collections/essays/_collection.json +31 -0
  75. package/dist/templates/field-notes/content/collections/essays/a-year-of-apples.mdoc +25 -0
  76. package/dist/templates/field-notes/content/collections/essays/learning-a-field.mdoc +32 -0
  77. package/dist/templates/field-notes/content/collections/essays/small-weather.mdoc +25 -0
  78. package/dist/templates/field-notes/content/collections/essays/the-wall-builders.mdoc +29 -0
  79. package/dist/templates/field-notes/content/pages/about.json +236 -0
  80. package/dist/templates/field-notes/content/pages/contact.json +116 -0
  81. package/dist/templates/field-notes/content/pages/home.json +428 -0
  82. package/dist/templates/field-notes/content/pages/subscribe.json +273 -0
  83. package/dist/templates/field-notes/content/site.json +218 -0
  84. package/dist/templates/field-notes/content/styles.json +27 -0
  85. package/dist/templates/field-notes/media/LICENSES.json +119 -0
  86. package/dist/templates/field-notes/openspace.json +21 -0
  87. package/dist/templates/field-notes/template.json +112 -0
  88. package/dist/templates/harbor/content/collections/events/_collection.json +13 -0
  89. package/dist/templates/harbor/content/collections/events/coat-drive-sorting-day.mdoc +17 -0
  90. package/dist/templates/harbor/content/collections/events/safe-at-home-build-day.mdoc +17 -0
  91. package/dist/templates/harbor/content/collections/events/spring-community-supper.mdoc +17 -0
  92. package/dist/templates/harbor/content/collections/events/winter-coat-giveaway.mdoc +16 -0
  93. package/dist/templates/harbor/content/collections/news/2026-08-28-back-to-school-at-homework-harbor.mdoc +17 -0
  94. package/dist/templates/harbor/content/collections/news/2026-09-15-meet-the-repair-crew.mdoc +21 -0
  95. package/dist/templates/harbor/content/collections/news/2026-10-08-the-2025-annual-report.mdoc +25 -0
  96. package/dist/templates/harbor/content/collections/news/_collection.json +34 -0
  97. package/dist/templates/harbor/content/pages/about.json +366 -0
  98. package/dist/templates/harbor/content/pages/contact.json +233 -0
  99. package/dist/templates/harbor/content/pages/get-involved.json +425 -0
  100. package/dist/templates/harbor/content/pages/home.json +524 -0
  101. package/dist/templates/harbor/content/pages/programs.json +611 -0
  102. package/dist/templates/harbor/content/site.json +377 -0
  103. package/dist/templates/harbor/content/styles.json +25 -0
  104. package/dist/templates/harbor/media/LICENSES.json +141 -0
  105. package/dist/templates/harbor/openspace.json +21 -0
  106. package/dist/templates/harbor/template.json +115 -0
  107. package/dist/templates/hearth/content/pages/about.json +246 -0
  108. package/dist/templates/hearth/content/pages/home.json +937 -0
  109. package/dist/templates/hearth/content/pages/menu.json +396 -0
  110. package/dist/templates/hearth/content/pages/private-dining.json +288 -0
  111. package/dist/templates/hearth/content/pages/visit.json +257 -0
  112. package/dist/templates/hearth/content/site.json +214 -0
  113. package/dist/templates/hearth/content/styles.json +25 -0
  114. package/dist/templates/hearth/media/LICENSES.json +196 -0
  115. package/dist/templates/hearth/openspace.json +21 -0
  116. package/dist/templates/hearth/template.json +116 -0
  117. package/dist/templates/kiln/content/collections/classes/_collection.json +13 -0
  118. package/dist/templates/kiln/content/collections/classes/glaze-day-march.mdoc +17 -0
  119. package/dist/templates/kiln/content/collections/classes/hand-building-february.mdoc +17 -0
  120. package/dist/templates/kiln/content/collections/classes/spring-studio-sale.mdoc +15 -0
  121. package/dist/templates/kiln/content/collections/classes/wheel-weekend-january.mdoc +17 -0
  122. package/dist/templates/kiln/content/collections/shop/_collection.json +14 -0
  123. package/dist/templates/kiln/content/collections/shop/ash-bud-vases.mdoc +18 -0
  124. package/dist/templates/kiln/content/collections/shop/harbor-planter.mdoc +18 -0
  125. package/dist/templates/kiln/content/collections/shop/morning-cup-pair.mdoc +24 -0
  126. package/dist/templates/kiln/content/collections/shop/sea-glass-planter.mdoc +18 -0
  127. package/dist/templates/kiln/content/collections/shop/tide-vase.mdoc +23 -0
  128. package/dist/templates/kiln/content/collections/shop/walnut-step-stool.mdoc +18 -0
  129. package/dist/templates/kiln/content/pages/about.json +344 -0
  130. package/dist/templates/kiln/content/pages/contact.json +232 -0
  131. package/dist/templates/kiln/content/pages/home.json +754 -0
  132. package/dist/templates/kiln/content/pages/workshops.json +352 -0
  133. package/dist/templates/kiln/content/site.json +263 -0
  134. package/dist/templates/kiln/content/styles.json +17 -0
  135. package/dist/templates/kiln/media/LICENSES.json +119 -0
  136. package/dist/templates/kiln/openspace.json +21 -0
  137. package/dist/templates/kiln/template.json +103 -0
  138. package/dist/templates/ledger/content/collections/case-studies/_collection.json +14 -0
  139. package/dist/templates/ledger/content/collections/case-studies/fieldwork-coffee.mdoc +29 -0
  140. package/dist/templates/ledger/content/collections/case-studies/larkspur-foods.mdoc +29 -0
  141. package/dist/templates/ledger/content/collections/case-studies/ostrander-clinics.mdoc +29 -0
  142. package/dist/templates/ledger/content/collections/insights/2026-08-10-one-page-of-numbers.mdoc +12 -0
  143. package/dist/templates/ledger/content/collections/insights/2026-09-07-hiring-your-first-coo.mdoc +17 -0
  144. package/dist/templates/ledger/content/collections/insights/2026-10-05-the-decision-log.mdoc +15 -0
  145. package/dist/templates/ledger/content/collections/insights/_collection.json +21 -0
  146. package/dist/templates/ledger/content/pages/about.json +298 -0
  147. package/dist/templates/ledger/content/pages/contact.json +158 -0
  148. package/dist/templates/ledger/content/pages/home.json +621 -0
  149. package/dist/templates/ledger/content/pages/services.json +639 -0
  150. package/dist/templates/ledger/content/site.json +336 -0
  151. package/dist/templates/ledger/content/styles.json +17 -0
  152. package/dist/templates/ledger/media/LICENSES.json +86 -0
  153. package/dist/templates/ledger/openspace.json +21 -0
  154. package/dist/templates/ledger/template.json +102 -0
  155. package/dist/templates/link/content/pages/home.json +278 -0
  156. package/dist/templates/link/content/site.json +168 -0
  157. package/dist/templates/link/content/styles.json +17 -0
  158. package/dist/templates/link/media/LICENSES.json +97 -0
  159. package/dist/templates/link/openspace.json +21 -0
  160. package/dist/templates/link/template.json +87 -0
  161. package/dist/templates/meadow/content/collections/journal/2026-09-02-meet-daniel.mdoc +20 -0
  162. package/dist/templates/meadow/content/collections/journal/2026-09-28-a-practice-for-dark-mornings.mdoc +24 -0
  163. package/dist/templates/meadow/content/collections/journal/2026-10-12-why-twelve-mats.mdoc +26 -0
  164. package/dist/templates/meadow/content/collections/journal/_collection.json +34 -0
  165. package/dist/templates/meadow/content/collections/workshops/_collection.json +13 -0
  166. package/dist/templates/meadow/content/collections/workshops/breath-and-rest-workshop.mdoc +17 -0
  167. package/dist/templates/meadow/content/collections/workshops/foundations-four-weeks.mdoc +17 -0
  168. package/dist/templates/meadow/content/collections/workshops/manzanita-spring-retreat.mdoc +17 -0
  169. package/dist/templates/meadow/content/collections/workshops/winter-solstice-restorative.mdoc +17 -0
  170. package/dist/templates/meadow/content/pages/about.json +344 -0
  171. package/dist/templates/meadow/content/pages/bodywork.json +330 -0
  172. package/dist/templates/meadow/content/pages/classes.json +820 -0
  173. package/dist/templates/meadow/content/pages/contact.json +240 -0
  174. package/dist/templates/meadow/content/pages/home.json +556 -0
  175. package/dist/templates/meadow/content/site.json +290 -0
  176. package/dist/templates/meadow/content/styles.json +25 -0
  177. package/dist/templates/meadow/media/LICENSES.json +130 -0
  178. package/dist/templates/meadow/openspace.json +21 -0
  179. package/dist/templates/meadow/template.json +116 -0
  180. package/dist/templates/signal/content/collections/changelog/2026-09-08-faster-sms.mdoc +11 -0
  181. package/dist/templates/signal/content/collections/changelog/2026-09-22-postmortem-drafts.mdoc +11 -0
  182. package/dist/templates/signal/content/collections/changelog/2026-10-06-quiet-hours.mdoc +13 -0
  183. package/dist/templates/signal/content/collections/changelog/2026-10-20-status-pages-that-update-themselves.mdoc +17 -0
  184. package/dist/templates/signal/content/collections/changelog/_collection.json +39 -0
  185. package/dist/templates/signal/content/pages/about.json +258 -0
  186. package/dist/templates/signal/content/pages/contact.json +122 -0
  187. package/dist/templates/signal/content/pages/home.json +1062 -0
  188. package/dist/templates/signal/content/pages/pricing.json +460 -0
  189. package/dist/templates/signal/content/site.json +345 -0
  190. package/dist/templates/signal/content/styles.json +17 -0
  191. package/dist/templates/signal/media/LICENSES.json +119 -0
  192. package/dist/templates/signal/openspace.json +21 -0
  193. package/dist/templates/signal/template.json +103 -0
  194. package/dist/templates/vow/content/pages/about.json +314 -0
  195. package/dist/templates/vow/content/pages/home.json +400 -0
  196. package/dist/templates/vow/content/pages/registry.json +207 -0
  197. package/dist/templates/vow/content/pages/rsvp.json +145 -0
  198. package/dist/templates/vow/content/pages/schedule.json +281 -0
  199. package/dist/templates/vow/content/pages/travel.json +326 -0
  200. package/dist/templates/vow/content/site.json +200 -0
  201. package/dist/templates/vow/content/styles.json +17 -0
  202. package/dist/templates/vow/media/LICENSES.json +130 -0
  203. package/dist/templates/vow/openspace.json +21 -0
  204. package/dist/templates/vow/template.json +113 -0
  205. package/package.json +71 -3
@@ -0,0 +1,499 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_3cz4x9rxbd",
4
+ "title": "Members",
5
+ "slug": "members",
6
+ "seo": {
7
+ "description": "The directory of Hudson Valley Food Commons members: farms, kitchens, food banks and grocers across nine counties."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_9fv9jgawj4",
12
+ "preset": "hero/centered@1",
13
+ "label": "Centered statement",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 12
19
+ ]
20
+ }
21
+ },
22
+ "style": {
23
+ "colorTheme": "light-accent",
24
+ "padding": {
25
+ "d": "2xl",
26
+ "m": "xl"
27
+ }
28
+ },
29
+ "blocks": [
30
+ {
31
+ "id": "blk_8fqtg32mrn",
32
+ "type": "heading",
33
+ "v": 1,
34
+ "fields": {
35
+ "text": "Our members",
36
+ "level": "h1",
37
+ "size": "display",
38
+ "eyebrow": "Directory",
39
+ "subheading": "Forty-two organizations who own the commons together. Buy from them, volunteer with them, or ask them what membership has changed."
40
+ },
41
+ "variant": "plain",
42
+ "style": {
43
+ "align": {
44
+ "d": "center"
45
+ }
46
+ }
47
+ },
48
+ {
49
+ "id": "blk_ntbc2a2cad",
50
+ "type": "button",
51
+ "v": 1,
52
+ "fields": {
53
+ "label": "Become a member",
54
+ "link": {
55
+ "type": "page",
56
+ "page": "pg_767k25afbn"
57
+ },
58
+ "role": "primary",
59
+ "secondaryLabel": "How we govern",
60
+ "secondaryLink": {
61
+ "type": "page",
62
+ "page": "pg_n3zn43m479"
63
+ }
64
+ },
65
+ "variant": "default",
66
+ "style": {
67
+ "align": {
68
+ "d": "center"
69
+ }
70
+ }
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "id": "sec_3xfz2fq0he",
76
+ "preset": "faq/by-topic@1",
77
+ "label": "Member directory",
78
+ "layout": {
79
+ "mode": "stack",
80
+ "columns": {
81
+ "d": [
82
+ 12
83
+ ]
84
+ },
85
+ "width": "content"
86
+ },
87
+ "style": {
88
+ "colorTheme": "light"
89
+ },
90
+ "blocks": [
91
+ {
92
+ "id": "blk_8tvgp72nnp",
93
+ "type": "heading",
94
+ "v": 1,
95
+ "fields": {
96
+ "level": "h2",
97
+ "size": "auto",
98
+ "text": "Member directory",
99
+ "eyebrow": "By type",
100
+ "subheading": "A selection from the full directory, which members can download as a spreadsheet."
101
+ },
102
+ "variant": "plain"
103
+ },
104
+ {
105
+ "id": "blk_bxvs6kppnc",
106
+ "type": "tabs",
107
+ "v": 1,
108
+ "fields": {
109
+ "label": "Member types",
110
+ "items": [
111
+ {
112
+ "label": "Farms",
113
+ "content": {
114
+ "type": "doc",
115
+ "content": [
116
+ {
117
+ "type": "paragraph",
118
+ "content": [
119
+ {
120
+ "type": "text",
121
+ "text": "Rondout Valley Growers",
122
+ "marks": [
123
+ {
124
+ "type": "bold"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "type": "text",
130
+ "text": " · Accord. Twelve acres of vegetables and a winter CSA."
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "type": "paragraph",
136
+ "content": [
137
+ {
138
+ "type": "text",
139
+ "text": "Esopus Creek Farm",
140
+ "marks": [
141
+ {
142
+ "type": "bold"
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "type": "text",
148
+ "text": " · Saugerties. Pastured eggs and poultry; runs the egg-washing line in the hub."
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "type": "paragraph",
154
+ "content": [
155
+ {
156
+ "type": "text",
157
+ "text": "Wallkill Orchards",
158
+ "marks": [
159
+ {
160
+ "type": "bold"
161
+ }
162
+ ]
163
+ },
164
+ {
165
+ "type": "text",
166
+ "text": " · New Paltz. Heirloom apples, pears and fresh cider."
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "type": "paragraph",
172
+ "content": [
173
+ {
174
+ "type": "text",
175
+ "text": "Shawangunk Dairy",
176
+ "marks": [
177
+ {
178
+ "type": "bold"
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "type": "text",
184
+ "text": " · Gardiner. Grass-fed milk, yogurt and a cheese cave."
185
+ }
186
+ ]
187
+ }
188
+ ]
189
+ }
190
+ },
191
+ {
192
+ "label": "Kitchens",
193
+ "content": {
194
+ "type": "doc",
195
+ "content": [
196
+ {
197
+ "type": "paragraph",
198
+ "content": [
199
+ {
200
+ "type": "text",
201
+ "text": "Kingston Community Kitchen",
202
+ "marks": [
203
+ {
204
+ "type": "bold"
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ "type": "text",
210
+ "text": " · Kingston. Shared commercial kitchen and incubator for 30 food businesses."
211
+ }
212
+ ]
213
+ },
214
+ {
215
+ "type": "paragraph",
216
+ "content": [
217
+ {
218
+ "type": "text",
219
+ "text": "Catskill Grain Co.",
220
+ "marks": [
221
+ {
222
+ "type": "bold"
223
+ }
224
+ ]
225
+ },
226
+ {
227
+ "type": "text",
228
+ "text": " · Catskill. Stone-milled flour from member grain."
229
+ }
230
+ ]
231
+ },
232
+ {
233
+ "type": "paragraph",
234
+ "content": [
235
+ {
236
+ "type": "text",
237
+ "text": "Hearth & Harvest Catering",
238
+ "marks": [
239
+ {
240
+ "type": "bold"
241
+ }
242
+ ]
243
+ },
244
+ {
245
+ "type": "text",
246
+ "text": " · Hudson. Cooks surplus into 600 school lunches a week."
247
+ }
248
+ ]
249
+ }
250
+ ]
251
+ }
252
+ },
253
+ {
254
+ "label": "Food access",
255
+ "content": {
256
+ "type": "doc",
257
+ "content": [
258
+ {
259
+ "type": "paragraph",
260
+ "content": [
261
+ {
262
+ "type": "text",
263
+ "text": "Newburgh Food Pantry",
264
+ "marks": [
265
+ {
266
+ "type": "bold"
267
+ }
268
+ ]
269
+ },
270
+ {
271
+ "type": "text",
272
+ "text": " · Newburgh. Serves 400 families weekly; first stop for surplus produce."
273
+ }
274
+ ]
275
+ },
276
+ {
277
+ "type": "paragraph",
278
+ "content": [
279
+ {
280
+ "type": "text",
281
+ "text": "Beacon Free Fridge",
282
+ "marks": [
283
+ {
284
+ "type": "bold"
285
+ }
286
+ ]
287
+ },
288
+ {
289
+ "type": "text",
290
+ "text": " · Beacon. Six community fridges restocked daily by volunteers."
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ "type": "paragraph",
296
+ "content": [
297
+ {
298
+ "type": "text",
299
+ "text": "Ulster Senior Meals",
300
+ "marks": [
301
+ {
302
+ "type": "bold"
303
+ }
304
+ ]
305
+ },
306
+ {
307
+ "type": "text",
308
+ "text": " · Kingston. Delivers 900 meals a week to homebound neighbors."
309
+ }
310
+ ]
311
+ }
312
+ ]
313
+ }
314
+ },
315
+ {
316
+ "label": "Grocers",
317
+ "content": {
318
+ "type": "doc",
319
+ "content": [
320
+ {
321
+ "type": "paragraph",
322
+ "content": [
323
+ {
324
+ "type": "text",
325
+ "text": "Main Street Market",
326
+ "marks": [
327
+ {
328
+ "type": "bold"
329
+ }
330
+ ]
331
+ },
332
+ {
333
+ "type": "text",
334
+ "text": " · Rosendale. A worker-owned grocery stocking 60 member products."
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "type": "paragraph",
340
+ "content": [
341
+ {
342
+ "type": "text",
343
+ "text": "Hudson Co-op Grocery",
344
+ "marks": [
345
+ {
346
+ "type": "bold"
347
+ }
348
+ ]
349
+ },
350
+ {
351
+ "type": "text",
352
+ "text": " · Hudson. Member-owned since 1974; hosts the Saturday market."
353
+ }
354
+ ]
355
+ }
356
+ ]
357
+ }
358
+ }
359
+ ]
360
+ },
361
+ "variant": "underline"
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ "id": "sec_varwwm30e7",
367
+ "preset": "testimonials/pair@1",
368
+ "label": "Two testimonials",
369
+ "layout": {
370
+ "mode": "grid",
371
+ "rows": {
372
+ "d": 17,
373
+ "m": 29
374
+ },
375
+ "items": {
376
+ "blk_nabq8p08ve": {
377
+ "d": {
378
+ "x": 1,
379
+ "y": 1,
380
+ "w": 12,
381
+ "h": 5
382
+ },
383
+ "m": {
384
+ "x": 1,
385
+ "y": 1,
386
+ "w": 8,
387
+ "h": 5
388
+ }
389
+ },
390
+ "blk_msdyt2jns6": {
391
+ "d": {
392
+ "x": 1,
393
+ "y": 7,
394
+ "w": 11,
395
+ "h": 11
396
+ },
397
+ "m": {
398
+ "x": 1,
399
+ "y": 7,
400
+ "w": 8,
401
+ "h": 11
402
+ }
403
+ },
404
+ "blk_06hjqsg74j": {
405
+ "d": {
406
+ "x": 14,
407
+ "y": 7,
408
+ "w": 11,
409
+ "h": 11
410
+ },
411
+ "m": {
412
+ "x": 1,
413
+ "y": 19,
414
+ "w": 8,
415
+ "h": 11
416
+ }
417
+ }
418
+ }
419
+ },
420
+ "style": {
421
+ "colorTheme": "light-accent"
422
+ },
423
+ "blocks": [
424
+ {
425
+ "id": "blk_nabq8p08ve",
426
+ "type": "heading",
427
+ "v": 1,
428
+ "fields": {
429
+ "text": "What membership changed",
430
+ "level": "h2",
431
+ "size": "auto",
432
+ "eyebrow": "In their words"
433
+ },
434
+ "variant": "plain"
435
+ },
436
+ {
437
+ "id": "blk_msdyt2jns6",
438
+ "type": "testimonial",
439
+ "v": 1,
440
+ "fields": {
441
+ "quote": {
442
+ "type": "doc",
443
+ "content": [
444
+ {
445
+ "type": "paragraph",
446
+ "content": [
447
+ {
448
+ "type": "text",
449
+ "text": "The shared cooler let us sell to schools for the first time. That contract kept the farm open through a terrible August."
450
+ }
451
+ ]
452
+ }
453
+ ]
454
+ },
455
+ "name": "Lena Morales",
456
+ "role": "Rondout Valley Growers",
457
+ "photo": {
458
+ "src": "https://images.unsplash.com/photo-1580489944761-15a19d654956?w=320&q=80",
459
+ "alt": "Portrait of Lena Morales",
460
+ "width": 320,
461
+ "height": 403
462
+ }
463
+ },
464
+ "variant": "minimal"
465
+ },
466
+ {
467
+ "id": "blk_06hjqsg74j",
468
+ "type": "testimonial",
469
+ "v": 1,
470
+ "fields": {
471
+ "quote": {
472
+ "type": "doc",
473
+ "content": [
474
+ {
475
+ "type": "paragraph",
476
+ "content": [
477
+ {
478
+ "type": "text",
479
+ "text": "We used to throw out produce on Mondays. Now it reaches the pantry by Tuesday morning, still cold."
480
+ }
481
+ ]
482
+ }
483
+ ]
484
+ },
485
+ "name": "Andre Wallace",
486
+ "role": "Newburgh Food Pantry",
487
+ "photo": {
488
+ "src": "https://images.unsplash.com/photo-1560250097-0b93528c311a?w=320&q=80",
489
+ "alt": "Portrait of Andre Wallace",
490
+ "width": 320,
491
+ "height": 480
492
+ }
493
+ },
494
+ "variant": "minimal"
495
+ }
496
+ ]
497
+ }
498
+ ]
499
+ }