@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,363 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_a2aw835bvy",
4
+ "title": "Home",
5
+ "slug": "",
6
+ "seo": {
7
+ "description": "Juno Vale makes late-night synth-pop in Chicago. Listen to the new album Afterglow, see tour dates and catch Night Shift Sessions."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_8yckr0h7ky",
12
+ "preset": "hero/photo-corner-text@1",
13
+ "label": "Photograph with corner headline",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 7,
19
+ 5
20
+ ],
21
+ "m": [
22
+ 12
23
+ ]
24
+ },
25
+ "align": "end"
26
+ },
27
+ "style": {
28
+ "colorTheme": "dark",
29
+ "padding": {
30
+ "d": "2xl",
31
+ "m": "xl"
32
+ },
33
+ "minHeight": {
34
+ "d": "92vh",
35
+ "m": "85svh"
36
+ },
37
+ "background": {
38
+ "type": "image",
39
+ "src": "https://images.unsplash.com/photo-1501386761578-eac5c94b800a?w=2880&q=80",
40
+ "focal": [
41
+ 0.5,
42
+ 0.4
43
+ ],
44
+ "overlay": {
45
+ "color": "background",
46
+ "opacity": 0.78
47
+ }
48
+ }
49
+ },
50
+ "blocks": [
51
+ {
52
+ "id": "blk_tnex5nfkvs",
53
+ "type": "heading",
54
+ "v": 1,
55
+ "fields": {
56
+ "text": "Songs for driving home after midnight",
57
+ "level": "h1",
58
+ "size": "display",
59
+ "eyebrow": "New album · Afterglow · Out now",
60
+ "subheading": "Afterglow is Juno Vale's second album: ten songs of warm synths, drum machines and city lights, recorded over one long Chicago winter."
61
+ },
62
+ "column": 0,
63
+ "variant": "plain"
64
+ },
65
+ {
66
+ "id": "blk_30tjz04e8s",
67
+ "type": "button",
68
+ "v": 1,
69
+ "fields": {
70
+ "label": "Listen to Afterglow",
71
+ "link": {
72
+ "type": "page",
73
+ "page": "pg_4czb9an2pn"
74
+ },
75
+ "role": "primary",
76
+ "secondaryLabel": "Tour dates",
77
+ "secondaryLink": {
78
+ "type": "url",
79
+ "url": "/tour/"
80
+ }
81
+ },
82
+ "column": 0,
83
+ "variant": "default"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "id": "sec_kt9qvgq1wz",
89
+ "label": "Latest single",
90
+ "layout": {
91
+ "mode": "stack",
92
+ "columns": {
93
+ "d": [
94
+ 5,
95
+ 7
96
+ ],
97
+ "m": [
98
+ 12
99
+ ]
100
+ },
101
+ "align": "center",
102
+ "gap": "lg"
103
+ },
104
+ "style": {
105
+ "colorTheme": "dark-accent"
106
+ },
107
+ "blocks": [
108
+ {
109
+ "id": "blk_389xtfa3fm",
110
+ "type": "heading",
111
+ "v": 1,
112
+ "fields": {
113
+ "level": "h2",
114
+ "size": "auto",
115
+ "text": "Neon Tide",
116
+ "eyebrow": "The single",
117
+ "subheading": "The first song from Afterglow, recorded live to tape in one take."
118
+ },
119
+ "variant": "plain",
120
+ "column": 0
121
+ },
122
+ {
123
+ "id": "blk_qmfbj87jpa",
124
+ "type": "button",
125
+ "v": 1,
126
+ "fields": {
127
+ "role": "secondary",
128
+ "label": "Stream everywhere",
129
+ "link": {
130
+ "type": "url",
131
+ "url": "https://open.spotify.com/artist/junovale-example",
132
+ "newTab": true
133
+ }
134
+ },
135
+ "column": 0
136
+ },
137
+ {
138
+ "id": "blk_krkzb59g33",
139
+ "type": "audio",
140
+ "v": 1,
141
+ "fields": {
142
+ "audio": {
143
+ "kind": "audio",
144
+ "src": "https://upload.wikimedia.org/wikipedia/commons/c/c2/Synth_pop_with_4_on_the_floor.ogg",
145
+ "title": "Neon Tide"
146
+ },
147
+ "title": "Neon Tide",
148
+ "show": "Afterglow",
149
+ "description": "Four on the floor, stepped pads and a melody that won't leave you alone.",
150
+ "cover": {
151
+ "src": "https://images.unsplash.com/photo-1669459868647-4c2f1c564052?w=960&q=80",
152
+ "alt": "Afterglow album cover: a crowd facing a lit stage",
153
+ "width": 960,
154
+ "height": 640
155
+ },
156
+ "links": [
157
+ {
158
+ "platform": "spotify",
159
+ "link": {
160
+ "type": "url",
161
+ "url": "https://open.spotify.com/artist/junovale-example"
162
+ }
163
+ },
164
+ {
165
+ "platform": "other",
166
+ "label": "Apple Music",
167
+ "link": {
168
+ "type": "url",
169
+ "url": "https://music.apple.com/artist/junovale-example"
170
+ }
171
+ },
172
+ {
173
+ "platform": "other",
174
+ "label": "Bandcamp",
175
+ "link": {
176
+ "type": "url",
177
+ "url": "https://junovale.bandcamp.example"
178
+ }
179
+ }
180
+ ]
181
+ },
182
+ "variant": "card",
183
+ "column": 1
184
+ }
185
+ ]
186
+ },
187
+ {
188
+ "id": "sec_xwv7vs5wa5",
189
+ "preset": "events/list@1",
190
+ "label": "Upcoming events list",
191
+ "layout": {
192
+ "mode": "stack",
193
+ "columns": {
194
+ "d": [
195
+ 12
196
+ ]
197
+ },
198
+ "width": "narrow"
199
+ },
200
+ "style": {
201
+ "colorTheme": "dark"
202
+ },
203
+ "blocks": [
204
+ {
205
+ "id": "blk_thv3z3zd99",
206
+ "type": "events",
207
+ "v": 1,
208
+ "fields": {
209
+ "heading": "Afterglow tour",
210
+ "headingLevel": "h2",
211
+ "source": {
212
+ "collection": "tour",
213
+ "filter": {
214
+ "upcoming": true
215
+ },
216
+ "limit": 6
217
+ },
218
+ "showImage": false,
219
+ "showLocation": true,
220
+ "showExcerpt": true,
221
+ "registerLabel": "Tickets",
222
+ "emptyMessage": "New dates are announced to the mailing list first.",
223
+ "structuredData": true
224
+ },
225
+ "variant": "list"
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "id": "sec_a0dk61e0fp",
231
+ "preset": "testimonials/large-single@1",
232
+ "label": "One big testimonial",
233
+ "layout": {
234
+ "mode": "stack",
235
+ "columns": {
236
+ "d": [
237
+ 12
238
+ ]
239
+ },
240
+ "width": "narrow"
241
+ },
242
+ "style": {
243
+ "colorTheme": "brand",
244
+ "padding": {
245
+ "d": "xl",
246
+ "m": "lg"
247
+ }
248
+ },
249
+ "blocks": [
250
+ {
251
+ "id": "blk_rq3szj4k6k",
252
+ "type": "testimonial",
253
+ "v": 1,
254
+ "fields": {
255
+ "quote": {
256
+ "type": "doc",
257
+ "content": [
258
+ {
259
+ "type": "paragraph",
260
+ "content": [
261
+ {
262
+ "type": "text",
263
+ "text": "Afterglow sounds like the last train home: tired, glowing and quietly euphoric. Vale's best work yet."
264
+ }
265
+ ]
266
+ }
267
+ ]
268
+ },
269
+ "name": "Northside Sound",
270
+ "role": "Album review, ★★★★½"
271
+ },
272
+ "variant": "large",
273
+ "style": {
274
+ "align": {
275
+ "d": "center"
276
+ }
277
+ }
278
+ }
279
+ ]
280
+ },
281
+ {
282
+ "id": "sec_30044qmwr1",
283
+ "preset": "blog/list@1",
284
+ "label": "Post list",
285
+ "layout": {
286
+ "mode": "stack",
287
+ "columns": {
288
+ "d": [
289
+ 12
290
+ ]
291
+ },
292
+ "width": "narrow"
293
+ },
294
+ "style": {
295
+ "colorTheme": "dark"
296
+ },
297
+ "blocks": [
298
+ {
299
+ "id": "blk_73z4wzyh3w",
300
+ "type": "summary",
301
+ "v": 1,
302
+ "fields": {
303
+ "heading": "Night Shift Sessions",
304
+ "headingLevel": "h2",
305
+ "source": {
306
+ "collection": "sessions",
307
+ "sort": "date-desc",
308
+ "limit": 3
309
+ },
310
+ "columns": "3",
311
+ "showImage": false,
312
+ "showDate": true,
313
+ "showExcerpt": true,
314
+ "showMeta": false,
315
+ "linkLabel": "All episodes",
316
+ "link": {
317
+ "type": "url",
318
+ "url": "/sessions/"
319
+ },
320
+ "emptyMessage": "A new session is being recorded. Subscribe to hear it first."
321
+ },
322
+ "variant": "list"
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ "id": "sec_1zszyhscq1",
328
+ "preset": "newsletter/banner@1",
329
+ "label": "Newsletter banner",
330
+ "layout": {
331
+ "mode": "stack",
332
+ "columns": {
333
+ "d": [
334
+ 12
335
+ ]
336
+ }
337
+ },
338
+ "style": {
339
+ "colorTheme": "dark-accent",
340
+ "padding": {
341
+ "d": "lg",
342
+ "m": "lg"
343
+ }
344
+ },
345
+ "blocks": [
346
+ {
347
+ "id": "blk_t46jny5cz8",
348
+ "type": "newsletter",
349
+ "v": 1,
350
+ "fields": {
351
+ "heading": "Join the night shift",
352
+ "description": "Presale codes, new music and the occasional voice memo from the studio. Once a month at most.",
353
+ "askName": false,
354
+ "placeholder": "you@example.com",
355
+ "buttonLabel": "Sign up",
356
+ "successMessage": "You're on the list. Check your inbox to confirm."
357
+ },
358
+ "variant": "banner"
359
+ }
360
+ ]
361
+ }
362
+ ]
363
+ }
@@ -0,0 +1,297 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_4czb9an2pn",
4
+ "title": "Music",
5
+ "slug": "music",
6
+ "seo": {
7
+ "description": "Listen to Juno Vale's albums Afterglow and Paper Moons, singles and live sessions, on every streaming service or on vinyl."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_tff660tx9p",
12
+ "layout": {
13
+ "mode": "stack",
14
+ "columns": {
15
+ "d": [
16
+ 12
17
+ ]
18
+ }
19
+ },
20
+ "style": {
21
+ "colorTheme": "dark",
22
+ "padding": {
23
+ "d": "xl",
24
+ "m": "lg"
25
+ }
26
+ },
27
+ "blocks": [
28
+ {
29
+ "id": "blk_y25n4vjkfj",
30
+ "type": "heading",
31
+ "v": 1,
32
+ "fields": {
33
+ "level": "h1",
34
+ "size": "display",
35
+ "text": "Music",
36
+ "eyebrow": "Albums, singles & sessions",
37
+ "subheading": "Stream everything below, or buy vinyl and downloads on Bandcamp, where most of the money reaches the artist."
38
+ },
39
+ "variant": "plain"
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ "id": "sec_2y2z0pgyn0",
45
+ "label": "Tracks",
46
+ "layout": {
47
+ "mode": "stack",
48
+ "columns": {
49
+ "d": [
50
+ 12
51
+ ]
52
+ },
53
+ "width": "content"
54
+ },
55
+ "style": {
56
+ "colorTheme": "dark-accent"
57
+ },
58
+ "blocks": [
59
+ {
60
+ "id": "blk_ykphhrjrm7",
61
+ "type": "heading",
62
+ "v": 1,
63
+ "fields": {
64
+ "level": "h2",
65
+ "size": "auto",
66
+ "text": "From Afterglow",
67
+ "eyebrow": "Listen"
68
+ },
69
+ "variant": "plain"
70
+ },
71
+ {
72
+ "id": "blk_rgvs28z1hc",
73
+ "type": "audio",
74
+ "v": 1,
75
+ "fields": {
76
+ "audio": {
77
+ "kind": "audio",
78
+ "src": "https://upload.wikimedia.org/wikipedia/commons/c/c2/Synth_pop_with_4_on_the_floor.ogg",
79
+ "title": "Neon Tide"
80
+ },
81
+ "title": "Neon Tide",
82
+ "show": "Afterglow (2026)",
83
+ "episode": 1,
84
+ "description": "The opening track and first single. Stepped pads, a four-on-the-floor kick and a melody written on a hotel keyboard.",
85
+ "cover": {
86
+ "src": "https://images.unsplash.com/photo-1669459868647-4c2f1c564052?w=960&q=80",
87
+ "alt": "Afterglow album cover",
88
+ "width": 960,
89
+ "height": 640
90
+ },
91
+ "links": [
92
+ {
93
+ "platform": "spotify",
94
+ "link": {
95
+ "type": "url",
96
+ "url": "https://open.spotify.com/artist/junovale-example"
97
+ }
98
+ },
99
+ {
100
+ "platform": "other",
101
+ "label": "Apple Music",
102
+ "link": {
103
+ "type": "url",
104
+ "url": "https://music.apple.com/artist/junovale-example"
105
+ }
106
+ },
107
+ {
108
+ "platform": "other",
109
+ "label": "Bandcamp",
110
+ "link": {
111
+ "type": "url",
112
+ "url": "https://junovale.bandcamp.example"
113
+ }
114
+ }
115
+ ]
116
+ },
117
+ "variant": "episode"
118
+ },
119
+ {
120
+ "id": "blk_2a4mbmtr8d",
121
+ "type": "audio",
122
+ "v": 1,
123
+ "fields": {
124
+ "audio": {
125
+ "kind": "audio",
126
+ "src": "https://upload.wikimedia.org/wikipedia/commons/1/10/Friendly_Evil_Gangsta_Synth_Hip_Hop.ogg",
127
+ "title": "Slow Static"
128
+ },
129
+ "title": "Slow Static",
130
+ "show": "Afterglow (2026)",
131
+ "episode": 7,
132
+ "description": "A slow, heavy instrumental built around a broken drum machine and a borrowed Juno-60.",
133
+ "cover": {
134
+ "src": "https://images.unsplash.com/photo-1669459868647-4c2f1c564052?w=960&q=80",
135
+ "alt": "Afterglow album cover",
136
+ "width": 960,
137
+ "height": 640
138
+ },
139
+ "links": [
140
+ {
141
+ "platform": "spotify",
142
+ "link": {
143
+ "type": "url",
144
+ "url": "https://open.spotify.com/artist/junovale-example"
145
+ }
146
+ },
147
+ {
148
+ "platform": "other",
149
+ "label": "Apple Music",
150
+ "link": {
151
+ "type": "url",
152
+ "url": "https://music.apple.com/artist/junovale-example"
153
+ }
154
+ },
155
+ {
156
+ "platform": "other",
157
+ "label": "Bandcamp",
158
+ "link": {
159
+ "type": "url",
160
+ "url": "https://junovale.bandcamp.example"
161
+ }
162
+ }
163
+ ]
164
+ },
165
+ "variant": "episode"
166
+ }
167
+ ]
168
+ },
169
+ {
170
+ "id": "sec_9ed5bnby5t",
171
+ "preset": "gallery/project-cards@1",
172
+ "label": "Project index",
173
+ "layout": {
174
+ "mode": "stack",
175
+ "columns": {
176
+ "d": [
177
+ 12
178
+ ]
179
+ },
180
+ "gap": "xl"
181
+ },
182
+ "style": {
183
+ "colorTheme": "dark"
184
+ },
185
+ "blocks": [
186
+ {
187
+ "id": "blk_kra63qjcew",
188
+ "type": "heading",
189
+ "v": 1,
190
+ "fields": {
191
+ "text": "Records",
192
+ "level": "h2",
193
+ "size": "auto",
194
+ "eyebrow": "Discography"
195
+ },
196
+ "variant": "underline"
197
+ },
198
+ {
199
+ "id": "blk_ev87b87mfg",
200
+ "type": "columns",
201
+ "v": 1,
202
+ "fields": {
203
+ "items": [
204
+ {
205
+ "image": {
206
+ "src": "https://images.unsplash.com/photo-1669459868647-4c2f1c564052?w=1560&q=80",
207
+ "alt": "Afterglow album artwork",
208
+ "width": 1560,
209
+ "height": 1040
210
+ },
211
+ "heading": "Afterglow",
212
+ "body": {
213
+ "type": "doc",
214
+ "content": [
215
+ {
216
+ "type": "paragraph",
217
+ "content": [
218
+ {
219
+ "type": "text",
220
+ "text": "Album, 2026. Ten songs recorded over one Chicago winter."
221
+ }
222
+ ]
223
+ }
224
+ ]
225
+ },
226
+ "link": {
227
+ "type": "url",
228
+ "url": "https://junovale.bandcamp.example/album/afterglow"
229
+ },
230
+ "linkLabel": "Buy on Bandcamp"
231
+ },
232
+ {
233
+ "image": {
234
+ "src": "https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?w=1560&q=80",
235
+ "alt": "Paper Moons album artwork: a vintage microphone",
236
+ "width": 1560,
237
+ "height": 1040
238
+ },
239
+ "heading": "Paper Moons",
240
+ "body": {
241
+ "type": "doc",
242
+ "content": [
243
+ {
244
+ "type": "paragraph",
245
+ "content": [
246
+ {
247
+ "type": "text",
248
+ "text": "Album, 2023. The debut, made in a bedroom on Kedzie Avenue."
249
+ }
250
+ ]
251
+ }
252
+ ]
253
+ },
254
+ "link": {
255
+ "type": "url",
256
+ "url": "https://junovale.bandcamp.example/album/paper-moons"
257
+ },
258
+ "linkLabel": "Buy on Bandcamp"
259
+ },
260
+ {
261
+ "image": {
262
+ "src": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=1560&q=80",
263
+ "alt": "Night Shift EP artwork: headphones on yellow",
264
+ "width": 1560,
265
+ "height": 1040
266
+ },
267
+ "heading": "Night Shift EP",
268
+ "body": {
269
+ "type": "doc",
270
+ "content": [
271
+ {
272
+ "type": "paragraph",
273
+ "content": [
274
+ {
275
+ "type": "text",
276
+ "text": "EP, 2021. Four songs and a cover of a song you'd never guess."
277
+ }
278
+ ]
279
+ }
280
+ ]
281
+ },
282
+ "link": {
283
+ "type": "url",
284
+ "url": "https://junovale.bandcamp.example/album/night-shift"
285
+ },
286
+ "linkLabel": "Buy on Bandcamp"
287
+ }
288
+ ],
289
+ "columns": "3",
290
+ "aspect": "4:5"
291
+ },
292
+ "variant": "plain"
293
+ }
294
+ ]
295
+ }
296
+ ]
297
+ }