-
Notifications
You must be signed in to change notification settings - Fork 0
docs: improve Spark developer onboarding #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
3799678
bc4bb8b
b77da8c
c0cbd3c
d28700d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,70 @@ | ||
| name: Bug report | ||
| description: Report a reproducible Spark theme issue. | ||
| title: "[Bug]: " | ||
| labels: | ||
| - bug | ||
| body: | ||
| - type: markdown | ||
| attributes: | ||
| value: | | ||
| Thanks for reporting a Spark issue. Do not include API keys, customer data, merchant credentials, or exploit details. | ||
| - type: input | ||
| id: version | ||
| attributes: | ||
| label: Spark version or commit | ||
| description: Use the README version, Git tag, or commit SHA. | ||
| placeholder: "1.1.1 or add24e9" | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: expected | ||
| attributes: | ||
| label: Expected behavior | ||
| description: What should have happened? | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: actual | ||
| attributes: | ||
| label: Actual behavior | ||
| description: What happened instead? | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: reproduce | ||
| attributes: | ||
| label: Steps to reproduce | ||
| description: Include the smallest safe reproduction you can share. | ||
| placeholder: | | ||
| 1. Clone Spark at ... | ||
| 2. Configure ... | ||
| 3. Run ... | ||
| 4. See ... | ||
| validations: | ||
| required: true | ||
| - type: dropdown | ||
| id: surface | ||
| attributes: | ||
| label: Affected surface | ||
| options: | ||
| - Theme Settings | ||
| - Homepage section partial | ||
| - Product detail page | ||
| - Cart or side cart | ||
| - Web Component | ||
| - App hook | ||
| - CSS build or compatibility | ||
| - Documentation | ||
| - Other | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: checks | ||
| attributes: | ||
| label: Verification | ||
| description: Paste relevant local command output. | ||
| placeholder: | | ||
| python3 -m unittest discover -s tests | ||
| python3 scripts/sass-compat.py --check assets/main.css | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. WARNING: Every other field in this template is Reply with |
||
| validations: | ||
| required: true | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| blank_issues_enabled: false | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SUGGESTION: Reply with |
||
| contact_links: | ||
| - name: Store-specific support | ||
| url: https://github.com/NextCommerceCo/spark/blob/main/CONTRIBUTING.md#public-issues-and-support | ||
| about: Use your normal Next Commerce support channel for merchant-specific store issues. | ||
| - name: Security reports | ||
| url: https://github.com/NextCommerceCo/spark/security/advisories/new | ||
| about: Report vulnerabilities privately. Do not open public issues with exploit details or secrets. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| name: Developer experience feedback | ||
| description: Share friction from installing, extending, debugging, or contributing to Spark. | ||
| title: "[DX]: " | ||
| labels: | ||
| - dx | ||
| body: | ||
| - type: markdown | ||
| attributes: | ||
| value: | | ||
| Use this for onboarding friction, unclear docs, confusing errors, missing examples, or extension pain. Do not include secrets or merchant-specific private data. | ||
| - type: dropdown | ||
| id: journey_stage | ||
| attributes: | ||
| label: Journey stage | ||
| options: | ||
| - Discover | ||
| - Install | ||
| - Local verification | ||
| - Store install | ||
| - Extending the theme | ||
| - Debugging | ||
| - Upgrade or release | ||
| - Contributing | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: attempted | ||
| attributes: | ||
| label: What were you trying to do? | ||
| description: Describe your goal and the docs, commands, or files you used. | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: friction | ||
| attributes: | ||
| label: Where did you lose time? | ||
| description: Include confusing copy, missing next steps, unclear errors, or decisions the docs forced you to guess. | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: better | ||
| attributes: | ||
| label: What would have helped? | ||
| description: A command, example, screenshot, doc page, warning, or default behavior. | ||
| - type: input | ||
| id: time_lost | ||
| attributes: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SUGGESTION: The Reply with |
||
| label: Time lost | ||
| placeholder: "e.g., about 10 minutes" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| name: CI | ||
|
|
||
| on: | ||
| pull_request: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| verify: | ||
| name: Verify theme tooling | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Check out repository | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: "3.11" | ||
|
|
||
| - name: Set up Node | ||
| uses: actions/setup-node@v4 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. WARNING: Node.js 22 is installed but never used in this workflow. The only steps that run are Reply with |
||
| with: | ||
| node-version: "22" | ||
|
|
||
| - name: Install CI dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| python -m pip install pyyaml | ||
|
|
||
| - name: Validate GitHub YAML | ||
| run: | | ||
| python - <<'PY' | ||
| from pathlib import Path | ||
| import yaml | ||
|
|
||
| for path in sorted(Path(".github").glob("**/*.yml")): | ||
| with path.open() as handle: | ||
| yaml.safe_load(handle) | ||
| print(f"OK: {path}") | ||
| PY | ||
|
|
||
| - name: Run tests | ||
| run: python -m unittest discover -s tests | ||
|
|
||
| - name: Run JavaScript module tests | ||
| run: | | ||
| for test_file in tests/js/*.test.js; do | ||
| node "$test_file" | ||
| done | ||
|
|
||
| - name: Check committed CSS compatibility | ||
| run: python scripts/sass-compat.py --check assets/main.css | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # Changelog | ||
|
|
||
| All notable public Spark changes should be recorded here. | ||
|
|
||
| Spark follows human-readable release notes rather than a strict package-manager version contract. The current public version is shown in [README.md](README.md). When releasing a new version, update the README version, add a dated changelog section, and publish a Git tag or GitHub release when the repo is ready for external consumers to pin versions. | ||
|
|
||
| ## 1.1.2 - Unreleased | ||
|
|
||
| - Clarified the first-run path for local inspection versus installing Spark on a real Next Commerce store. | ||
| - Added contribution guidance, issue templates, CI checks, and an extension guide for theme developers. | ||
|
|
||
| ## 1.1.1 - 2026-06-17 | ||
|
|
||
| - Added metadata-driven membership pricing presentation for product cards, PDP surfaces, and sticky add-to-cart pricing. | ||
| - Refreshed public-facing docs around components, app hooks, and public readiness. | ||
|
|
||
| ## 1.1.0 - 2026-04-28 | ||
|
|
||
| - Expanded homepage section partials and Theme Settings coverage. | ||
| - Documented the Figma section library path, performance load order, cart events, PDP variant state, and theme settings partials. | ||
| - Committed compiled `assets/main.css` so Spark can be installed without a local Tailwind build. | ||
|
|
||
| ## 1.0.0 - 2026-03-20 | ||
|
|
||
| - Initial public Spark starter theme for Next Commerce. | ||
| - Introduced Tailwind CSS v4, vanilla JavaScript, Web Components, committed storefront templates, and zero jQuery or Bootstrap dependency. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| # Contributing To Spark | ||
|
|
||
| Spark is a public starter theme for Next Commerce storefronts. Contributions should keep the theme easy to inspect, install, customize, and safely extend. | ||
|
|
||
| ## Before You Start | ||
|
|
||
| - Read [README.md](README.md) for the current setup and verification commands. | ||
| - Read [DESIGN.md](DESIGN.md) before changing storefront UI. | ||
| - Read [docs/extending-spark.md](docs/extending-spark.md) before adding settings, partials, app hooks, or Web Components. | ||
| - Keep `config.yml`, API keys, store domains, merchant data, and local tool state out of commits. | ||
|
|
||
| ## Local Verification | ||
|
|
||
| Run the checks that match your change: | ||
|
|
||
| ```bash | ||
| python3 -m unittest discover -s tests | ||
| python3 scripts/sass-compat.py --check assets/main.css | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SUGGESTION: The verification section lists Reply with |
||
| ``` | ||
|
|
||
| The standard local checks do not need extra Python packages. CI also validates GitHub workflow and issue-template YAML with PyYAML; install `pyyaml` first if you run that optional check locally. | ||
|
|
||
| If you change `css/input.css`, rebuild and check the generated CSS: | ||
|
|
||
| ```bash | ||
| make css-check | ||
| ``` | ||
|
|
||
| If you do not already have the Tailwind standalone binary, install it first: | ||
|
|
||
| ```bash | ||
| make install-tailwind | ||
| ``` | ||
|
|
||
| When a CSS source change is ready to commit, run: | ||
|
|
||
| ```bash | ||
| make release | ||
| ``` | ||
|
|
||
| That rebuilds and stages `assets/main.css`. Commit the source CSS and generated CSS together. | ||
|
|
||
| ## Pull Request Checklist | ||
|
|
||
| - Explain the user-facing or theme-developer impact. | ||
| - Name the relevant [PLAN.md](PLAN.md) workstream when it applies; otherwise explain the public DX or user impact in plain language. | ||
| - Include screenshots for storefront UI changes at desktop and mobile widths. | ||
| - Include the exact commands you ran and their results. | ||
| - Update docs when behavior, settings, events, public APIs, or release steps change. | ||
| - Keep pull requests focused. Separate docs polish, platform behavior, and storefront UI when they can land independently. | ||
|
|
||
| ## Public Issues And Support | ||
|
|
||
| Use the GitHub issue templates for reproducible bugs and developer-experience feedback. Include reproduction steps, expected behavior, actual behavior, and the Spark version or commit. If issue creation is unavailable for your account or the topic is store-specific, use your normal Next Commerce support channel. | ||
|
|
||
| For security reports, do not open a public issue. Follow [SECURITY.md](SECURITY.md). | ||
|
|
||
| For store-specific support, use your normal Next Commerce support channel and never post API keys, customer data, merchant configuration, or exploit details publicly. | ||
|
|
||
| ## Branching | ||
|
|
||
| NextCommerceCo repositories use branch and pull request flow. Do not push directly to `main`. Keep generated artifacts such as `assets/main.css` in the same pull request as the source change that produced them. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,6 +6,7 @@ This directory contains Spark's theme-developer, design-team, and architecture d | |
|
|
||
| | Doc | Audience | Purpose | | ||
| | --- | --- | --- | | ||
| | [extending-spark.md](extending-spark.md) | Theme developers, app developers | Supported extension surfaces for settings, partials, app hooks, events, and Web Components. | | ||
| | [theme-settings-partials.md](theme-settings-partials.md) | Designers, theme developers | Catalog of Theme Settings-backed partials and template surfaces. | | ||
| | [figma-section-library-plan.md](figma-section-library-plan.md) | Design team, theme developers | Plan for mapping Figma section components to Spark section authoring units. | | ||
| | [section-specs/](section-specs/) | Design team, theme developers | Per-section specs for the current homepage section partials. | | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SUGGESTION: The new row for Reply with |
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SUGGESTION: The
Affected surfacedropdown has no "Web Component" option even though Spark ships 6 Web Components (<spark-add-to-cart>,<spark-cart-drawer>,<spark-progress-bar>,<spark-quantity>,<spark-subscription>,<spark-upsell-item>) per CLAUDE.md. Bug reports against those components will be forced into "Other" or miscategorized. Add a "Web Component" option (and consider sub-options for the six components).Reply with
@kilocode-bot fix itto have Kilo Code address this issue.