Files
webstudio/fixtures
Oleg Isonen e07cb22d29 fix: Remove default favicon from exports (#6310)
## Summary

Remove the default Webstudio `/favicon.ico` from dynamic export
templates and their generated fixtures. Exported sites now rely only on
the configured favicon referenced by the generated `<link rel="icon">`;
projects without one naturally return 404 for `/favicon.ico`.

## Implementation

- Delete the root favicon from the legacy/default and React Router base
templates.
- Remove the derived favicon from Docker, Cloudflare, Netlify, Vercel,
and feature fixtures.
- Add regression coverage for legacy dynamic, React Router dynamic, and
SSG exports.
- Preserve and verify configured favicon link generation in every mode.

## Todo

- [x] Remove the default favicon from export template sources.
- [x] Regenerate the affected fixture outputs.
- [x] Add fail/pass regression coverage.
- [x] Run CLI tests, typecheck, lint, and formatting checks.
- [x] Review documentation impact; no documentation changes are needed.

## Verification

- `pnpm --filter webstudio exec vitest run src/prebuild.test.ts` — 69
tests passed.
- `pnpm --filter webstudio typecheck` — passed.
- `pnpm exec oxlint --deny-warnings packages/cli/src/prebuild.test.ts` —
passed.
- `pnpm exec oxfmt --check packages/cli/src/prebuild.test.ts` — passed.
- Regression test failed for the two affected templates before the fix
and passes for all three export modes after it.
- All six affected fixture builds completed with the repository React
preload. The full `pnpm fixtures` command could not pass its initial
link phase in this fresh worktree because the local CLI loaded JSX
without a React global.

Closes #5218
2026-09-02 11:45:06 +02:00
..

Webstudio Fixtures

Fixtures are test projects that ensure the CLI and build process work correctly across different deployment targets.

Updating Fixtures After Changes

# From repository root - updates all fixtures
pnpm fixtures

This command will:

  1. Link all fixtures to their respective projects
  2. Sync the latest data from the development environment
  3. Build all fixtures with the latest code

Working with Individual Fixtures

# Go to fixture folder
cd fixtures/webstudio-features

# Link to project
pnpm fixtures:link

# Sync latest data
pnpm fixtures:sync

# Build fixture
pnpm fixtures:build

# Start it
pnpm run dev

Adding Assets to Fixtures

To add a new asset (image, video, audio, etc.) to a fixture:

  1. Publish to staging

    • Make your changes in the builder
    • Publish to the staging environment
  2. Get the build ID from CI

    • After publishing, check the CI logs
    • Find the build ID that was created
  3. Update the fixture's build ID

    • Edit fixtures/[fixture-name]/package.json
    • Update the --buildId parameter in the fixtures:sync script
    "fixtures:sync": "pnpm cli sync --buildId NEW_BUILD_ID_HERE && pnpm oxfmt ./.webstudio/"
    
  4. Sync with the correct environment

    # Go to fixture folder
    cd fixtures/webstudio-features
    
    # Sync from staging environment (replace with your branch)
    BUILDER_HOST=fix-assets.staging.webstudio.is pnpm run fixtures
    
  5. Fix the origin URL

    • After syncing, edit .webstudio/data.json
    • Change the origin back to:
    "origin": "https://main.development.webstudio.is"
    
    • This is necessary because sync changes it to the current branch
  6. Commit the changes

    git add fixtures/
    git commit -m "chore: update fixtures with new assets"
    git push