@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,290 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/site.json",
3
+ "title": "Fernwood Yoga & Bodywork",
4
+ "tagline": "Slow yoga and bodywork for real bodies.",
5
+ "nav": [
6
+ {
7
+ "type": "page",
8
+ "page": "pg_f7jcnz65me",
9
+ "label": "Classes"
10
+ },
11
+ {
12
+ "type": "page",
13
+ "page": "pg_xmmxstbmvf",
14
+ "label": "Bodywork"
15
+ },
16
+ {
17
+ "type": "collection",
18
+ "collection": "workshops",
19
+ "label": "Workshops"
20
+ },
21
+ {
22
+ "type": "collection",
23
+ "collection": "journal",
24
+ "label": "Journal"
25
+ },
26
+ {
27
+ "type": "page",
28
+ "page": "pg_sat2c09jw4",
29
+ "label": "About"
30
+ },
31
+ {
32
+ "type": "page",
33
+ "page": "pg_av2p7shq0g",
34
+ "label": "Contact"
35
+ },
36
+ {
37
+ "type": "button",
38
+ "label": "Book a class",
39
+ "link": {
40
+ "type": "url",
41
+ "url": "https://cal.com/fernwood-yoga"
42
+ },
43
+ "style": "primary"
44
+ }
45
+ ],
46
+ "header": {
47
+ "variant": "classic-left",
48
+ "sticky": true,
49
+ "transparentOnHero": false,
50
+ "mobileMenu": "slide",
51
+ "colorTheme": "light"
52
+ },
53
+ "footer": {
54
+ "id": "sec_bvnzd7252z",
55
+ "preset": "footer/newsletter@1",
56
+ "label": "Footer with newsletter",
57
+ "layout": {
58
+ "mode": "stack",
59
+ "columns": {
60
+ "d": [
61
+ 6,
62
+ 3,
63
+ 3
64
+ ],
65
+ "m": [
66
+ 12
67
+ ]
68
+ },
69
+ "gap": "xl"
70
+ },
71
+ "style": {
72
+ "colorTheme": "dark-accent",
73
+ "padding": {
74
+ "d": "xl",
75
+ "m": "lg"
76
+ }
77
+ },
78
+ "blocks": [
79
+ {
80
+ "id": "blk_skztgd3xta",
81
+ "type": "newsletter",
82
+ "v": 1,
83
+ "fields": {
84
+ "heading": "Letters from the studio",
85
+ "description": "One short email a month: new classes, workshops and the occasional recipe for the tea.",
86
+ "askName": false,
87
+ "placeholder": "you@example.com",
88
+ "buttonLabel": "Subscribe",
89
+ "successMessage": "Thank you — check your inbox to confirm."
90
+ },
91
+ "column": 0,
92
+ "variant": "stacked"
93
+ },
94
+ {
95
+ "id": "blk_dspzjcncdw",
96
+ "type": "text",
97
+ "v": 1,
98
+ "fields": {
99
+ "content": {
100
+ "type": "doc",
101
+ "content": [
102
+ {
103
+ "type": "paragraph",
104
+ "attrs": {
105
+ "preset": "eyebrow"
106
+ },
107
+ "content": [
108
+ {
109
+ "type": "text",
110
+ "text": "Practice"
111
+ }
112
+ ]
113
+ },
114
+ {
115
+ "type": "paragraph",
116
+ "content": [
117
+ {
118
+ "type": "text",
119
+ "text": "Class schedule",
120
+ "marks": [
121
+ {
122
+ "type": "link",
123
+ "attrs": {
124
+ "href": "/classes/"
125
+ }
126
+ }
127
+ ]
128
+ }
129
+ ]
130
+ },
131
+ {
132
+ "type": "paragraph",
133
+ "content": [
134
+ {
135
+ "type": "text",
136
+ "text": "Bodywork",
137
+ "marks": [
138
+ {
139
+ "type": "link",
140
+ "attrs": {
141
+ "href": "/bodywork/"
142
+ }
143
+ }
144
+ ]
145
+ }
146
+ ]
147
+ },
148
+ {
149
+ "type": "paragraph",
150
+ "content": [
151
+ {
152
+ "type": "text",
153
+ "text": "Workshops",
154
+ "marks": [
155
+ {
156
+ "type": "link",
157
+ "attrs": {
158
+ "href": "/workshops/"
159
+ }
160
+ }
161
+ ]
162
+ }
163
+ ]
164
+ },
165
+ {
166
+ "type": "paragraph",
167
+ "content": [
168
+ {
169
+ "type": "text",
170
+ "text": "Journal",
171
+ "marks": [
172
+ {
173
+ "type": "link",
174
+ "attrs": {
175
+ "href": "/journal/"
176
+ }
177
+ }
178
+ ]
179
+ }
180
+ ]
181
+ }
182
+ ]
183
+ }
184
+ },
185
+ "column": 1,
186
+ "variant": "default"
187
+ },
188
+ {
189
+ "id": "blk_63xrte7q4d",
190
+ "type": "text",
191
+ "v": 1,
192
+ "fields": {
193
+ "content": {
194
+ "type": "doc",
195
+ "content": [
196
+ {
197
+ "type": "paragraph",
198
+ "attrs": {
199
+ "preset": "eyebrow"
200
+ },
201
+ "content": [
202
+ {
203
+ "type": "text",
204
+ "text": "Visit"
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ "type": "paragraph",
210
+ "content": [
211
+ {
212
+ "type": "text",
213
+ "text": "2418 SE Division Street, Portland"
214
+ }
215
+ ]
216
+ },
217
+ {
218
+ "type": "paragraph",
219
+ "content": [
220
+ {
221
+ "type": "text",
222
+ "text": "hello@fernwoodyoga.example",
223
+ "marks": [
224
+ {
225
+ "type": "link",
226
+ "attrs": {
227
+ "href": "mailto:hello@fernwoodyoga.example"
228
+ }
229
+ }
230
+ ]
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "type": "paragraph",
236
+ "attrs": {
237
+ "preset": "small"
238
+ },
239
+ "content": [
240
+ {
241
+ "type": "text",
242
+ "text": "© 2026 Fernwood Yoga & Bodywork"
243
+ }
244
+ ]
245
+ }
246
+ ]
247
+ }
248
+ },
249
+ "column": 2,
250
+ "variant": "default"
251
+ },
252
+ {
253
+ "id": "blk_37zmz1gf1c",
254
+ "type": "social-links",
255
+ "v": 1,
256
+ "fields": {
257
+ "source": "site",
258
+ "profiles": []
259
+ },
260
+ "column": 2,
261
+ "variant": "icons"
262
+ }
263
+ ]
264
+ },
265
+ "social": [
266
+ {
267
+ "network": "instagram",
268
+ "url": "https://instagram.com/fernwoodyoga.example"
269
+ },
270
+ {
271
+ "network": "youtube",
272
+ "url": "https://youtube.com/@fernwoodyoga.example"
273
+ },
274
+ {
275
+ "network": "email",
276
+ "url": "mailto:hello@fernwoodyoga.example"
277
+ }
278
+ ],
279
+ "seo": {
280
+ "titleTemplate": "%s · Fernwood Yoga",
281
+ "description": "Sage on oat paper with clay-coloured buttons and links, Fraunces headings and arched photographs.",
282
+ "image": "https://images.unsplash.com/photo-1506126613408-eca07ce68773?w=1200&q=80"
283
+ },
284
+ "locale": "en-US",
285
+ "integrations": {
286
+ "analytics": true,
287
+ "bookingUrl": "https://cal.com/fernwood-yoga",
288
+ "stripeConnected": false
289
+ }
290
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/styles.json",
3
+ "choices": {
4
+ "palette": {
5
+ "brand": "oklch(0.62 0.07 145)",
6
+ "neutral": "warm",
7
+ "contrast": "standard",
8
+ "source": "curated"
9
+ },
10
+ "pairing": "fraunces-hanken",
11
+ "density": "airy",
12
+ "shape": "soft",
13
+ "buttons": "pill-solid",
14
+ "motion": "subtle",
15
+ "imageTreatment": "grain"
16
+ },
17
+ "overrides": {
18
+ "color": {
19
+ "accent": {
20
+ "$value": "oklch(0.55 0.12 40)",
21
+ "$type": "color"
22
+ }
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "$comment": "Licenses for the demo media in the Meadow 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-1494790108377-be9c29b29330",
11
+ "title": "Portrait of a woman in a red sweater, laughing",
12
+ "author": "Michael Dam",
13
+ "authorUrl": "https://unsplash.com/@michaeldam",
14
+ "source": "Unsplash",
15
+ "sourceUrl": "https://unsplash.com/photos/closeup-photography-of-woman-smiling-mEZ3PoFGs_k",
16
+ "license": "Unsplash License",
17
+ "licenseUrl": "https://unsplash.com/license"
18
+ },
19
+ {
20
+ "kind": "image",
21
+ "src": "https://images.unsplash.com/photo-1500648767791-00dcc994a43e",
22
+ "title": "Portrait of a man in a grey sweater, smiling softly",
23
+ "author": "Jurica Koletić",
24
+ "authorUrl": "https://unsplash.com/@juricakoletic",
25
+ "source": "Unsplash",
26
+ "sourceUrl": "https://unsplash.com/photos/man-wearing-henley-top-portrait-7YVZYZeITc8",
27
+ "license": "Unsplash License",
28
+ "licenseUrl": "https://unsplash.com/license"
29
+ },
30
+ {
31
+ "kind": "image",
32
+ "src": "https://images.unsplash.com/photo-1506126613408-eca07ce68773",
33
+ "title": "A woman meditating cross-legged on a wooden deck at sunrise",
34
+ "author": "Jared Rice",
35
+ "authorUrl": "https://unsplash.com/@jareddrice",
36
+ "source": "Unsplash",
37
+ "sourceUrl": "https://unsplash.com/photos/woman-doing-yoga-meditation-on-brown-parquet-flooring-NTyBbu66_SI",
38
+ "license": "Unsplash License",
39
+ "licenseUrl": "https://unsplash.com/license"
40
+ },
41
+ {
42
+ "kind": "image",
43
+ "src": "https://images.unsplash.com/photo-1509042239860-f550ce710b93",
44
+ "title": "Two cappuccinos with latte art beside potted herbs",
45
+ "author": "Nathan Dumlao",
46
+ "authorUrl": "https://unsplash.com/@nate_dumlao",
47
+ "source": "Unsplash",
48
+ "sourceUrl": "https://unsplash.com/photos/shallow-focus-photography-of-coffee-late-in-mug-on-table-zUNs99PGDg0",
49
+ "license": "Unsplash License",
50
+ "licenseUrl": "https://unsplash.com/license"
51
+ },
52
+ {
53
+ "kind": "image",
54
+ "src": "https://images.unsplash.com/photo-1534528741775-53994a69daeb",
55
+ "title": "Portrait of a woman in a black top against a soft violet wall",
56
+ "author": "Aiony Haust",
57
+ "authorUrl": "https://unsplash.com/@aiony",
58
+ "source": "Unsplash",
59
+ "sourceUrl": "https://unsplash.com/photos/woman-wearing-black-crew-neck-shirt-3TLl_97HNJo",
60
+ "license": "Unsplash License",
61
+ "licenseUrl": "https://unsplash.com/license"
62
+ },
63
+ {
64
+ "kind": "image",
65
+ "src": "https://images.unsplash.com/photo-1539571696357-5a69c17a67c6",
66
+ "title": "Portrait of a young man in a black hat, smiling",
67
+ "author": "ian dooley",
68
+ "authorUrl": "https://unsplash.com/@sadswim",
69
+ "source": "Unsplash",
70
+ "sourceUrl": "https://unsplash.com/photos/man-standing-near-white-wall-d1UPkiFd04A",
71
+ "license": "Unsplash License",
72
+ "licenseUrl": "https://unsplash.com/license"
73
+ },
74
+ {
75
+ "kind": "image",
76
+ "src": "https://images.unsplash.com/photo-1544005313-94ddf0286df2",
77
+ "title": "Portrait of a woman with long brown hair in a striped shirt",
78
+ "author": "Štefan Štefančík",
79
+ "authorUrl": "https://unsplash.com/@cikstefan",
80
+ "source": "Unsplash",
81
+ "sourceUrl": "https://unsplash.com/photos/smiling-woman-wearing-white-and-black-pinstriped-collared-top-QXevDflbl8A",
82
+ "license": "Unsplash License",
83
+ "licenseUrl": "https://unsplash.com/license"
84
+ },
85
+ {
86
+ "kind": "image",
87
+ "src": "https://images.unsplash.com/photo-1544161515-4ab6ce6db874",
88
+ "title": "A therapist pouring warm oil before a back massage",
89
+ "author": "alan caishan",
90
+ "authorUrl": "https://unsplash.com/@caishan119",
91
+ "source": "Unsplash",
92
+ "sourceUrl": "https://unsplash.com/photos/woman-lying-with-prone-position-cU53ZFBr3lk",
93
+ "license": "Unsplash License",
94
+ "licenseUrl": "https://unsplash.com/license"
95
+ },
96
+ {
97
+ "kind": "image",
98
+ "src": "https://images.unsplash.com/photo-1544367567-0f2fcb009e0b",
99
+ "title": "A person holding a low lunge on the beach at dusk, arms raised",
100
+ "author": "kike vega",
101
+ "authorUrl": "https://unsplash.com/@kikekiks",
102
+ "source": "Unsplash",
103
+ "sourceUrl": "https://unsplash.com/photos/silhouette-photography-of-woman-doing-yoga-F2qh3yjz6Jk",
104
+ "license": "Unsplash License",
105
+ "licenseUrl": "https://unsplash.com/license"
106
+ },
107
+ {
108
+ "kind": "image",
109
+ "src": "https://images.unsplash.com/photo-1545205597-3d9d02c29597",
110
+ "title": "A small group practising tree pose together on a misty beach",
111
+ "author": "Kaylee Garrett",
112
+ "authorUrl": "https://unsplash.com/@realkayls",
113
+ "source": "Unsplash",
114
+ "sourceUrl": "https://unsplash.com/photos/five-woman-standing-on-seashore-GaprWyIw66o",
115
+ "license": "Unsplash License",
116
+ "licenseUrl": "https://unsplash.com/license"
117
+ },
118
+ {
119
+ "kind": "image",
120
+ "src": "https://images.unsplash.com/photo-1767605523281-8b54b3692078",
121
+ "title": "Rolled yoga mats in a woven basket beside a plant",
122
+ "author": "Margaret Young",
123
+ "authorUrl": "https://unsplash.com/@wildsoulmagsyogi",
124
+ "source": "Unsplash",
125
+ "sourceUrl": "https://unsplash.com/photos/rolled-yoga-mats-in-a-decorative-basket-with-plants-OuMxVZS72N0",
126
+ "license": "Unsplash License",
127
+ "licenseUrl": "https://unsplash.com/license"
128
+ }
129
+ ]
130
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/site-config.json",
3
+ "siteId": "st_90esgmvv33",
4
+ "schemaVersion": 1,
5
+ "template": {
6
+ "id": "meadow",
7
+ "version": "1.0.0"
8
+ },
9
+ "hub": "https://hub.openspace.dev",
10
+ "deploy": {
11
+ "target": "github-pages",
12
+ "url": "https://example.github.io/meadow",
13
+ "customDomain": null
14
+ },
15
+ "features": {
16
+ "forms": true,
17
+ "newsletter": true,
18
+ "analytics": true,
19
+ "search": false
20
+ }
21
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/template.json",
3
+ "id": "meadow",
4
+ "name": "Meadow",
5
+ "description": "A calm, airy site for yoga studios, therapists and bodyworkers, with a weekly class schedule, treatments and online booking.",
6
+ "persona": "Yoga, therapy, bodywork, wellness",
7
+ "mood": "Calm, airy, organic",
8
+ "version": "1.0.0",
9
+ "tags": [
10
+ "wellness",
11
+ "yoga",
12
+ "massage",
13
+ "schedule",
14
+ "booking",
15
+ "classes"
16
+ ],
17
+ "sample": {
18
+ "name": "Fernwood Yoga & Bodywork",
19
+ "tagline": "Slow yoga and bodywork for real bodies."
20
+ },
21
+ "thumbnailPage": "pg_13fyssvz8c",
22
+ "looks": [
23
+ {
24
+ "id": "oat-sage",
25
+ "name": "Oat & Sage",
26
+ "description": "Sage on oat paper with a clay accent, Fraunces headings and arched photographs.",
27
+ "choices": {
28
+ "palette": {
29
+ "brand": "oklch(0.62 0.07 145)",
30
+ "neutral": "warm",
31
+ "contrast": "standard",
32
+ "source": "curated"
33
+ },
34
+ "pairing": "fraunces-hanken",
35
+ "density": "airy",
36
+ "shape": "soft",
37
+ "buttons": "pill-solid",
38
+ "motion": "subtle",
39
+ "imageTreatment": "grain"
40
+ },
41
+ "overrides": {
42
+ "color": {
43
+ "accent": {
44
+ "$value": "oklch(0.55 0.12 40)",
45
+ "$type": "color"
46
+ }
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "id": "clay-linen",
52
+ "name": "Clay & Linen",
53
+ "description": "Sun-baked terracotta with DM Serif headings, rounded corners and outlined buttons.",
54
+ "choices": {
55
+ "palette": {
56
+ "brand": "oklch(0.6 0.11 45)",
57
+ "neutral": "warm",
58
+ "contrast": "standard",
59
+ "source": "curated"
60
+ },
61
+ "pairing": "dm-serif-dm-sans",
62
+ "density": "comfortable",
63
+ "shape": "round",
64
+ "buttons": "pill-outline",
65
+ "motion": "subtle",
66
+ "imageTreatment": "rounded"
67
+ }
68
+ },
69
+ {
70
+ "id": "dusk",
71
+ "name": "Dusk",
72
+ "description": "Soft lavender and cool greys with Libre Caslon, for an evening, restorative feel.",
73
+ "choices": {
74
+ "palette": {
75
+ "brand": "oklch(0.7 0.1 300)",
76
+ "neutral": "cool",
77
+ "contrast": "standard",
78
+ "source": "curated"
79
+ },
80
+ "pairing": "libre-caslon-nunito-sans",
81
+ "density": "airy",
82
+ "shape": "soft",
83
+ "buttons": "solid",
84
+ "motion": "subtle",
85
+ "imageTreatment": "arch"
86
+ }
87
+ }
88
+ ],
89
+ "pages": [
90
+ {
91
+ "id": "pg_13fyssvz8c",
92
+ "title": "Home",
93
+ "slug": ""
94
+ },
95
+ {
96
+ "id": "pg_f7jcnz65me",
97
+ "title": "Classes",
98
+ "slug": "classes"
99
+ },
100
+ {
101
+ "id": "pg_xmmxstbmvf",
102
+ "title": "Bodywork",
103
+ "slug": "bodywork"
104
+ },
105
+ {
106
+ "id": "pg_sat2c09jw4",
107
+ "title": "About",
108
+ "slug": "about"
109
+ },
110
+ {
111
+ "id": "pg_av2p7shq0g",
112
+ "title": "Contact",
113
+ "slug": "contact"
114
+ }
115
+ ]
116
+ }
@@ -0,0 +1,11 @@
1
+ ---
2
+ status: published
3
+ title: Faster SMS delivery in Europe
4
+ date: 2026-09-08
5
+ author: Sam Ortega
6
+ categories:
7
+ - fixed
8
+ excerpt: Median SMS delivery in the EU dropped from 9 seconds to 3.
9
+ ---
10
+
11
+ We added a second SMS provider in Frankfurt and now race both. Median delivery time across the EU dropped from 9 seconds to 3.
@@ -0,0 +1,11 @@
1
+ ---
2
+ status: published
3
+ title: Postmortem drafts, now with action items
4
+ date: 2026-09-22
5
+ author: Daniel Okafor
6
+ categories:
7
+ - improved
8
+ excerpt: Drafts now suggest follow-up tasks and send them to Linear or Jira.
9
+ ---
10
+
11
+ The postmortem draft now ends with suggested action items based on the incident timeline and chat. Accept them with one click to create tickets in Linear or Jira, linked back to the incident.
@@ -0,0 +1,13 @@
1
+ ---
2
+ status: published
3
+ title: Quiet hours for low-severity alerts
4
+ date: 2026-10-06
5
+ author: Sam Ortega
6
+ categories:
7
+ - improved
8
+ excerpt: Low-severity alerts now wait until morning unless they escalate.
9
+ ---
10
+
11
+ Not every alert deserves a 3am phone call. Set quiet hours per schedule, and alerts below the severity you choose are held until the start of the next working day.
12
+
13
+ If a held alert escalates, or fires more than five times, Tidewire pages immediately as usual.
@@ -0,0 +1,17 @@
1
+ ---
2
+ status: published
3
+ title: Status pages that update themselves
4
+ date: 2026-10-20
5
+ author: Clara Weiss
6
+ categories:
7
+ - new
8
+ excerpt: Declare an incident in Slack and your public status page updates within seconds.
9
+ ---
10
+
11
+ Status pages now follow your incidents automatically.
12
+
13
+ - **Linked components.** Map services to status page components once; Tidewire updates them when an incident starts and resolves.
14
+ - **Drafted updates.** Tidewire suggests customer-facing wording from the incident timeline. Edit it, or publish as is.
15
+ - **Custom domains** on every plan, with HTTPS handled for you.
16
+
17
+ Turn it on under *Settings → Status page*.
@@ -0,0 +1,39 @@
1
+ {
2
+ "kind": "blog",
3
+ "label": "Changelog",
4
+ "itemLabel": "Release",
5
+ "slugPattern": "{date}-{title}",
6
+ "list": {
7
+ "layout": "list",
8
+ "pageSize": 20,
9
+ "sort": "date-desc"
10
+ },
11
+ "itemPage": {
12
+ "layout": "article",
13
+ "showDate": true,
14
+ "showAuthor": true,
15
+ "showRelated": false
16
+ },
17
+ "taxonomies": {
18
+ "categories": [
19
+ {
20
+ "slug": "new",
21
+ "label": "New"
22
+ },
23
+ {
24
+ "slug": "improved",
25
+ "label": "Improved"
26
+ },
27
+ {
28
+ "slug": "fixed",
29
+ "label": "Fixed"
30
+ }
31
+ ],
32
+ "tags": false
33
+ },
34
+ "feed": {
35
+ "enabled": true,
36
+ "title": "Tidewire changelog",
37
+ "description": "What's new in Tidewire."
38
+ }
39
+ }