@jxsuite/starters 0.34.0
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.
- package/index.ts +72 -0
- package/package.json +28 -0
- package/registry.json +178 -0
- package/sites/blog/components/bl-author-bio.json +82 -0
- package/sites/blog/components/bl-contact-form.json +114 -0
- package/sites/blog/components/bl-contact-info.json +54 -0
- package/sites/blog/components/bl-cta.json +62 -0
- package/sites/blog/components/bl-footer.json +145 -0
- package/sites/blog/components/bl-masthead.json +128 -0
- package/sites/blog/components/bl-nav.json +97 -0
- package/sites/blog/components/bl-newsletter-cta.json +120 -0
- package/sites/blog/components/bl-post-card.json +114 -0
- package/sites/blog/components/bl-post-list.json +17 -0
- package/sites/blog/components/bl-prose.json +74 -0
- package/sites/blog/components/bl-section-header.json +53 -0
- package/sites/blog/components/bl-tag-pill.json +26 -0
- package/sites/blog/content/posts/designing-for-slowness.md +25 -0
- package/sites/blog/content/posts/notes-from-a-long-walk.md +27 -0
- package/sites/blog/content/posts/the-city-as-a-text.md +27 -0
- package/sites/blog/content/posts/the-quiet-craft-of-revision.md +27 -0
- package/sites/blog/content/posts/tools-that-disappear.md +27 -0
- package/sites/blog/content/posts/what-i-learned-rereading.md +27 -0
- package/sites/blog/images.json +54 -0
- package/sites/blog/layouts/base.json +22 -0
- package/sites/blog/layouts/post.json +15 -0
- package/sites/blog/package.json +15 -0
- package/sites/blog/pages/[slug].json +148 -0
- package/sites/blog/pages/about.md +32 -0
- package/sites/blog/pages/contact.md +18 -0
- package/sites/blog/pages/index.md +48 -0
- package/sites/blog/project.json +107 -0
- package/sites/blog/public/favicon.svg +6 -0
- package/sites/blog/public/images/author.jpg +0 -0
- package/sites/blog/public/images/hero.jpg +0 -0
- package/sites/blog/public/images/post-1.jpg +0 -0
- package/sites/blog/public/images/post-2.jpg +0 -0
- package/sites/blog/public/images/post-3.jpg +0 -0
- package/sites/blog/public/images/post-4.jpg +0 -0
- package/sites/blog/public/images/post-5.jpg +0 -0
- package/sites/blog/public/images/post-6.jpg +0 -0
- package/sites/course/components/co-application.json +170 -0
- package/sites/course/components/co-cta.json +74 -0
- package/sites/course/components/co-curriculum-accordion.json +1476 -0
- package/sites/course/components/co-faq.json +524 -0
- package/sites/course/components/co-footer.json +145 -0
- package/sites/course/components/co-hero.json +139 -0
- package/sites/course/components/co-instructor-card.json +76 -0
- package/sites/course/components/co-module-card.json +93 -0
- package/sites/course/components/co-nav.json +119 -0
- package/sites/course/components/co-outcome-card.json +58 -0
- package/sites/course/components/co-pricing.json +133 -0
- package/sites/course/components/co-section-header.json +53 -0
- package/sites/course/components/co-stat.json +36 -0
- package/sites/course/components/co-testimonial-card.json +54 -0
- package/sites/course/content/modules/backend.md +8 -0
- package/sites/course/content/modules/capstone.md +8 -0
- package/sites/course/content/modules/foundations.md +8 -0
- package/sites/course/content/modules/frameworks.md +8 -0
- package/sites/course/content/modules/html-css.md +8 -0
- package/sites/course/content/modules/javascript.md +8 -0
- package/sites/course/images.json +24 -0
- package/sites/course/layouts/base.json +22 -0
- package/sites/course/package.json +15 -0
- package/sites/course/pages/about.md +44 -0
- package/sites/course/pages/curriculum.md +31 -0
- package/sites/course/pages/enroll.md +46 -0
- package/sites/course/pages/index.md +86 -0
- package/sites/course/project.json +102 -0
- package/sites/course/public/favicon.svg +5 -0
- package/sites/course/public/images/about.jpg +0 -0
- package/sites/course/public/images/hero.jpg +0 -0
- package/sites/course/public/images/instructor.jpg +0 -0
- package/sites/event/components/ev-agenda-tabs.json +542 -0
- package/sites/event/components/ev-cta.json +97 -0
- package/sites/event/components/ev-feature.json +58 -0
- package/sites/event/components/ev-footer.json +145 -0
- package/sites/event/components/ev-hero.json +196 -0
- package/sites/event/components/ev-nav.json +123 -0
- package/sites/event/components/ev-savedate.json +244 -0
- package/sites/event/components/ev-section-header.json +53 -0
- package/sites/event/components/ev-session-row.json +72 -0
- package/sites/event/components/ev-speaker-card.json +84 -0
- package/sites/event/components/ev-stat.json +42 -0
- package/sites/event/components/ev-ticket-card.json +196 -0
- package/sites/event/components/ev-venue.json +59 -0
- package/sites/event/content/sessions/01-opening-keynote.md +9 -0
- package/sites/event/content/sessions/02-designing-for-trust.md +9 -0
- package/sites/event/content/sessions/03-reactive-islands.md +9 -0
- package/sites/event/content/sessions/04-scaling-systems.md +9 -0
- package/sites/event/content/sessions/05-motion-and-meaning.md +9 -0
- package/sites/event/content/sessions/06-ship-it.md +9 -0
- package/sites/event/images.json +42 -0
- package/sites/event/layouts/base.json +22 -0
- package/sites/event/package.json +15 -0
- package/sites/event/pages/index.md +65 -0
- package/sites/event/pages/schedule.md +89 -0
- package/sites/event/pages/speakers.md +102 -0
- package/sites/event/pages/tickets.md +33 -0
- package/sites/event/project.json +103 -0
- package/sites/event/public/favicon.svg +5 -0
- package/sites/event/public/images/hero.jpg +0 -0
- package/sites/event/public/images/speaker-1.jpg +0 -0
- package/sites/event/public/images/speaker-2.jpg +0 -0
- package/sites/event/public/images/speaker-3.jpg +0 -0
- package/sites/event/public/images/speaker-4.jpg +0 -0
- package/sites/event/public/images/venue.jpg +0 -0
- package/sites/fitness-studio/components/fs-class-card.json +112 -0
- package/sites/fitness-studio/components/fs-class-grid.json +36 -0
- package/sites/fitness-studio/components/fs-cta.json +62 -0
- package/sites/fitness-studio/components/fs-feature.json +42 -0
- package/sites/fitness-studio/components/fs-footer.json +145 -0
- package/sites/fitness-studio/components/fs-hero.json +128 -0
- package/sites/fitness-studio/components/fs-hours.json +90 -0
- package/sites/fitness-studio/components/fs-instructor-card.json +73 -0
- package/sites/fitness-studio/components/fs-intro.json +59 -0
- package/sites/fitness-studio/components/fs-nav.json +97 -0
- package/sites/fitness-studio/components/fs-pricing-card.json +223 -0
- package/sites/fitness-studio/components/fs-pricing-table.json +458 -0
- package/sites/fitness-studio/components/fs-review.json +54 -0
- package/sites/fitness-studio/components/fs-section-header.json +53 -0
- package/sites/fitness-studio/content/classes/hiit-circuit.md +10 -0
- package/sites/fitness-studio/content/classes/pilates-core.md +10 -0
- package/sites/fitness-studio/content/classes/power-yoga.md +10 -0
- package/sites/fitness-studio/content/classes/restorative-yoga.md +10 -0
- package/sites/fitness-studio/content/classes/strength-tone.md +10 -0
- package/sites/fitness-studio/content/classes/vinyasa-flow.md +10 -0
- package/sites/fitness-studio/images.json +48 -0
- package/sites/fitness-studio/layouts/base.json +22 -0
- package/sites/fitness-studio/package.json +15 -0
- package/sites/fitness-studio/pages/classes.md +37 -0
- package/sites/fitness-studio/pages/contact.md +53 -0
- package/sites/fitness-studio/pages/index.md +112 -0
- package/sites/fitness-studio/pages/pricing.md +41 -0
- package/sites/fitness-studio/project.json +104 -0
- package/sites/fitness-studio/public/favicon.svg +5 -0
- package/sites/fitness-studio/public/images/about.jpg +0 -0
- package/sites/fitness-studio/public/images/class-1.jpg +0 -0
- package/sites/fitness-studio/public/images/class-2.jpg +0 -0
- package/sites/fitness-studio/public/images/class-3.jpg +0 -0
- package/sites/fitness-studio/public/images/hero.jpg +0 -0
- package/sites/fitness-studio/public/images/instructor-1.jpg +0 -0
- package/sites/fitness-studio/public/images/instructor-2.jpg +0 -0
- package/sites/home-services/components/hs-cta.json +123 -0
- package/sites/home-services/components/hs-feature.json +43 -0
- package/sites/home-services/components/hs-footer.json +157 -0
- package/sites/home-services/components/hs-gallery.json +53 -0
- package/sites/home-services/components/hs-hero.json +128 -0
- package/sites/home-services/components/hs-intro.json +59 -0
- package/sites/home-services/components/hs-nav.json +113 -0
- package/sites/home-services/components/hs-reservation.json +146 -0
- package/sites/home-services/components/hs-review.json +54 -0
- package/sites/home-services/components/hs-section-header.json +53 -0
- package/sites/home-services/components/hs-service-card.json +79 -0
- package/sites/home-services/components/hs-step.json +53 -0
- package/sites/home-services/components/hs-trust-bar.json +108 -0
- package/sites/home-services/content/services/ac-installation.md +8 -0
- package/sites/home-services/content/services/ac-repair.md +8 -0
- package/sites/home-services/content/services/furnace-installation.md +8 -0
- package/sites/home-services/content/services/furnace-repair.md +8 -0
- package/sites/home-services/content/services/heat-pumps.md +8 -0
- package/sites/home-services/content/services/maintenance-plans.md +8 -0
- package/sites/home-services/images.json +42 -0
- package/sites/home-services/layouts/base.json +22 -0
- package/sites/home-services/package.json +15 -0
- package/sites/home-services/pages/about.md +40 -0
- package/sites/home-services/pages/contact.md +53 -0
- package/sites/home-services/pages/index.md +87 -0
- package/sites/home-services/pages/services.md +39 -0
- package/sites/home-services/project.json +103 -0
- package/sites/home-services/public/favicon.svg +7 -0
- package/sites/home-services/public/images/about.jpg +0 -0
- package/sites/home-services/public/images/cta-bg.jpg +0 -0
- package/sites/home-services/public/images/gallery-1.jpg +0 -0
- package/sites/home-services/public/images/gallery-2.jpg +0 -0
- package/sites/home-services/public/images/gallery-3.jpg +0 -0
- package/sites/home-services/public/images/hero.jpg +0 -0
- package/sites/nonprofit/components/np-contact-form.json +134 -0
- package/sites/nonprofit/components/np-contact-info.json +153 -0
- package/sites/nonprofit/components/np-cta.json +128 -0
- package/sites/nonprofit/components/np-donate-tier.json +89 -0
- package/sites/nonprofit/components/np-feature.json +53 -0
- package/sites/nonprofit/components/np-footer.json +187 -0
- package/sites/nonprofit/components/np-hero.json +132 -0
- package/sites/nonprofit/components/np-intro.json +59 -0
- package/sites/nonprofit/components/np-nav.json +137 -0
- package/sites/nonprofit/components/np-program-card.json +69 -0
- package/sites/nonprofit/components/np-section-header.json +53 -0
- package/sites/nonprofit/components/np-stat.json +48 -0
- package/sites/nonprofit/components/np-step.json +55 -0
- package/sites/nonprofit/components/np-team-member.json +67 -0
- package/sites/nonprofit/components/np-testimonial.json +54 -0
- package/sites/nonprofit/content/programs/community-garden.md +8 -0
- package/sites/nonprofit/content/programs/food-pantry.md +8 -0
- package/sites/nonprofit/content/programs/housing-support.md +8 -0
- package/sites/nonprofit/content/programs/job-training.md +8 -0
- package/sites/nonprofit/content/programs/youth-mentoring.md +8 -0
- package/sites/nonprofit/images.json +54 -0
- package/sites/nonprofit/layouts/base.json +22 -0
- package/sites/nonprofit/package.json +15 -0
- package/sites/nonprofit/pages/about.md +54 -0
- package/sites/nonprofit/pages/contact.md +17 -0
- package/sites/nonprofit/pages/get-involved.md +63 -0
- package/sites/nonprofit/pages/index.md +87 -0
- package/sites/nonprofit/pages/programs.md +39 -0
- package/sites/nonprofit/project.json +103 -0
- package/sites/nonprofit/public/favicon.svg +5 -0
- package/sites/nonprofit/public/images/about.jpg +0 -0
- package/sites/nonprofit/public/images/cta-bg.jpg +0 -0
- package/sites/nonprofit/public/images/hero.jpg +0 -0
- package/sites/nonprofit/public/images/program-1.jpg +0 -0
- package/sites/nonprofit/public/images/program-2.jpg +0 -0
- package/sites/nonprofit/public/images/program-3.jpg +0 -0
- package/sites/nonprofit/public/images/program-4.jpg +0 -0
- package/sites/nonprofit/public/images/program-5.jpg +0 -0
- package/sites/portfolio/components/pv-about-split.json +59 -0
- package/sites/portfolio/components/pv-category-pill.json +24 -0
- package/sites/portfolio/components/pv-contact-form.json +137 -0
- package/sites/portfolio/components/pv-cta.json +64 -0
- package/sites/portfolio/components/pv-feature.json +48 -0
- package/sites/portfolio/components/pv-footer.json +145 -0
- package/sites/portfolio/components/pv-gallery.json +50 -0
- package/sites/portfolio/components/pv-hero.json +132 -0
- package/sites/portfolio/components/pv-nav.json +106 -0
- package/sites/portfolio/components/pv-project-card.json +103 -0
- package/sites/portfolio/components/pv-project-grid.json +22 -0
- package/sites/portfolio/components/pv-section-header.json +53 -0
- package/sites/portfolio/content/projects/architecture.md +12 -0
- package/sites/portfolio/content/projects/editorial.md +12 -0
- package/sites/portfolio/content/projects/food.md +12 -0
- package/sites/portfolio/content/projects/portraits.md +12 -0
- package/sites/portfolio/content/projects/travel.md +12 -0
- package/sites/portfolio/content/projects/weddings.md +12 -0
- package/sites/portfolio/images.json +54 -0
- package/sites/portfolio/layouts/base.json +22 -0
- package/sites/portfolio/package.json +15 -0
- package/sites/portfolio/pages/[slug].json +260 -0
- package/sites/portfolio/pages/about.md +40 -0
- package/sites/portfolio/pages/contact.md +42 -0
- package/sites/portfolio/pages/index.md +45 -0
- package/sites/portfolio/pages/work.md +39 -0
- package/sites/portfolio/project.json +105 -0
- package/sites/portfolio/public/favicon.svg +7 -0
- package/sites/portfolio/public/images/about.jpg +0 -0
- package/sites/portfolio/public/images/hero.jpg +0 -0
- package/sites/portfolio/public/images/project-1.jpg +0 -0
- package/sites/portfolio/public/images/project-2.jpg +0 -0
- package/sites/portfolio/public/images/project-3.jpg +0 -0
- package/sites/portfolio/public/images/project-4.jpg +0 -0
- package/sites/portfolio/public/images/project-5.jpg +0 -0
- package/sites/portfolio/public/images/project-6.jpg +0 -0
- package/sites/professional-firm/components/pf-article-header.json +79 -0
- package/sites/professional-firm/components/pf-contact-form.json +138 -0
- package/sites/professional-firm/components/pf-cta.json +62 -0
- package/sites/professional-firm/components/pf-feature.json +55 -0
- package/sites/professional-firm/components/pf-footer.json +172 -0
- package/sites/professional-firm/components/pf-hero.json +128 -0
- package/sites/professional-firm/components/pf-insight-card.json +99 -0
- package/sites/professional-firm/components/pf-intro.json +59 -0
- package/sites/professional-firm/components/pf-logo-bar.json +112 -0
- package/sites/professional-firm/components/pf-nav.json +110 -0
- package/sites/professional-firm/components/pf-section-header.json +53 -0
- package/sites/professional-firm/components/pf-service-card.json +77 -0
- package/sites/professional-firm/components/pf-stat.json +37 -0
- package/sites/professional-firm/components/pf-team-member.json +70 -0
- package/sites/professional-firm/content/insights/cash-flow-forecasting.md +15 -0
- package/sites/professional-firm/content/insights/choosing-business-entity.md +15 -0
- package/sites/professional-firm/content/insights/r-and-d-tax-credits.md +15 -0
- package/sites/professional-firm/content/insights/when-to-hire-cfo.md +15 -0
- package/sites/professional-firm/content/insights/year-end-tax-moves.md +15 -0
- package/sites/professional-firm/images.json +48 -0
- package/sites/professional-firm/layouts/article.json +48 -0
- package/sites/professional-firm/layouts/base.json +22 -0
- package/sites/professional-firm/package.json +15 -0
- package/sites/professional-firm/pages/contact.md +36 -0
- package/sites/professional-firm/pages/index.md +81 -0
- package/sites/professional-firm/pages/insights/[slug].json +118 -0
- package/sites/professional-firm/pages/insights.md +29 -0
- package/sites/professional-firm/pages/services.md +39 -0
- package/sites/professional-firm/pages/team.md +33 -0
- package/sites/professional-firm/project.json +104 -0
- package/sites/professional-firm/public/favicon.svg +5 -0
- package/sites/professional-firm/public/images/about.jpg +0 -0
- package/sites/professional-firm/public/images/hero.jpg +0 -0
- package/sites/professional-firm/public/images/insight-cover.jpg +0 -0
- package/sites/professional-firm/public/images/team-1.jpg +0 -0
- package/sites/professional-firm/public/images/team-2.jpg +0 -0
- package/sites/professional-firm/public/images/team-3.jpg +0 -0
- package/sites/professional-firm/public/images/team-4.jpg +0 -0
- package/sites/real-estate/components/re-agent-card.json +66 -0
- package/sites/real-estate/components/re-contact-form.json +132 -0
- package/sites/real-estate/components/re-cta.json +63 -0
- package/sites/real-estate/components/re-detail-row.json +26 -0
- package/sites/real-estate/components/re-feature.json +53 -0
- package/sites/real-estate/components/re-footer.json +151 -0
- package/sites/real-estate/components/re-hero.json +183 -0
- package/sites/real-estate/components/re-intro.json +59 -0
- package/sites/real-estate/components/re-listing-card.json +126 -0
- package/sites/real-estate/components/re-listings-filter.json +337 -0
- package/sites/real-estate/components/re-nav.json +117 -0
- package/sites/real-estate/components/re-section-header.json +53 -0
- package/sites/real-estate/components/re-stat.json +36 -0
- package/sites/real-estate/components/re-step.json +55 -0
- package/sites/real-estate/components/re-testimonial.json +54 -0
- package/sites/real-estate/content/listings.csv +7 -0
- package/sites/real-estate/images.json +84 -0
- package/sites/real-estate/layouts/base.json +22 -0
- package/sites/real-estate/package.json +15 -0
- package/sites/real-estate/pages/[slug].json +327 -0
- package/sites/real-estate/pages/about.md +42 -0
- package/sites/real-estate/pages/contact.md +54 -0
- package/sites/real-estate/pages/index.md +77 -0
- package/sites/real-estate/pages/listings.md +13 -0
- package/sites/real-estate/project.json +109 -0
- package/sites/real-estate/public/favicon.svg +5 -0
- package/sites/real-estate/public/images/about.jpg +0 -0
- package/sites/real-estate/public/images/agent-1.jpg +0 -0
- package/sites/real-estate/public/images/agent-2.jpg +0 -0
- package/sites/real-estate/public/images/agent-3.jpg +0 -0
- package/sites/real-estate/public/images/hero.jpg +0 -0
- package/sites/real-estate/public/images/interior-1.jpg +0 -0
- package/sites/real-estate/public/images/interior-2.jpg +0 -0
- package/sites/real-estate/public/images/listing-1.jpg +0 -0
- package/sites/real-estate/public/images/listing-2.jpg +0 -0
- package/sites/real-estate/public/images/listing-3.jpg +0 -0
- package/sites/real-estate/public/images/listing-4.jpg +0 -0
- package/sites/real-estate/public/images/listing-5.jpg +0 -0
- package/sites/real-estate/public/images/listing-6.jpg +0 -0
- package/sites/restaurant/components/bit-cta.json +62 -0
- package/sites/restaurant/components/bit-feature.json +42 -0
- package/sites/restaurant/components/bit-footer.json +145 -0
- package/sites/restaurant/components/bit-gallery.json +65 -0
- package/sites/restaurant/components/bit-hero.json +128 -0
- package/sites/restaurant/components/bit-hours.json +90 -0
- package/sites/restaurant/components/bit-intro.json +59 -0
- package/sites/restaurant/components/bit-menu-group.json +29 -0
- package/sites/restaurant/components/bit-menu-item.json +57 -0
- package/sites/restaurant/components/bit-nav.json +97 -0
- package/sites/restaurant/components/bit-reservation.json +134 -0
- package/sites/restaurant/components/bit-review.json +54 -0
- package/sites/restaurant/components/bit-section-header.json +53 -0
- package/sites/restaurant/content/menu/bruschetta.md +9 -0
- package/sites/restaurant/content/menu/cappuccino.md +9 -0
- package/sites/restaurant/content/menu/chocolate-tart.md +9 -0
- package/sites/restaurant/content/menu/house-coffee.md +9 -0
- package/sites/restaurant/content/menu/mushroom-tagliatelle.md +9 -0
- package/sites/restaurant/content/menu/roast-chicken.md +9 -0
- package/sites/restaurant/content/menu/seared-salmon.md +9 -0
- package/sites/restaurant/content/menu/squash-soup.md +9 -0
- package/sites/restaurant/content/menu/tiramisu.md +9 -0
- package/sites/restaurant/images.json +66 -0
- package/sites/restaurant/layouts/base.json +22 -0
- package/sites/restaurant/package.json +15 -0
- package/sites/restaurant/pages/about.md +30 -0
- package/sites/restaurant/pages/contact.md +28 -0
- package/sites/restaurant/pages/index.md +63 -0
- package/sites/restaurant/pages/menu.md +80 -0
- package/sites/restaurant/project.json +105 -0
- package/sites/restaurant/public/favicon.svg +7 -0
- package/sites/restaurant/public/images/about.jpg +0 -0
- package/sites/restaurant/public/images/dish-desserts.jpg +0 -0
- package/sites/restaurant/public/images/dish-mains.jpg +0 -0
- package/sites/restaurant/public/images/dish-starters.jpg +0 -0
- package/sites/restaurant/public/images/gallery-1.jpg +0 -0
- package/sites/restaurant/public/images/gallery-2.jpg +0 -0
- package/sites/restaurant/public/images/gallery-3.jpg +0 -0
- package/sites/restaurant/public/images/gallery-4.jpg +0 -0
- package/sites/restaurant/public/images/hero.jpg +0 -0
- package/sites/restaurant/public/images/intro.jpg +0 -0
- package/sites/saas/components/sa-check-item.json +40 -0
- package/sites/saas/components/sa-contact-form.json +153 -0
- package/sites/saas/components/sa-cta.json +102 -0
- package/sites/saas/components/sa-faq.json +413 -0
- package/sites/saas/components/sa-feature-card.json +59 -0
- package/sites/saas/components/sa-feature-split.json +60 -0
- package/sites/saas/components/sa-footer.json +145 -0
- package/sites/saas/components/sa-hero.json +160 -0
- package/sites/saas/components/sa-logo-cloud.json +119 -0
- package/sites/saas/components/sa-nav.json +130 -0
- package/sites/saas/components/sa-pricing.json +427 -0
- package/sites/saas/components/sa-section-header.json +55 -0
- package/sites/saas/components/sa-stat.json +40 -0
- package/sites/saas/components/sa-testimonial-card.json +57 -0
- package/sites/saas/content/testimonials/marcus-bell.md +8 -0
- package/sites/saas/content/testimonials/nadia-okafor.md +8 -0
- package/sites/saas/content/testimonials/priya-raman.md +8 -0
- package/sites/saas/content/testimonials/theo-lindqvist.md +8 -0
- package/sites/saas/images.json +30 -0
- package/sites/saas/layouts/base.json +22 -0
- package/sites/saas/package.json +15 -0
- package/sites/saas/pages/contact.md +39 -0
- package/sites/saas/pages/features.md +87 -0
- package/sites/saas/pages/index.md +122 -0
- package/sites/saas/pages/pricing.md +39 -0
- package/sites/saas/project.json +134 -0
- package/sites/saas/public/favicon.svg +5 -0
- package/sites/saas/public/images/feature-1.jpg +0 -0
- package/sites/saas/public/images/feature-2.jpg +0 -0
- package/sites/saas/public/images/feature-3.jpg +0 -0
- package/sites/saas/public/images/hero.jpg +0 -0
- package/sites/shop/components/shp-badge.json +18 -0
- package/sites/shop/components/shp-contact-form.json +156 -0
- package/sites/shop/components/shp-cta.json +63 -0
- package/sites/shop/components/shp-feature.json +55 -0
- package/sites/shop/components/shp-footer.json +145 -0
- package/sites/shop/components/shp-hero.json +128 -0
- package/sites/shop/components/shp-intro.json +59 -0
- package/sites/shop/components/shp-nav.json +104 -0
- package/sites/shop/components/shp-product-card.json +131 -0
- package/sites/shop/components/shp-product-filter.json +184 -0
- package/sites/shop/components/shp-review.json +54 -0
- package/sites/shop/components/shp-section-header.json +53 -0
- package/sites/shop/components/shp-service.json +83 -0
- package/sites/shop/components/shp-stat.json +37 -0
- package/sites/shop/components/shp-visit-info.json +132 -0
- package/sites/shop/content/product/aero-road-helmet.md +10 -0
- package/sites/shop/content/product/apex-carbon-road.md +10 -0
- package/sites/shop/content/product/backroad-gravel-adv.md +10 -0
- package/sites/shop/content/product/boulder-enduro.md +10 -0
- package/sites/shop/content/product/rambler-kids-20.md +10 -0
- package/sites/shop/content/product/summit-trail-29er.md +10 -0
- package/sites/shop/content/product/trailhead-pannier-set.md +10 -0
- package/sites/shop/content/product/velocity-alloy-road.md +10 -0
- package/sites/shop/images.json +54 -0
- package/sites/shop/layouts/base.json +22 -0
- package/sites/shop/package.json +15 -0
- package/sites/shop/pages/about.md +42 -0
- package/sites/shop/pages/contact.md +15 -0
- package/sites/shop/pages/index.md +82 -0
- package/sites/shop/pages/products/[sku].json +191 -0
- package/sites/shop/pages/products.md +29 -0
- package/sites/shop/project.json +105 -0
- package/sites/shop/public/favicon.svg +6 -0
- package/sites/shop/public/images/about.jpg +0 -0
- package/sites/shop/public/images/hero.jpg +0 -0
- package/sites/shop/public/images/product-1.jpg +0 -0
- package/sites/shop/public/images/product-2.jpg +0 -0
- package/sites/shop/public/images/product-3.jpg +0 -0
- package/sites/shop/public/images/product-4.jpg +0 -0
- package/sites/shop/public/images/product-5.jpg +0 -0
- package/sites/shop/public/images/product-6.jpg +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tagName": "co-stat",
|
|
3
|
+
"state": {
|
|
4
|
+
"value": "",
|
|
5
|
+
"label": ""
|
|
6
|
+
},
|
|
7
|
+
"style": {
|
|
8
|
+
"display": "block",
|
|
9
|
+
"textAlign": "center",
|
|
10
|
+
"padding": "0.5rem"
|
|
11
|
+
},
|
|
12
|
+
"children": [
|
|
13
|
+
{
|
|
14
|
+
"tagName": "div",
|
|
15
|
+
"style": {
|
|
16
|
+
"fontFamily": "var(--font-heading)",
|
|
17
|
+
"fontSize": "clamp(2rem, 4vw, 2.75rem)",
|
|
18
|
+
"fontWeight": "800",
|
|
19
|
+
"lineHeight": "1",
|
|
20
|
+
"color": "var(--color-primary)",
|
|
21
|
+
"letterSpacing": "-0.02em"
|
|
22
|
+
},
|
|
23
|
+
"textContent": "${state.value}"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"tagName": "div",
|
|
27
|
+
"style": {
|
|
28
|
+
"marginTop": "0.5rem",
|
|
29
|
+
"fontSize": "0.9rem",
|
|
30
|
+
"fontWeight": "500",
|
|
31
|
+
"color": "var(--color-text-muted)"
|
|
32
|
+
},
|
|
33
|
+
"textContent": "${state.label}"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tagName": "co-testimonial-card",
|
|
3
|
+
"state": {
|
|
4
|
+
"quote": "",
|
|
5
|
+
"author": "",
|
|
6
|
+
"role": ""
|
|
7
|
+
},
|
|
8
|
+
"style": {
|
|
9
|
+
"display": "block",
|
|
10
|
+
"padding": "1.75rem",
|
|
11
|
+
"backgroundColor": "var(--color-bg-white)",
|
|
12
|
+
"border": "1px solid var(--color-border)",
|
|
13
|
+
"borderRadius": "var(--radius)",
|
|
14
|
+
"boxShadow": "0 4px 20px rgba(15,23,42,0.05)"
|
|
15
|
+
},
|
|
16
|
+
"children": [
|
|
17
|
+
{
|
|
18
|
+
"tagName": "div",
|
|
19
|
+
"style": {
|
|
20
|
+
"color": "#f59e0b",
|
|
21
|
+
"fontSize": "1.1rem",
|
|
22
|
+
"marginBottom": "0.75rem",
|
|
23
|
+
"letterSpacing": "0.1em"
|
|
24
|
+
},
|
|
25
|
+
"textContent": "★★★★★"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"tagName": "p",
|
|
29
|
+
"style": {
|
|
30
|
+
"fontFamily": "var(--font-heading)",
|
|
31
|
+
"fontSize": "1.1rem",
|
|
32
|
+
"lineHeight": "1.6",
|
|
33
|
+
"fontWeight": "500",
|
|
34
|
+
"margin": "0 0 1.25rem"
|
|
35
|
+
},
|
|
36
|
+
"textContent": "“${state.quote}”"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"tagName": "div",
|
|
40
|
+
"children": [
|
|
41
|
+
{
|
|
42
|
+
"tagName": "div",
|
|
43
|
+
"style": { "fontWeight": "700" },
|
|
44
|
+
"textContent": "${state.author}"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"tagName": "div",
|
|
48
|
+
"style": { "fontSize": "0.9rem", "color": "var(--color-text-muted)" },
|
|
49
|
+
"textContent": "${state.role}"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Backend & Databases"
|
|
3
|
+
summary: "REST APIs, servers, SQL and relational data modeling, authentication, and deploying to the cloud."
|
|
4
|
+
duration: "2 weeks"
|
|
5
|
+
order: 5
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Round out your stack. You'll design a relational schema, build a REST API with authentication, connect it to a database, and ship it to production — so your frontend has a real backend to talk to.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Capstone Project"
|
|
3
|
+
summary: "Ship a full-stack application end to end — planning, building, code review, and a demo-day presentation."
|
|
4
|
+
duration: "3 weeks"
|
|
5
|
+
order: 6
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Bring it all together. With a mentor at your side, you'll scope, build, and deploy a full-stack app of your own — then present it on demo day. You'll graduate with a portfolio piece employers actually want to see.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Foundations of the Web"
|
|
3
|
+
summary: "How the web actually works — the request/response cycle, the command line, Git, and a modern editor setup you'll use every day."
|
|
4
|
+
duration: "1 week"
|
|
5
|
+
order: 1
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You'll leave week one comfortable in the terminal, versioning your work with Git and GitHub, and understanding exactly what happens between typing a URL and seeing a page. No prior experience assumed.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Frontend Frameworks"
|
|
3
|
+
summary: "Component thinking, state management, routing, and data fetching with a modern reactive framework."
|
|
4
|
+
duration: "3 weeks"
|
|
5
|
+
order: 4
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Move from vanilla JavaScript to component-driven apps. You'll learn reactive state, props, routing, and API integration by building a multi-page application with authentication and a polished, responsive UI.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "HTML & CSS"
|
|
3
|
+
summary: "Semantic markup, the box model, Flexbox and Grid, responsive design, and accessible, good-looking interfaces from scratch."
|
|
4
|
+
duration: "2 weeks"
|
|
5
|
+
order: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Build real, responsive layouts by hand. You'll learn semantic HTML, modern CSS layout, custom properties, and the accessibility fundamentals that make your work usable by everyone — culminating in a pixel-faithful landing page.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "JavaScript Programming"
|
|
3
|
+
summary: "Core language, the DOM, events, async/await, fetch, and modules — the logic layer behind every interactive interface."
|
|
4
|
+
duration: "3 weeks"
|
|
5
|
+
order: 3
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The heart of the program. You'll master variables, functions, arrays, objects, and control flow, then wire up the DOM, handle events, and talk to live APIs with async JavaScript. Weekly katas keep the fundamentals sharp.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"site": "course",
|
|
3
|
+
"thumbnail": "hero",
|
|
4
|
+
"images": [
|
|
5
|
+
{
|
|
6
|
+
"role": "hero",
|
|
7
|
+
"query": "student learning laptop online course",
|
|
8
|
+
"orientation": "landscape",
|
|
9
|
+
"photoId": 6266990
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"role": "instructor",
|
|
13
|
+
"query": "teacher instructor portrait",
|
|
14
|
+
"orientation": "portrait",
|
|
15
|
+
"photoId": 8423069
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"role": "about",
|
|
19
|
+
"query": "people studying coding",
|
|
20
|
+
"orientation": "landscape",
|
|
21
|
+
"photoId": 7988079
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tagName": "div",
|
|
3
|
+
"$elements": [
|
|
4
|
+
{ "$ref": "../components/co-nav.json" },
|
|
5
|
+
{ "$ref": "../components/co-footer.json" }
|
|
6
|
+
],
|
|
7
|
+
"style": {
|
|
8
|
+
"minHeight": "100vh",
|
|
9
|
+
"display": "flex",
|
|
10
|
+
"flexDirection": "column",
|
|
11
|
+
"backgroundColor": "var(--color-bg-white)"
|
|
12
|
+
},
|
|
13
|
+
"children": [
|
|
14
|
+
{ "tagName": "co-nav" },
|
|
15
|
+
{
|
|
16
|
+
"tagName": "main",
|
|
17
|
+
"style": { "flex": "1" },
|
|
18
|
+
"children": [{ "tagName": "slot" }]
|
|
19
|
+
},
|
|
20
|
+
{ "tagName": "co-footer" }
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "craft-code-academy",
|
|
3
|
+
"private": true,
|
|
4
|
+
"description": "A project-based web development bootcamp — six guided modules, live mentorship, and a portfolio-ready capstone.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "jx build",
|
|
9
|
+
"dev": "jx dev"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"@jxsuite/compiler": "^0.19.0",
|
|
13
|
+
"@jxsuite/runtime": "^0.19.0"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "About — Craft & Code Academy"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
:::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
6
|
+
::co-section-header{props.eyebrow="Our approach" props.heading="We teach the way people actually learn" props.subheading="By building real things, with real support, in a real community."}
|
|
7
|
+
:::::
|
|
8
|
+
|
|
9
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
10
|
+
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="1fr 1fr" style.gap="clamp(2rem, 5vw, 4rem)" style.alignItems="center" style.--md.gridTemplateColumns="1fr"}
|
|
11
|
+
:::div
|
|
12
|
+
::img{src="/images/about.jpg" alt="Students studying code together" loading="lazy" style.width="100%" style.height="auto" style.borderRadius="var(--radius)" style.display="block" style.boxShadow="0 12px 40px rgba(15,23,42,0.12)"}
|
|
13
|
+
:::
|
|
14
|
+
|
|
15
|
+
:::div{style.fontSize="1.08rem" style.lineHeight="1.8"}
|
|
16
|
+
|
|
17
|
+
### Built by engineers who wanted a better way in
|
|
18
|
+
|
|
19
|
+
Craft & Code Academy started with a frustration: most people who want to code get stuck in a maze of half-finished tutorials. So we built the program we wish we'd had — project-based from day one, with mentors who've shipped real software and a cohort that learns together.
|
|
20
|
+
|
|
21
|
+
We keep classes small on purpose. When you get stuck, someone is there. When you ship, someone celebrates. That's how people actually make it from curious to career.
|
|
22
|
+
:::
|
|
23
|
+
::::
|
|
24
|
+
:::::
|
|
25
|
+
|
|
26
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
27
|
+
::co-section-header{props.eyebrow="What we stand for" props.heading="Three things we won't compromise on"}
|
|
28
|
+
|
|
29
|
+
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
|
|
30
|
+
::co-outcome-card{props.icon="🛠️" props.title="Learn by building" props.text="Every concept is anchored to a project. You leave each module with something real to show."}
|
|
31
|
+
|
|
32
|
+
::co-outcome-card{props.icon="🤝" props.title="Never stuck alone" props.text="Live mentorship and small-group code review mean help is always a moment away."}
|
|
33
|
+
|
|
34
|
+
::co-outcome-card{props.icon="🎯" props.title="Job-focused" props.text="We reverse-engineer what junior roles actually require and teach straight to it."}
|
|
35
|
+
::::
|
|
36
|
+
:::::
|
|
37
|
+
|
|
38
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
39
|
+
::co-section-header{props.eyebrow="Your instructor" props.heading="Meet Maya"}
|
|
40
|
+
|
|
41
|
+
::co-instructor-card{props.name="Maya Okonkwo" props.role="Lead Instructor · ex-Staff Engineer" props.bio="Maya spent a decade building products at startups and a large fintech before teaching full-time. She's mentored hundreds of career-changers and believes anyone can learn to code with the right structure and support." props.image="/images/instructor.jpg"}
|
|
42
|
+
:::::
|
|
43
|
+
|
|
44
|
+
::co-cta{props.heading="Come build with us." props.text="If you're ready to put in the work, we'll make sure you're never doing it alone." props.cta="Enroll Now" props.ctaHref="/enroll/"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Curriculum — Craft & Code Academy"
|
|
3
|
+
state:
|
|
4
|
+
modules:
|
|
5
|
+
$prototype: ContentCollection
|
|
6
|
+
$src: "@jxsuite/parser/ContentCollection.class.json"
|
|
7
|
+
contentType: modules
|
|
8
|
+
sort:
|
|
9
|
+
field: order
|
|
10
|
+
order: asc
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
:::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
14
|
+
::co-section-header{props.eyebrow="14 weeks · 6 modules" props.heading="The full curriculum" props.subheading="A structured path from your first line of code to a deployed, full-stack application — with mentorship at every step."}
|
|
15
|
+
:::::
|
|
16
|
+
|
|
17
|
+
:::::section{style.maxWidth="var(--max-width-narrow)" style.margin="0 auto" style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem"}
|
|
18
|
+
::::div{style.display="grid" style.gap="1rem"}
|
|
19
|
+
:::Array{items.ref="#/state/modules"}
|
|
20
|
+
::co-module-card{props.order="${item.data.order}" props.title="${item.data.title}" props.summary="${item.data.summary}" props.duration="${item.data.duration}"}
|
|
21
|
+
:::
|
|
22
|
+
::::
|
|
23
|
+
:::::
|
|
24
|
+
|
|
25
|
+
:::::section{style.padding="clamp(3rem, 8vw, 5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
26
|
+
::co-section-header{props.eyebrow="Explore interactively" props.heading="Open a module to see its lessons"}
|
|
27
|
+
|
|
28
|
+
::co-curriculum-accordion
|
|
29
|
+
:::::
|
|
30
|
+
|
|
31
|
+
::co-cta{props.heading="This could be your next 14 weeks." props.text="Every module builds toward a capstone you'll be proud to show. Reserve your seat in the next cohort." props.cta="Enroll Now" props.ctaHref="/enroll/"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Enroll — Craft & Code Academy"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
:::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
6
|
+
::co-section-header{props.eyebrow="Admissions open" props.heading="Reserve your seat" props.subheading="One transparent price, everything included, and flexible payment plans. The fall cohort is limited to 24 students."}
|
|
7
|
+
:::::
|
|
8
|
+
|
|
9
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
10
|
+
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="1fr 1fr" style.gap="clamp(2rem, 5vw, 3.5rem)" style.alignItems="center" style.--md.gridTemplateColumns="1fr"}
|
|
11
|
+
:::div{style.fontSize="1.08rem" style.lineHeight="1.8"}
|
|
12
|
+
|
|
13
|
+
### Everything you need to get hired
|
|
14
|
+
|
|
15
|
+
Your tuition covers 14 weeks of live instruction, one-on-one mentorship, small-group code review, and career support that continues after you graduate. No upsells, no surprise fees.
|
|
16
|
+
|
|
17
|
+
Not sure if it's the right fit? Book a call with our admissions team and we'll walk you through the program honestly.
|
|
18
|
+
|
|
19
|
+
- **✓** Live, cohort-based — not self-paced videos
|
|
20
|
+
- **✓** Six monthly payment plans available
|
|
21
|
+
- **✓** Need-based scholarships for eligible students
|
|
22
|
+
- **✓** 7-day full refund, no questions asked
|
|
23
|
+
:::
|
|
24
|
+
|
|
25
|
+
:::co-pricing{props.badge="Fall cohort · 24 seats" props.plan="Full Program" props.price="$8,900" props.period="or 6 monthly payments" props.description="14 weeks of live instruction, mentorship, and career support — end to end." props.cta="Apply Now" props.ctaHref="#apply" props.note="7-day full refund · Scholarships available"}
|
|
26
|
+
|
|
27
|
+
- Six project-based modules
|
|
28
|
+
- Live mentorship & small-group code review
|
|
29
|
+
- Deployed full-stack capstone project
|
|
30
|
+
- Career coaching & interview prep
|
|
31
|
+
- Lifetime access to course materials
|
|
32
|
+
:::
|
|
33
|
+
::::
|
|
34
|
+
:::::
|
|
35
|
+
|
|
36
|
+
:::::section{id="apply" style.maxWidth="var(--max-width-narrow)" style.margin="0 auto" style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem"}
|
|
37
|
+
::co-section-header{props.eyebrow="Apply" props.heading="Start your application" props.subheading="Tell us a little about yourself and admissions will be in touch within two business days."}
|
|
38
|
+
|
|
39
|
+
::co-application
|
|
40
|
+
:::::
|
|
41
|
+
|
|
42
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
43
|
+
::co-section-header{props.eyebrow="FAQ" props.heading="Before you apply"}
|
|
44
|
+
|
|
45
|
+
::co-faq
|
|
46
|
+
:::::
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Craft & Code Academy — Become a web developer in 14 weeks"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
::co-hero{props.eyebrow="Online web development bootcamp" props.heading="Become a web developer in 14 weeks." props.subheading="Craft & Code Academy is a project-based bootcamp with live mentorship. Six guided modules take you from your first line of HTML to a deployed, full-stack capstone." props.cta="Enroll Now" props.ctaHref="/enroll/" props.cta2="Explore the Curriculum" props.cta2Href="/curriculum/" props.note="Next cohort starts September 8 · Limited to 24 seats" props.bg="/images/hero.jpg"}
|
|
6
|
+
|
|
7
|
+
:::::section{style.padding="clamp(2.5rem, 5vw, 3.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
8
|
+
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="1.5rem" style.--sm.gridTemplateColumns="repeat(2, 1fr)"}
|
|
9
|
+
::co-stat{props.value="1,200+" props.label="Graduates hired"}
|
|
10
|
+
|
|
11
|
+
::co-stat{props.value="94%" props.label="Land a dev role"}
|
|
12
|
+
|
|
13
|
+
::co-stat{props.value="14 wks" props.label="Guided program"}
|
|
14
|
+
|
|
15
|
+
::co-stat{props.value="4.9/5" props.label="Student rating"}
|
|
16
|
+
::::
|
|
17
|
+
:::::
|
|
18
|
+
|
|
19
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
20
|
+
::co-section-header{props.eyebrow="What you'll learn" props.heading="Skills that get you hired" props.subheading="Every module is hands-on. You don't just watch — you build, review, and ship."}
|
|
21
|
+
|
|
22
|
+
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
|
|
23
|
+
::co-outcome-card{props.icon="🧩" props.title="Think like an engineer" props.text="Break problems down, reason about code, and debug with confidence — the durable skills behind every framework."}
|
|
24
|
+
|
|
25
|
+
::co-outcome-card{props.icon="🎨" props.title="Build real interfaces" props.text="Responsive, accessible UIs with semantic HTML, modern CSS, and component-driven JavaScript."}
|
|
26
|
+
|
|
27
|
+
::co-outcome-card{props.icon="⚡" props.title="Ship interactive apps" props.text="Wire up state, events, and live APIs to create apps that respond instantly to your users."}
|
|
28
|
+
|
|
29
|
+
::co-outcome-card{props.icon="🗄️" props.title="Work full-stack" props.text="Design REST APIs, model relational data, and connect a real backend to your frontend."}
|
|
30
|
+
|
|
31
|
+
::co-outcome-card{props.icon="🚀" props.title="Deploy to production" props.text="Take projects from your laptop to the cloud with Git, CI, and modern hosting."}
|
|
32
|
+
|
|
33
|
+
::co-outcome-card{props.icon="💼" props.title="Graduate job-ready" props.text="Leave with a portfolio, a full-stack capstone, and the interview prep to back it up."}
|
|
34
|
+
::::
|
|
35
|
+
:::::
|
|
36
|
+
|
|
37
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
38
|
+
::co-section-header{props.eyebrow="The curriculum" props.heading="Six modules, one clear path" props.subheading="Click any module to see the lessons inside. It all builds toward your capstone."}
|
|
39
|
+
|
|
40
|
+
::co-curriculum-accordion
|
|
41
|
+
|
|
42
|
+
::::div{style.textAlign="center" style.marginTop="2rem"}
|
|
43
|
+
:::a{href="/curriculum/" style.display="inline-block" style.color="var(--color-primary)" style.fontWeight="700" style.textDecoration="none" style.fontSize="1.05rem"}
|
|
44
|
+
See the full curriculum →
|
|
45
|
+
:::
|
|
46
|
+
::::
|
|
47
|
+
:::::
|
|
48
|
+
|
|
49
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
50
|
+
::co-section-header{props.eyebrow="Your instructor" props.heading="Learn from someone who's shipped"}
|
|
51
|
+
|
|
52
|
+
::co-instructor-card{props.name="Maya Okonkwo" props.role="Lead Instructor · ex-Staff Engineer" props.bio="Maya spent a decade building products at startups and a large fintech before teaching full-time. She's mentored hundreds of career-changers and believes anyone can learn to code with the right structure and support." props.image="/images/instructor.jpg"}
|
|
53
|
+
:::::
|
|
54
|
+
|
|
55
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
56
|
+
::co-section-header{props.eyebrow="Student stories" props.heading="From first commit to first job"}
|
|
57
|
+
|
|
58
|
+
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
|
|
59
|
+
::co-testimonial-card{props.quote="I started with zero experience and ended with a job offer. The mentorship made all the difference when I got stuck." props.author="Priya S." props.role="Frontend Developer, now at a health-tech startup"}
|
|
60
|
+
|
|
61
|
+
::co-testimonial-card{props.quote="The capstone is the real deal. I still show that project in interviews and people are genuinely impressed." props.author="Marcus T." props.role="Junior Full-Stack Developer"}
|
|
62
|
+
|
|
63
|
+
::co-testimonial-card{props.quote="Project-based from day one. I learned more in 14 weeks here than in a year of tutorials on my own." props.author="Elena R." props.role="Career-changer, ex-teacher"}
|
|
64
|
+
::::
|
|
65
|
+
:::::
|
|
66
|
+
|
|
67
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
68
|
+
::co-section-header{props.eyebrow="Enroll" props.heading="One program. Everything included." props.subheading="No hidden fees. Flexible payment plans available."}
|
|
69
|
+
|
|
70
|
+
::::co-pricing{props.badge="Fall cohort · 24 seats" props.plan="Full Program" props.price="$8,900" props.period="or 6 monthly payments" props.description="14 weeks of live instruction, mentorship, and career support — end to end." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="7-day full refund · Scholarships available"}
|
|
71
|
+
|
|
72
|
+
- Six project-based modules
|
|
73
|
+
- Live mentorship & small-group code review
|
|
74
|
+
- Deployed full-stack capstone project
|
|
75
|
+
- Career coaching & interview prep
|
|
76
|
+
- Lifetime access to course materials
|
|
77
|
+
::::
|
|
78
|
+
:::::
|
|
79
|
+
|
|
80
|
+
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
81
|
+
::co-section-header{props.eyebrow="FAQ" props.heading="Questions, answered"}
|
|
82
|
+
|
|
83
|
+
::co-faq
|
|
84
|
+
:::::
|
|
85
|
+
|
|
86
|
+
::co-cta{props.heading="Ready to change careers?" props.text="Join the next cohort and go from curious to job-ready in 14 weeks. Seats are limited." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="Next cohort starts September 8"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Craft & Code Academy",
|
|
3
|
+
"url": "https://example.com",
|
|
4
|
+
"defaults": {
|
|
5
|
+
"layout": "./layouts/base.json",
|
|
6
|
+
"lang": "en"
|
|
7
|
+
},
|
|
8
|
+
"$head": [
|
|
9
|
+
{
|
|
10
|
+
"tagName": "meta",
|
|
11
|
+
"attributes": { "name": "viewport", "content": "width=device-width, initial-scale=1" }
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"tagName": "meta",
|
|
15
|
+
"attributes": {
|
|
16
|
+
"name": "description",
|
|
17
|
+
"content": "Craft & Code Academy is a project-based web development bootcamp — six guided modules, live mentorship, and a portfolio-ready capstone."
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"tagName": "link",
|
|
22
|
+
"attributes": { "rel": "icon", "href": "/favicon.svg" }
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"tagName": "link",
|
|
26
|
+
"attributes": { "rel": "preconnect", "href": "https://fonts.googleapis.com" }
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"tagName": "link",
|
|
30
|
+
"attributes": { "rel": "preconnect", "href": "https://fonts.gstatic.com", "crossorigin": "" }
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"tagName": "link",
|
|
34
|
+
"attributes": {
|
|
35
|
+
"rel": "stylesheet",
|
|
36
|
+
"href": "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"$media": {
|
|
41
|
+
"--": "1200px",
|
|
42
|
+
"--lg": "(max-width: 1024px)",
|
|
43
|
+
"--md": "(max-width: 768px)",
|
|
44
|
+
"--sm": "(max-width: 640px)"
|
|
45
|
+
},
|
|
46
|
+
"style": {
|
|
47
|
+
"--color-primary": "#2563eb",
|
|
48
|
+
"--color-primary-hover": "#1d4ed8",
|
|
49
|
+
"--color-ink": "#0f172a",
|
|
50
|
+
"--color-bg-dark": "#0f172a",
|
|
51
|
+
"--color-bg-cream": "#f4f6fb",
|
|
52
|
+
"--color-bg-white": "#ffffff",
|
|
53
|
+
"--color-text-primary": "#0f172a",
|
|
54
|
+
"--color-text-white": "#ffffff",
|
|
55
|
+
"--color-text-muted": "#64748b",
|
|
56
|
+
"--color-border": "#e2e8f0",
|
|
57
|
+
"--color-accent": "#2563eb",
|
|
58
|
+
"--font-heading": "'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
59
|
+
"--max-width": "1200px",
|
|
60
|
+
"--max-width-narrow": "820px",
|
|
61
|
+
"--radius": "0.75rem",
|
|
62
|
+
"margin": "0",
|
|
63
|
+
"padding": "0",
|
|
64
|
+
"fontFamily": "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
65
|
+
"lineHeight": "1.6",
|
|
66
|
+
"color": "var(--color-text-primary)",
|
|
67
|
+
"backgroundColor": "var(--color-bg-white)"
|
|
68
|
+
},
|
|
69
|
+
"imports": {
|
|
70
|
+
"Markdown": "@jxsuite/parser/Markdown.class.json",
|
|
71
|
+
"ContentCollection": "@jxsuite/parser/ContentCollection.class.json"
|
|
72
|
+
},
|
|
73
|
+
"images": {
|
|
74
|
+
"optimize": true,
|
|
75
|
+
"widths": [320, 640, 960, 1280, 1920],
|
|
76
|
+
"formats": ["webp", "avif"],
|
|
77
|
+
"quality": { "webp": 80, "avif": 65, "jpeg": 80, "png": 80 },
|
|
78
|
+
"sizes": "(max-width: 768px) 100vw, 50vw",
|
|
79
|
+
"lazyLoad": true
|
|
80
|
+
},
|
|
81
|
+
"contentTypes": {
|
|
82
|
+
"modules": {
|
|
83
|
+
"source": "./content/modules/",
|
|
84
|
+
"format": "Markdown",
|
|
85
|
+
"schema": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"title": { "type": "string" },
|
|
89
|
+
"summary": { "type": "string" },
|
|
90
|
+
"duration": { "type": "string" },
|
|
91
|
+
"order": { "type": "number" }
|
|
92
|
+
},
|
|
93
|
+
"required": ["title", "order"]
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"build": {
|
|
98
|
+
"outDir": "./dist",
|
|
99
|
+
"format": "directory",
|
|
100
|
+
"trailingSlash": "always"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
|
2
|
+
<rect width="32" height="32" rx="7" fill="#2563eb"/>
|
|
3
|
+
<path d="M13 11l-5 5 5 5" fill="none" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M19 11l5 5-5 5" fill="none" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|