@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,278 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_m8n27v4m94",
4
+ "title": "Home",
5
+ "slug": "",
6
+ "seo": {
7
+ "description": "Kai Moreno writes fast, cheerful weeknight recipes. Get the cookbook, the Sunday newsletter, cooking classes in Austin and new videos."
8
+ },
9
+ "header": {
10
+ "hidden": true
11
+ },
12
+ "sections": [
13
+ {
14
+ "id": "sec_79n8cdy1fs",
15
+ "label": "Links",
16
+ "layout": {
17
+ "mode": "stack",
18
+ "columns": {
19
+ "d": [
20
+ 12
21
+ ]
22
+ },
23
+ "width": "narrow"
24
+ },
25
+ "style": {
26
+ "colorTheme": "brand",
27
+ "padding": {
28
+ "d": "xl",
29
+ "m": "lg"
30
+ }
31
+ },
32
+ "blocks": [
33
+ {
34
+ "id": "blk_f96m134hb7",
35
+ "type": "heading",
36
+ "v": 1,
37
+ "fields": {
38
+ "level": "h1",
39
+ "size": "h2",
40
+ "text": "Kai Moreno",
41
+ "eyebrow": "Home cook · Austin, Texas"
42
+ },
43
+ "variant": "plain",
44
+ "style": {
45
+ "align": {
46
+ "d": "center"
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "id": "blk_e69s5tj0ps",
52
+ "type": "link-list",
53
+ "v": 1,
54
+ "fields": {
55
+ "showSocial": true,
56
+ "photo": {
57
+ "src": "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=480&q=80",
58
+ "alt": "Kai Moreno smiling in a white t-shirt",
59
+ "width": 480,
60
+ "height": 720
61
+ },
62
+ "bio": "Weeknight recipes with big flavour and few dishes. Cookbook out now; new videos every Thursday from my tiny Austin kitchen.",
63
+ "links": [
64
+ {
65
+ "label": "New video: 20-minute pantry pasta",
66
+ "link": {
67
+ "type": "url",
68
+ "url": "https://youtube.com/@kaimoreno.example",
69
+ "newTab": true
70
+ },
71
+ "icon": "camera",
72
+ "highlight": true
73
+ },
74
+ {
75
+ "label": "Get the cookbook: Small Kitchen, Big Flavour",
76
+ "link": {
77
+ "type": "url",
78
+ "url": "https://kaimoreno.example/book",
79
+ "newTab": true
80
+ },
81
+ "icon": "book-open",
82
+ "highlight": false
83
+ },
84
+ {
85
+ "label": "Cooking classes in Austin",
86
+ "link": {
87
+ "type": "url",
88
+ "url": "https://kaimoreno.example/classes",
89
+ "newTab": true
90
+ },
91
+ "icon": "utensils",
92
+ "highlight": false
93
+ },
94
+ {
95
+ "label": "The Sunday supper newsletter",
96
+ "link": {
97
+ "type": "page",
98
+ "page": "pg_m8n27v4m94",
99
+ "anchor": "newsletter"
100
+ },
101
+ "icon": "mail",
102
+ "highlight": false
103
+ },
104
+ {
105
+ "label": "Shop the knives and pans I actually use",
106
+ "link": {
107
+ "type": "url",
108
+ "url": "https://kaimoreno.example/kit",
109
+ "newTab": true
110
+ },
111
+ "icon": "shopping-bag",
112
+ "highlight": false
113
+ },
114
+ {
115
+ "label": "Brand partnerships & press",
116
+ "link": {
117
+ "type": "email",
118
+ "email": "hello@kaimoreno.example",
119
+ "subject": "Partnership"
120
+ },
121
+ "icon": "message-circle",
122
+ "highlight": false
123
+ }
124
+ ]
125
+ },
126
+ "variant": "stacked"
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ "id": "sec_h9dtvjz0fr",
132
+ "label": "Instagram",
133
+ "layout": {
134
+ "mode": "stack",
135
+ "columns": {
136
+ "d": [
137
+ 12
138
+ ]
139
+ },
140
+ "width": "narrow"
141
+ },
142
+ "style": {
143
+ "colorTheme": "light"
144
+ },
145
+ "blocks": [
146
+ {
147
+ "id": "blk_w8h68k4345",
148
+ "type": "social-feed",
149
+ "v": 1,
150
+ "fields": {
151
+ "headingLevel": "h2",
152
+ "network": "instagram",
153
+ "count": "6",
154
+ "heading": "Cooking this week",
155
+ "handle": "kaimoreno.example",
156
+ "followLabel": "Follow",
157
+ "posts": [
158
+ {
159
+ "image": {
160
+ "src": "https://images.unsplash.com/photo-1626263468007-a9e0cf83f1ac?w=960&q=80",
161
+ "alt": "A chocolate drip cake topped with cookies",
162
+ "width": 960,
163
+ "height": 640
164
+ },
165
+ "url": {
166
+ "type": "url",
167
+ "url": "https://instagram.com/p/kai-cake"
168
+ },
169
+ "caption": "My sister's birthday cake. Recipe on page 212."
170
+ },
171
+ {
172
+ "image": {
173
+ "src": "https://images.unsplash.com/photo-1555507036-ab1f4038808a?w=800&q=80",
174
+ "alt": "A golden croissant dusted with sugar",
175
+ "width": 800,
176
+ "height": 640
177
+ },
178
+ "url": {
179
+ "type": "url",
180
+ "url": "https://instagram.com/p/kai-croissant"
181
+ },
182
+ "caption": "Three-day croissants. Worth every fold."
183
+ },
184
+ {
185
+ "image": {
186
+ "src": "https://images.unsplash.com/photo-1650134973809-d8c3a2da59ba?w=960&q=80",
187
+ "alt": "A tall stack of pancakes with blueberries",
188
+ "width": 960,
189
+ "height": 640
190
+ },
191
+ "url": {
192
+ "type": "url",
193
+ "url": "https://instagram.com/p/kai-pancakes"
194
+ },
195
+ "caption": "Sunday pancakes, no buttermilk needed."
196
+ },
197
+ {
198
+ "image": {
199
+ "src": "https://images.unsplash.com/photo-1442512595331-e89e73853f31?w=960&q=80",
200
+ "alt": "Pour-over coffee being brewed at the bar",
201
+ "width": 960,
202
+ "height": 640
203
+ },
204
+ "url": {
205
+ "type": "url",
206
+ "url": "https://instagram.com/p/kai-coffee"
207
+ },
208
+ "caption": "Slow coffee for a slow Saturday."
209
+ },
210
+ {
211
+ "image": {
212
+ "src": "https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=960&q=80",
213
+ "alt": "Four friends raising lattes over a wooden table",
214
+ "width": 960,
215
+ "height": 640
216
+ },
217
+ "url": {
218
+ "type": "url",
219
+ "url": "https://instagram.com/p/kai-supper"
220
+ },
221
+ "caption": "Supper club regulars, toasting with lattes."
222
+ },
223
+ {
224
+ "image": {
225
+ "src": "https://images.unsplash.com/photo-1499636136210-6f4ee915583e?w=640&q=80",
226
+ "alt": "Chocolate chip cookies on a linen cloth",
227
+ "width": 640,
228
+ "height": 800
229
+ },
230
+ "url": {
231
+ "type": "url",
232
+ "url": "https://instagram.com/p/kai-cookies"
233
+ },
234
+ "caption": "Brown-butter cookies. You know the ones."
235
+ }
236
+ ]
237
+ },
238
+ "variant": "grid"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "id": "sec_kxyfb5jt9h",
244
+ "preset": "newsletter/card@1",
245
+ "label": "Newsletter card",
246
+ "layout": {
247
+ "mode": "stack",
248
+ "columns": {
249
+ "d": [
250
+ 12
251
+ ]
252
+ },
253
+ "width": "narrow"
254
+ },
255
+ "style": {
256
+ "colorTheme": "light-accent"
257
+ },
258
+ "blocks": [
259
+ {
260
+ "id": "blk_pfr31fb800",
261
+ "type": "newsletter",
262
+ "v": 1,
263
+ "fields": {
264
+ "heading": "Sunday supper, in your inbox",
265
+ "description": "One recipe, one shopping list and one thing I'm obsessed with, every Sunday morning. 48,000 cooks read along.",
266
+ "askName": false,
267
+ "placeholder": "you@example.com",
268
+ "buttonLabel": "Subscribe",
269
+ "successMessage": "You're in! Look out for Sunday's recipe.",
270
+ "note": "Free. Unsubscribe whenever you like."
271
+ },
272
+ "variant": "card"
273
+ }
274
+ ],
275
+ "anchor": "newsletter"
276
+ }
277
+ ]
278
+ }
@@ -0,0 +1,168 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/site.json",
3
+ "title": "Kai Moreno",
4
+ "tagline": "Weeknight recipes with big flavour and few dishes.",
5
+ "nav": [],
6
+ "header": {
7
+ "variant": "minimal-burger",
8
+ "sticky": false,
9
+ "transparentOnHero": false,
10
+ "mobileMenu": "fullscreen",
11
+ "colorTheme": "light"
12
+ },
13
+ "footer": {
14
+ "id": "sec_z3fv5p3b0m",
15
+ "preset": "footer/minimal-row@1",
16
+ "label": "One-line footer",
17
+ "layout": {
18
+ "mode": "stack",
19
+ "columns": {
20
+ "d": [
21
+ 6,
22
+ 6
23
+ ],
24
+ "m": [
25
+ 12
26
+ ]
27
+ },
28
+ "align": "center",
29
+ "gap": "md"
30
+ },
31
+ "style": {
32
+ "colorTheme": "light",
33
+ "padding": {
34
+ "d": "md",
35
+ "m": "md"
36
+ }
37
+ },
38
+ "blocks": [
39
+ {
40
+ "id": "blk_dvw0xgc2f8",
41
+ "type": "text",
42
+ "v": 1,
43
+ "fields": {
44
+ "content": {
45
+ "type": "doc",
46
+ "content": [
47
+ {
48
+ "type": "paragraph",
49
+ "attrs": {
50
+ "preset": "small"
51
+ },
52
+ "content": [
53
+ {
54
+ "type": "text",
55
+ "text": "© 2026 Kai Moreno · Austin, Texas"
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ }
61
+ },
62
+ "column": 0,
63
+ "variant": "default"
64
+ },
65
+ {
66
+ "id": "blk_365q45f1pv",
67
+ "type": "text",
68
+ "v": 1,
69
+ "fields": {
70
+ "content": {
71
+ "type": "doc",
72
+ "content": [
73
+ {
74
+ "type": "paragraph",
75
+ "attrs": {
76
+ "preset": "small"
77
+ },
78
+ "content": [
79
+ {
80
+ "type": "text",
81
+ "text": "YouTube",
82
+ "marks": [
83
+ {
84
+ "type": "link",
85
+ "attrs": {
86
+ "href": "https://youtube.com/@kaimoreno.example"
87
+ }
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ "type": "text",
93
+ "text": " · "
94
+ },
95
+ {
96
+ "type": "text",
97
+ "text": "Instagram",
98
+ "marks": [
99
+ {
100
+ "type": "link",
101
+ "attrs": {
102
+ "href": "https://instagram.com/kaimoreno.example"
103
+ }
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "type": "text",
109
+ "text": " · "
110
+ },
111
+ {
112
+ "type": "text",
113
+ "text": "Email",
114
+ "marks": [
115
+ {
116
+ "type": "link",
117
+ "attrs": {
118
+ "href": "mailto:hello@kaimoreno.example"
119
+ }
120
+ }
121
+ ]
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ }
127
+ },
128
+ "column": 1,
129
+ "variant": "default",
130
+ "style": {
131
+ "align": {
132
+ "d": "end",
133
+ "m": "start"
134
+ }
135
+ }
136
+ }
137
+ ]
138
+ },
139
+ "social": [
140
+ {
141
+ "network": "instagram",
142
+ "url": "https://instagram.com/kaimoreno.example"
143
+ },
144
+ {
145
+ "network": "youtube",
146
+ "url": "https://youtube.com/@kaimoreno.example"
147
+ },
148
+ {
149
+ "network": "tiktok",
150
+ "url": "https://tiktok.com/@kaimoreno.example"
151
+ },
152
+ {
153
+ "network": "email",
154
+ "url": "mailto:hello@kaimoreno.example"
155
+ }
156
+ ],
157
+ "seo": {
158
+ "titleTemplate": "%s · Kai Moreno",
159
+ "description": "Weeknight recipes with big flavour and few dishes, by Kai Moreno.",
160
+ "image": "https://images.unsplash.com/photo-1513104890138-7c749659a591?w=1200&q=80"
161
+ },
162
+ "locale": "en-US",
163
+ "integrations": {
164
+ "analytics": true,
165
+ "bookingUrl": null,
166
+ "stripeConnected": false
167
+ }
168
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/styles.json",
3
+ "choices": {
4
+ "palette": {
5
+ "brand": "oklch(0.78 0.15 80)",
6
+ "neutral": "warm",
7
+ "contrast": "standard",
8
+ "source": "curated"
9
+ },
10
+ "pairing": "outfit",
11
+ "density": "comfortable",
12
+ "shape": "round",
13
+ "buttons": "pill-solid",
14
+ "motion": "expressive",
15
+ "imageTreatment": "circle"
16
+ }
17
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "$comment": "Licenses for the demo media in the Link 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-1442512595331-e89e73853f31",
11
+ "title": "A barista pouring water over a coffee filter at the bar",
12
+ "author": "Karl Fredrickson",
13
+ "authorUrl": "https://unsplash.com/@kfred",
14
+ "source": "Unsplash",
15
+ "sourceUrl": "https://unsplash.com/photos/person-filling-glass-container-TYIzeCiZ_60",
16
+ "license": "Unsplash License",
17
+ "licenseUrl": "https://unsplash.com/license"
18
+ },
19
+ {
20
+ "kind": "image",
21
+ "src": "https://images.unsplash.com/photo-1495474472287-4d71bcdd2085",
22
+ "title": "Four friends raising lattes over a wooden table",
23
+ "author": "Nathan Dumlao",
24
+ "authorUrl": "https://unsplash.com/@nate_dumlao",
25
+ "source": "Unsplash",
26
+ "sourceUrl": "https://unsplash.com/photos/three-person-holding-beverage-cups-6VhPY27jdps",
27
+ "license": "Unsplash License",
28
+ "licenseUrl": "https://unsplash.com/license"
29
+ },
30
+ {
31
+ "kind": "image",
32
+ "src": "https://images.unsplash.com/photo-1499636136210-6f4ee915583e",
33
+ "title": "Chocolate chip cookies scattered on a pale linen cloth",
34
+ "author": "Food Photographer | Jennifer Pallian",
35
+ "authorUrl": "https://unsplash.com/@foodess",
36
+ "source": "Unsplash",
37
+ "sourceUrl": "https://unsplash.com/photos/close-up-photo-of-baked-cookies-OfdDiqx8Cz8",
38
+ "license": "Unsplash License",
39
+ "licenseUrl": "https://unsplash.com/license"
40
+ },
41
+ {
42
+ "kind": "image",
43
+ "src": "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d",
44
+ "title": "Portrait of a smiling man in a white t-shirt",
45
+ "author": "Joseph Gonzalez",
46
+ "authorUrl": "https://unsplash.com/@miracletwentyone",
47
+ "source": "Unsplash",
48
+ "sourceUrl": "https://unsplash.com/photos/man-wearing-white-v-neck-shirt-iFgRcqHznqg",
49
+ "license": "Unsplash License",
50
+ "licenseUrl": "https://unsplash.com/license"
51
+ },
52
+ {
53
+ "kind": "image",
54
+ "src": "https://images.unsplash.com/photo-1513104890138-7c749659a591",
55
+ "title": "A wood-fired pizza cut into slices on a dark table",
56
+ "author": "Ivan Torres",
57
+ "authorUrl": "https://unsplash.com/@iavnt",
58
+ "source": "Unsplash",
59
+ "sourceUrl": "https://unsplash.com/photos/cheese-pizza-with-tomatoes-and-rosemary-MQUqbmszGGM",
60
+ "license": "Unsplash License",
61
+ "licenseUrl": "https://unsplash.com/license"
62
+ },
63
+ {
64
+ "kind": "image",
65
+ "src": "https://images.unsplash.com/photo-1555507036-ab1f4038808a",
66
+ "title": "A golden croissant being dusted with sugar on a dark slate",
67
+ "author": "Mae Mu",
68
+ "authorUrl": "https://unsplash.com/@picoftasty",
69
+ "source": "Unsplash",
70
+ "sourceUrl": "https://unsplash.com/photos/two-brown-croissants-m9pzwmxm2rk",
71
+ "license": "Unsplash License",
72
+ "licenseUrl": "https://unsplash.com/license"
73
+ },
74
+ {
75
+ "kind": "image",
76
+ "src": "https://images.unsplash.com/photo-1626263468007-a9e0cf83f1ac",
77
+ "title": "A chocolate drip cake topped with cookies and cream",
78
+ "author": "Syed Maaz",
79
+ "authorUrl": "https://unsplash.com/@syedmaaz904",
80
+ "source": "Unsplash",
81
+ "sourceUrl": "https://unsplash.com/photos/chocolate-cake-with-chocolate-syrup-on-top-QLSh4y2v93c",
82
+ "license": "Unsplash License",
83
+ "licenseUrl": "https://unsplash.com/license"
84
+ },
85
+ {
86
+ "kind": "image",
87
+ "src": "https://images.unsplash.com/photo-1650134973809-d8c3a2da59ba",
88
+ "title": "A tall stack of pancakes with blueberries and syrup",
89
+ "author": "Amber Fisher",
90
+ "authorUrl": "https://unsplash.com/@lindsaysworld",
91
+ "source": "Unsplash",
92
+ "sourceUrl": "https://unsplash.com/photos/a-stack-of-pancakes-covered-in-blueberries-and-syrup-krqTbKwuFgw",
93
+ "license": "Unsplash License",
94
+ "licenseUrl": "https://unsplash.com/license"
95
+ }
96
+ ]
97
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/site-config.json",
3
+ "siteId": "st_6xg0chvez7",
4
+ "schemaVersion": 1,
5
+ "template": {
6
+ "id": "link",
7
+ "version": "1.0.0"
8
+ },
9
+ "hub": "https://hub.openspace.dev",
10
+ "deploy": {
11
+ "target": "github-pages",
12
+ "url": "https://example.github.io/link",
13
+ "customDomain": null
14
+ },
15
+ "features": {
16
+ "forms": true,
17
+ "newsletter": true,
18
+ "analytics": true,
19
+ "search": false
20
+ }
21
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/template.json",
3
+ "id": "link",
4
+ "name": "Link",
5
+ "description": "A punchy, mobile-first link-in-bio page with stacked link buttons, a pinned social feed, a newsletter signup and all your profiles.",
6
+ "persona": "Link-in-bio, single page",
7
+ "mood": "Mobile-first, punchy",
8
+ "version": "1.0.0",
9
+ "tags": [
10
+ "link in bio",
11
+ "creator",
12
+ "single page",
13
+ "social",
14
+ "newsletter"
15
+ ],
16
+ "sample": {
17
+ "name": "Kai Moreno",
18
+ "tagline": "Weeknight recipes with big flavour and few dishes."
19
+ },
20
+ "thumbnailPage": "pg_m8n27v4m94",
21
+ "looks": [
22
+ {
23
+ "id": "saffron",
24
+ "name": "Saffron",
25
+ "description": "Golden saffron with Outfit throughout and round, friendly buttons.",
26
+ "choices": {
27
+ "palette": {
28
+ "brand": "oklch(0.78 0.15 80)",
29
+ "neutral": "warm",
30
+ "contrast": "standard",
31
+ "source": "curated"
32
+ },
33
+ "pairing": "outfit",
34
+ "density": "comfortable",
35
+ "shape": "round",
36
+ "buttons": "pill-solid",
37
+ "motion": "expressive",
38
+ "imageTreatment": "circle"
39
+ }
40
+ },
41
+ {
42
+ "id": "coral",
43
+ "name": "Coral",
44
+ "description": "Playful coral with Plus Jakarta Sans and soft corners.",
45
+ "choices": {
46
+ "palette": {
47
+ "brand": "oklch(0.7 0.15 25)",
48
+ "neutral": "warm",
49
+ "contrast": "standard",
50
+ "source": "curated"
51
+ },
52
+ "pairing": "plus-jakarta",
53
+ "density": "comfortable",
54
+ "shape": "soft",
55
+ "buttons": "solid",
56
+ "motion": "expressive",
57
+ "imageTreatment": "rounded"
58
+ }
59
+ },
60
+ {
61
+ "id": "lagoon",
62
+ "name": "Lagoon",
63
+ "description": "Clear teal with Sora and Inter, crisp outlined buttons and square corners.",
64
+ "choices": {
65
+ "palette": {
66
+ "brand": "oklch(0.58 0.1 195)",
67
+ "neutral": "cool",
68
+ "contrast": "standard",
69
+ "source": "curated"
70
+ },
71
+ "pairing": "sora-inter",
72
+ "density": "compact",
73
+ "shape": "sharp",
74
+ "buttons": "outline",
75
+ "motion": "subtle",
76
+ "imageTreatment": "none"
77
+ }
78
+ }
79
+ ],
80
+ "pages": [
81
+ {
82
+ "id": "pg_m8n27v4m94",
83
+ "title": "Home",
84
+ "slug": ""
85
+ }
86
+ ]
87
+ }