Skip to content

Upgrading to 5.0

Pondoknusa 5.0.0 removes the .tyr template language. Views are standard TSX modules. The compiler, view linter rules, and .tyr.ts programmatic views from 4.x do not ship in 5.0.

See the v5.0.0 release notes and changelog.

Before you upgrade

  1. Pin to the latest 4.x patch and run your test suite.
  2. Bump every @pondoknusa/* dependency to ^5.0.0 (monorepo packages release together).
  3. Inventory resources/views/**/*.tyr and *.tyr.ts. Those files will not compile.
diff
# package.json
- "@pondoknusa/core": "^4.2.0"
+ "@pondoknusa/core": "^5.0.0"

Views are TSX

Each view is a module with a default-exported render function. Layouts and components are PascalCase tags, not @layout / @component.

4.x (.tyr)5.0 (.tsx)
resources/views/welcome.tyrresources/views/welcome.tsx
@layout('layouts.app')<AppLayout>…</AppLayout>
@component('alert', { message })<Alert message={message} />
{name}
@if / @foreach{cond && …} / {items.map(…)}
@island('counter', props)<Island id="counter" …>
@csrf<input type="hidden" name="_token" value={token} />
.tyr.ts programmatic viewsremoved — use .tsx

Set extension: '.tsx' in config/views.ts (this is the framework default).

Scaffold with pondoknusa make:view and pondoknusa make:island. Both write .tsx.

What else changed

  • view:lint no longer walks Blade-style directives. Use TypeScript and the IDE for view diagnostics.
  • Compiled cache still applies. Run pondoknusa view:cache in production builds.
  • VitePress docs on this site use VitePress 2 (alpha) with Vite 8.

Checklist

Earlier majors

5.0.0 shipped in September 2026. Stable APIs only break in major releases per STABILITY.md.

Released under the MIT License.