<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/package.json, branch main</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/package.json?h=main</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/package.json?h=main'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-07-30T16:27:41Z</updated>
<entry>
<title>fix(ci): drop stray root next dependency</title>
<updated>2026-07-30T16:27:41Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-30T16:27:41Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=03adfed13f43e3f9a9bd09a36b0698bf49423947'/>
<id>urn:sha1:03adfed13f43e3f9a9bd09a36b0698bf49423947</id>
<content type='text'>
Root package.json carried next ^16.1.3 alongside apps/web's pinned
16.1.3; fresh installs resolved two next copies whose NextConfig types
are incompatible, failing withContentCollections(nextConfig) in CI.
Nothing at root imports next.
</content>
</entry>
<entry>
<title>feat: Electron desktop app, native ffmpeg export, fully static web</title>
<updated>2026-07-30T16:18:15Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-30T16:17:45Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=ed02ba872c02eafed45f406c68d389d0a1112a4e'/>
<id>urn:sha1:ed02ba872c02eafed45f406c68d389d0a1112a4e</id>
<content type='text'>
- apps/desktop: Electron shell serving the static web build over a
  privileged opencut:// protocol; exports stream frames over IPC to a
  bundled ffmpeg (libx264/libvpx-vp9, BT.709 tagged) with backpressure.
  electron-builder packaging: AppImage, deb, rpm.
- apps/web: dead backend deleted (better-auth, drizzle/pg, upstash,
  botid, freesound proxy, blog, rss, env validation); next build emits
  a zero-env static export; /editor/[project_id] -&gt; /editor?project=.
- Native exporter mirrors SceneExporter; activates when the preload
  bridge is present; web keeps the mediabunny path.
- Docker self-hosting now builds and serves the static export via nginx.
- Release workflow: v* tags publish static web tarball + Linux packages.
- Changelog 0.4.0; README/AGENTS/CONTRIBUTING/roadmap updated.
- GPUI/Rust rewrite parked on branch rust-rewrite.
</content>
</entry>
<entry>
<title>chore: switch from biome to eslint + prettier; fix ton of lint issues</title>
<updated>2026-05-02T01:27:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-28T22:37:56Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=a9b9cf6bf50f08723896659634f2e6afc17bcd42'/>
<id>urn:sha1:a9b9cf6bf50f08723896659634f2e6afc17bcd42</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: split animation helpers by domain</title>
<updated>2026-04-26T18:44:07Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T18:44:07Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6b1f38a9a31a0eedaa7abea70f232960469351d5'/>
<id>urn:sha1:6b1f38a9a31a0eedaa7abea70f232960469351d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: unify element updates into pipeline and centralize ripple</title>
<updated>2026-04-05T22:02:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-05T22:02:23Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=44d8c4c8764d49a8e8d0ae713432c07f07cb7597'/>
<id>urn:sha1:44d8c4c8764d49a8e8d0ae713432c07f07cb7597</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: use published opencut-wasm package</title>
<updated>2026-04-01T19:30:26Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-01T19:30:26Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=3516bd69f4aaf5be401d3e03cb45d2e5bbc28638'/>
<id>urn:sha1:3516bd69f4aaf5be401d3e03cb45d2e5bbc28638</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: sort root package.json scripts</title>
<updated>2026-04-01T17:29:12Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-01T17:29:12Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=57fc0fd32398f7bbdf89646c3a9f6e1d3c885b25'/>
<id>urn:sha1:57fc0fd32398f7bbdf89646c3a9f6e1d3c885b25</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: migrate time utilities from typescript to rust WASM</title>
<updated>2026-03-31T02:03:52Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-31T02:03:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=dcf54c1250431f5a4a2848f7c07781ef5eebacaf'/>
<id>urn:sha1:dcf54c1250431f5a4a2848f7c07781ef5eebacaf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: normalize line endings</title>
<updated>2026-03-29T13:56:48Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-26T23:55:15Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=4d127a038bf768eded68aae3cfa5c1b12241bdac'/>
<id>urn:sha1:4d127a038bf768eded68aae3cfa5c1b12241bdac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: init cloudflare</title>
<updated>2026-03-29T13:49:30Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-26T12:54:36Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6dd8191f4b6c163a7bf50d506bfaba79adb357f6'/>
<id>urn:sha1:6dd8191f4b6c163a7bf50d506bfaba79adb357f6</id>
<content type='text'>
</content>
</entry>
</feed>
