@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,20 @@
1
+ ---
2
+ status: published
3
+ title: Meet Daniel, our new massage therapist
4
+ date: 2026-09-02
5
+ author: Hana Moreau
6
+ categories:
7
+ - studio
8
+ tags:
9
+ - bodywork
10
+ - team
11
+ image: https://images.unsplash.com/photo-1544161515-4ab6ce6db874?w=1600&q=80
12
+ imageAlt: A therapist preparing warm oil before a massage
13
+ excerpt: Eight years with runners and climbers, and a very calm pair of hands.
14
+ ---
15
+
16
+ Daniel Reyes joins the bodywork team this month. He spent eight years working with runners and rock climbers, and he is very good at explaining what he finds.
17
+
18
+ > "Most pain has a story. I like to hear it before I start."
19
+
20
+ Daniel takes deep tissue and sports massage appointments on Tuesday and Thursday evenings and Saturday mornings. Members save 15% on every treatment.
@@ -0,0 +1,24 @@
1
+ ---
2
+ status: published
3
+ title: A ten-minute practice for dark mornings
4
+ date: 2026-09-28
5
+ author: Iris Okonjo
6
+ categories:
7
+ - practice
8
+ tags:
9
+ - home practice
10
+ - autumn
11
+ image: https://images.unsplash.com/photo-1506126613408-eca07ce68773?w=1600&q=80
12
+ imageAlt: A woman meditating on a wooden deck at sunrise
13
+ excerpt: Five gentle shapes to do before the kettle boils, as the mornings draw in.
14
+ ---
15
+
16
+ When the mornings get dark, the hardest part of practice is getting out from under the duvet. So make it small.
17
+
18
+ 1. **Child's pose**, five slow breaths.
19
+ 2. **Cat and cow**, moving with the breath, eight rounds.
20
+ 3. **Low lunge** each side, hands on blocks or a pile of books.
21
+ 4. **Standing forward fold** with soft knees, swaying side to side.
22
+ 5. **Sit for one minute** and notice three things you can hear.
23
+
24
+ That's it. Ten minutes, maybe less, and the day starts a little kinder.
@@ -0,0 +1,26 @@
1
+ ---
2
+ status: published
3
+ title: Why we stop at twelve mats
4
+ date: 2026-10-12
5
+ author: Hana Moreau
6
+ categories:
7
+ - studio
8
+ tags:
9
+ - teaching
10
+ - community
11
+ image: https://images.unsplash.com/photo-1767605523281-8b54b3692078?w=1600&q=80
12
+ imageAlt: Rolled mats in a woven basket, ready for class
13
+ excerpt: Twelve is a choice, not a limit. Here's what a small room makes possible.
14
+ ---
15
+
16
+ People sometimes ask why we don't squeeze in a few more mats. The honest answer: twelve is the most people one teacher can really *see*.
17
+
18
+ With twelve students I can notice who is protecting a shoulder, who needs a blanket under their knees and who has quietly stopped breathing in a twist. With twenty, I'd be teaching to the middle of the room.
19
+
20
+ ## What small classes make possible
21
+
22
+ - Real options for every pose, offered to the person who needs them
23
+ - Time to learn names, and to remember them next week
24
+ - A room calm enough that nervous beginners stay
25
+
26
+ Twelve mats also means some classes fill up. Book ahead when you can, and know that we always hold three mats for drop-ins.
@@ -0,0 +1,34 @@
1
+ {
2
+ "kind": "blog",
3
+ "label": "Journal",
4
+ "slugPattern": "{date}-{title}",
5
+ "list": {
6
+ "layout": "cards",
7
+ "pageSize": 12,
8
+ "sort": "date-desc"
9
+ },
10
+ "itemPage": {
11
+ "layout": "article",
12
+ "showDate": true,
13
+ "showAuthor": true,
14
+ "showRelated": true
15
+ },
16
+ "taxonomies": {
17
+ "categories": [
18
+ {
19
+ "slug": "practice",
20
+ "label": "Practice"
21
+ },
22
+ {
23
+ "slug": "studio",
24
+ "label": "Studio news"
25
+ }
26
+ ],
27
+ "tags": true
28
+ },
29
+ "feed": {
30
+ "enabled": true,
31
+ "title": "The Fernwood Journal",
32
+ "description": "Notes on practice, rest and the studio."
33
+ }
34
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "kind": "events",
3
+ "label": "Workshops",
4
+ "itemLabel": "Workshop",
5
+ "list": {
6
+ "layout": "cards",
7
+ "pageSize": 12,
8
+ "sort": "date-asc"
9
+ },
10
+ "itemPage": {
11
+ "layout": "split"
12
+ }
13
+ }
@@ -0,0 +1,17 @@
1
+ ---
2
+ status: published
3
+ title: "Breath & rest: a Sunday workshop"
4
+ start: 2027-02-21T13:00:00-08:00
5
+ end: 2027-02-21T16:00:00-08:00
6
+ timezone: America/Los_Angeles
7
+ location:
8
+ name: Fernwood Yoga & Bodywork
9
+ address: 2418 SE Division Street, Portland
10
+ registrationUrl: https://cal.com/fernwood-yoga
11
+ price: $45
12
+ image: https://images.unsplash.com/photo-1506126613408-eca07ce68773?w=1600&q=80
13
+ imageAlt: A woman sitting cross-legged in meditation at sunrise
14
+ excerpt: Three hours of simple breathing practices and guided rest you can take home.
15
+ ---
16
+
17
+ We cover four breathing practices for sleep, stress and focus, then finish with forty minutes of yoga nidra.
@@ -0,0 +1,17 @@
1
+ ---
2
+ status: published
3
+ title: "Foundations: a four-week course"
4
+ start: 2027-01-09T10:00:00-08:00
5
+ end: 2027-01-30T11:30:00-08:00
6
+ timezone: America/Los_Angeles
7
+ location:
8
+ name: Fernwood Yoga & Bodywork
9
+ address: 2418 SE Division Street, Portland
10
+ registrationUrl: https://cal.com/fernwood-yoga
11
+ price: $120 for four Saturdays
12
+ image: https://images.unsplash.com/photo-1767605523281-8b54b3692078?w=1600&q=80
13
+ imageAlt: Mats and props ready for the Saturday course
14
+ excerpt: "Four Saturday mornings for complete beginners: breath, alignment and how to rest."
15
+ ---
16
+
17
+ Each week builds on the last. By the end you'll feel at home in any Fernwood class. Mats and props provided.
@@ -0,0 +1,17 @@
1
+ ---
2
+ status: published
3
+ title: Spring retreat at Manzanita
4
+ start: 2027-04-16T16:00:00-07:00
5
+ end: 2027-04-18T13:00:00-07:00
6
+ timezone: America/Los_Angeles
7
+ location:
8
+ name: Neahkahnie House
9
+ address: Manzanita, Oregon
10
+ registrationUrl: https://cal.com/fernwood-yoga
11
+ price: From $540, meals included
12
+ image: https://images.unsplash.com/photo-1545205597-3d9d02c29597?w=1600&q=80
13
+ imageAlt: A small group practising tree pose on a misty beach
14
+ excerpt: "Three days on the coast: morning practice on the sand, long walks and shared meals."
15
+ ---
16
+
17
+ Twelve places, shared or private rooms, and every meal cooked for us. Suitable for every level.
@@ -0,0 +1,17 @@
1
+ ---
2
+ status: published
3
+ title: Winter solstice restorative
4
+ start: 2026-12-20T17:00:00-08:00
5
+ end: 2026-12-20T19:00:00-08:00
6
+ timezone: America/Los_Angeles
7
+ location:
8
+ name: Fernwood Yoga & Bodywork
9
+ address: 2418 SE Division Street, Portland
10
+ registrationUrl: https://cal.com/fernwood-yoga
11
+ price: $35
12
+ image: https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?w=1600&q=80
13
+ imageAlt: A person holding a low lunge at dusk
14
+ excerpt: Two hours of long, supported poses by candlelight on the longest night of the year.
15
+ ---
16
+
17
+ Bolsters, blankets and very little effort. We finish with a short guided rest and a warm spiced tea.
@@ -0,0 +1,344 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_sat2c09jw4",
4
+ "title": "About",
5
+ "slug": "about",
6
+ "seo": {
7
+ "description": "Fernwood Yoga & Bodywork opened on SE Division Street in 2016. Meet founder Hana Moreau, our teachers and the story of the studio.",
8
+ "image": "https://images.unsplash.com/photo-1767605523281-8b54b3692078?w=1200&q=80"
9
+ },
10
+ "sections": [
11
+ {
12
+ "id": "sec_ezaeh3m133",
13
+ "preset": "about/story-split@1",
14
+ "label": "Story with portrait",
15
+ "layout": {
16
+ "mode": "stack",
17
+ "columns": {
18
+ "d": [
19
+ 5,
20
+ 7
21
+ ],
22
+ "m": [
23
+ 12
24
+ ]
25
+ },
26
+ "align": "center",
27
+ "gap": "2xl"
28
+ },
29
+ "style": {
30
+ "colorTheme": "light"
31
+ },
32
+ "blocks": [
33
+ {
34
+ "id": "blk_tvx6r33w83",
35
+ "type": "image",
36
+ "v": 1,
37
+ "fields": {
38
+ "image": {
39
+ "src": "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=1040&q=80",
40
+ "alt": "Portrait of Hana Moreau, founder of Fernwood",
41
+ "width": 1040,
42
+ "height": 1560
43
+ },
44
+ "aspect": "4:5",
45
+ "lightbox": false
46
+ },
47
+ "column": 0,
48
+ "variant": "default",
49
+ "style": {
50
+ "imageTreatment": "arch"
51
+ }
52
+ },
53
+ {
54
+ "id": "blk_7dan89sf8e",
55
+ "type": "heading",
56
+ "v": 1,
57
+ "fields": {
58
+ "text": "A studio built around slowing down",
59
+ "level": "h1",
60
+ "size": "h1",
61
+ "eyebrow": "Our story"
62
+ },
63
+ "column": 1,
64
+ "variant": "plain"
65
+ },
66
+ {
67
+ "id": "blk_eb14e06dgt",
68
+ "type": "text",
69
+ "v": 1,
70
+ "fields": {
71
+ "content": {
72
+ "type": "doc",
73
+ "content": [
74
+ {
75
+ "type": "paragraph",
76
+ "content": [
77
+ {
78
+ "type": "text",
79
+ "text": "Hana Moreau taught her first class in 2012, in a borrowed church hall with eight mats and a space heater. She had spent ten years as a nurse and had seen how rarely people are given time to notice their own bodies."
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "type": "paragraph",
85
+ "content": [
86
+ {
87
+ "type": "text",
88
+ "text": "Fernwood opened in 2016 with one room, one teacher and a kettle. Today there are six teachers, two massage therapists and thirty classes a week, but the rules are the same: small classes, patient teaching, and tea afterwards for anyone who wants to stay."
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ }
94
+ },
95
+ "column": 1,
96
+ "variant": "default"
97
+ },
98
+ {
99
+ "id": "blk_bw1b1yymfx",
100
+ "type": "button",
101
+ "v": 1,
102
+ "fields": {
103
+ "label": "Meet the teachers",
104
+ "link": {
105
+ "type": "page",
106
+ "page": "pg_sat2c09jw4",
107
+ "anchor": "teachers"
108
+ },
109
+ "role": "secondary"
110
+ },
111
+ "column": 1,
112
+ "variant": "default"
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ "id": "sec_geb9rpxf2m",
118
+ "preset": "about/milestones@1",
119
+ "label": "Milestones timeline",
120
+ "layout": {
121
+ "mode": "stack",
122
+ "columns": {
123
+ "d": [
124
+ 5,
125
+ 7
126
+ ],
127
+ "m": [
128
+ 12
129
+ ]
130
+ },
131
+ "gap": "2xl"
132
+ },
133
+ "style": {
134
+ "colorTheme": "light-accent"
135
+ },
136
+ "blocks": [
137
+ {
138
+ "id": "blk_3dbkw6ztga",
139
+ "type": "heading",
140
+ "v": 1,
141
+ "fields": {
142
+ "text": "How Fernwood grew",
143
+ "level": "h2",
144
+ "size": "auto",
145
+ "eyebrow": "Ten years on Division Street",
146
+ "subheading": "One room became two, and a weekly class became a small community."
147
+ },
148
+ "column": 0,
149
+ "variant": "plain"
150
+ },
151
+ {
152
+ "id": "blk_rz4wqajpd1",
153
+ "type": "timeline",
154
+ "v": 1,
155
+ "fields": {
156
+ "items": [
157
+ {
158
+ "date": "2016",
159
+ "title": "The first room",
160
+ "text": "Hana signs the lease on a former florist's shop and teaches every class herself."
161
+ },
162
+ {
163
+ "date": "2018",
164
+ "title": "Teachers join",
165
+ "text": "Theo and Iris arrive, and the schedule grows from eight classes to twenty."
166
+ },
167
+ {
168
+ "date": "2021",
169
+ "title": "Bodywork upstairs",
170
+ "text": "Two treatment rooms open above the studio for massage and yoga therapy."
171
+ },
172
+ {
173
+ "date": "Today",
174
+ "title": "Thirty classes a week",
175
+ "text": "Still twelve mats per class, still tea afterwards, still on Division Street."
176
+ }
177
+ ]
178
+ },
179
+ "column": 1,
180
+ "variant": "vertical"
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "id": "sec_4x3npfmy3x",
186
+ "preset": "team/circles@1",
187
+ "label": "Team in circles",
188
+ "layout": {
189
+ "mode": "stack",
190
+ "columns": {
191
+ "d": [
192
+ 12
193
+ ]
194
+ },
195
+ "gap": "xl"
196
+ },
197
+ "style": {
198
+ "colorTheme": "light"
199
+ },
200
+ "blocks": [
201
+ {
202
+ "id": "blk_njrmjg8wjy",
203
+ "type": "heading",
204
+ "v": 1,
205
+ "fields": {
206
+ "text": "Your teachers",
207
+ "level": "h2",
208
+ "size": "auto",
209
+ "eyebrow": "Meet us"
210
+ },
211
+ "variant": "plain",
212
+ "style": {
213
+ "align": {
214
+ "d": "center"
215
+ }
216
+ }
217
+ },
218
+ {
219
+ "id": "blk_tz63hmtpjx",
220
+ "type": "team",
221
+ "v": 1,
222
+ "fields": {
223
+ "people": [
224
+ {
225
+ "name": "Hana Moreau",
226
+ "role": "Founder · Slow flow",
227
+ "photo": {
228
+ "src": "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=560&q=80",
229
+ "alt": "Portrait of Hana Moreau",
230
+ "width": 560,
231
+ "height": 840
232
+ }
233
+ },
234
+ {
235
+ "name": "Theo Nakamura",
236
+ "role": "Foundations & strength",
237
+ "photo": {
238
+ "src": "https://images.unsplash.com/photo-1539571696357-5a69c17a67c6?w=560&q=80",
239
+ "alt": "Portrait of Theo Nakamura",
240
+ "width": 560,
241
+ "height": 840
242
+ }
243
+ },
244
+ {
245
+ "name": "Iris Okonjo",
246
+ "role": "Prenatal & yin",
247
+ "photo": {
248
+ "src": "https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=560&q=80",
249
+ "alt": "Portrait of Iris Okonjo",
250
+ "width": 560,
251
+ "height": 700
252
+ }
253
+ }
254
+ ],
255
+ "columns": "3"
256
+ },
257
+ "variant": "circles"
258
+ }
259
+ ],
260
+ "anchor": "teachers"
261
+ },
262
+ {
263
+ "id": "sec_76nvzbmcwc",
264
+ "preset": "gallery/carousel@1",
265
+ "label": "Scrolling carousel",
266
+ "layout": {
267
+ "mode": "stack",
268
+ "columns": {
269
+ "d": [
270
+ 12
271
+ ]
272
+ },
273
+ "gap": "lg"
274
+ },
275
+ "style": {
276
+ "colorTheme": "light-accent"
277
+ },
278
+ "blocks": [
279
+ {
280
+ "id": "blk_w75ch3ktfm",
281
+ "type": "heading",
282
+ "v": 1,
283
+ "fields": {
284
+ "text": "A look around",
285
+ "level": "h2",
286
+ "size": "auto",
287
+ "eyebrow": "The studio"
288
+ },
289
+ "variant": "plain"
290
+ },
291
+ {
292
+ "id": "blk_6dn326dabr",
293
+ "type": "gallery",
294
+ "v": 1,
295
+ "fields": {
296
+ "images": [
297
+ {
298
+ "image": {
299
+ "src": "https://images.unsplash.com/photo-1767605523281-8b54b3692078?w=840&q=80",
300
+ "alt": "Rolled mats in a woven basket by a plant",
301
+ "width": 840,
302
+ "height": 1260
303
+ },
304
+ "caption": "Mats and props for everyone"
305
+ },
306
+ {
307
+ "image": {
308
+ "src": "https://images.unsplash.com/photo-1509042239860-f550ce710b93?w=840&q=80",
309
+ "alt": "Two warm drinks on a small table with herbs",
310
+ "width": 840,
311
+ "height": 1260
312
+ },
313
+ "caption": "Tea on the window bench"
314
+ },
315
+ {
316
+ "image": {
317
+ "src": "https://images.unsplash.com/photo-1544161515-4ab6ce6db874?w=1560&q=80",
318
+ "alt": "A treatment room prepared for a massage",
319
+ "width": 1560,
320
+ "height": 1040
321
+ },
322
+ "caption": "The upstairs treatment room"
323
+ },
324
+ {
325
+ "image": {
326
+ "src": "https://images.unsplash.com/photo-1545205597-3d9d02c29597?w=1560&q=80",
327
+ "alt": "A small group practising tree pose on the beach",
328
+ "width": 1560,
329
+ "height": 1040
330
+ },
331
+ "caption": "Summer retreat at Manzanita"
332
+ }
333
+ ],
334
+ "aspect": "4:5",
335
+ "columns": "3",
336
+ "lightbox": true,
337
+ "showCaptions": true
338
+ },
339
+ "variant": "carousel"
340
+ }
341
+ ]
342
+ }
343
+ ]
344
+ }