Skip to content

v0.1.7: chore(doctor): warn that 0.1.6 and earlier deploy sites whose assets 404

Choose a tag to compare

@stone-main stone-main released this 17 Aug 15:59
· 14 commits to master since this release
Immutable release. Only release title and notes can be modified.

Stoneware v0.1.7

A reliability, security, diagnostics, and deployment-focused release.

Highlights

Better rendering errors

Stoneware now reports the component path when rendering fails.

For example:

Cannot render a plain object with keys: id, title, price.

in <span>
in <Price>
in <ProductCard>
in <Home>

Error values are described more clearly, including plain objects, Date, Map, and class instances.

Application-thrown error messages are preserved without framework prose being appended to them.

Improved 500 error handling

If a custom _500 page also fails, Stoneware now distinguishes the original application error from the error-page failure.

The original error remains available for diagnosis instead of being masked by a second rendering error.

Vercel deployment assets fixed

stoneware build --target vercel now places generated CSS and island JavaScript under:

public/_stoneware/

This allows Vercel's CDN to serve generated assets correctly.

Generated assets use long-lived immutable caching:

Cache-Control: public, max-age=31536000, immutable

Cross-copy Signals compatibility

Stoneware now recognizes compatible Signals even when multiple copies of @preact/signals-core are present.

This improves compatibility with monorepos, linked packages, and dependency-resolution scenarios without treating arbitrary { value: ... } objects as Signals.

Extensible Content Security Policy

The default CSP remains restrictive, while applications can explicitly allow trusted third-party origins.

For example:

csp: {
  scriptSrc: ["https://www.googletagmanager.com"],
  connectSrc: ["https://www.google-analytics.com"],
  imgSrc: ["https://www.google-analytics.com"],
}

Stoneware preserves its secure defaults and rejects malformed sources that could inject additional CSP directives.

Third-party integrations do not require disabling CSP or adding unsafe-inline.

Styling documentation

The documentation now explains:

  • CSS discovery
  • co-located CSS
  • CSS ordering
  • production hashing
  • production minification
  • island style objects
  • the difference between public/ CSS and discovered CSS

Static export documentation

The documentation now covers:

  • stoneware build vs stoneware export
  • staticPaths()
  • dynamic routes
  • generated dist/ structure
  • 404.html
  • static-host deployment
  • pages that cannot be statically exported

Deployment documentation

Deployment documentation now covers:

  • pre-deployment checks
  • STONEWARE_CSRF_SECRET
  • stoneware doctor
  • dynamic-route export checks
  • Cloudflare
  • Netlify
  • GitHub Pages
  • CDN/static deployments
  • post-deployment asset verification

Validation

  • 492+ tests passing
  • Typecheck clean
  • Documentation pages rendering successfully
  • Vercel CSS and island assets verified with HTTP 200
  • Generated assets verified with immutable caching

Notes

Stoneware remains an early-stage framework. The 0.1.x series continues to evolve, and some deployment and runtime capabilities may change in future releases.