Show HN: I created an After Effects alternative (pikimov.com)

1150 points by clementpiki ↗ HN
Many years ago, I made VJ softwares (to mix live visuals in clubs) for unexpected platforms like the Game Boy Advance, the Playstation 2 and the Raspberry Pi. This year, I’m back with a new web-app: Pikimov.

Inspired by Photopea (a free Photoshop clone), I created this web-based motion design & video editor as an alternative to After Effects, to fill empty void.

It's free, without signup, without cloud uploads (your files stay on your machine), and your projects are not used for AI models training.

284 comments

[ 4.3 ms ] story [ 348 ms ] thread
Site and brand looks amazing and it's like something that really can compete with AE. Best of the lucks and I hope you will make it open source some day and make it work on Firefox :D
Nuke blows AE out of the water but is mainly only used by professionals
There's overlap in comp, for which people use Nuke. No one does motion graphics AND comp in Nuke. Closest would be Fusion and Flame.
Wow looks cool. Now if only it could be used in Firefox. And yeah I know it doesn't have some chrome-only things. But afaik that's mostly because google/chrome does what ever they want, and there is no such thing as standards anymore apparently.
Actually a dev from the Firefox team got in touch with me, Pikimov might be ok from Firefox v130
Wow, this looks really amazing! Must've been a lot of work.
So… What are the features vital that only available in Chrome?
Not OP but guessing: easier to build/test/debug in Chrome for starters, and if it gains traction try to fix cross-browser bugs. Especially if this is a 1 person show.
WebCodecs and File System Access API I believe. Both pretty essential for an app designed for editing large video files from disk.
Yes, File System Access API is the main issue with Firefox
Great idea and the product looks great. I looked everywhere for a suitable substitute for AE and there was none.
DaVinci Resolve has a very generous free version. It's enormous but also powerful.
Funny how "No AI" has become an feature. As someone how doesn't know anything about motion design, this looks great!
The other day I recommended someone try out pixlr as a free image editor, as I remember it being a nice tool, and they told me "I don't want an AI tool. I hate AI." I was confused, went to the site, and saw it is plastered with adverts for some AI image generation features. The actual editor seems buried. People do NOT like having AI stuff shoved in their face. The investors out there pushing every company to develop an AI strategy or whatever are misguided.
> People do NOT like having AI stuff shoved in their face

People don't like having bad or unhelpful AI features crammed into products but seeing the growth of ChatGPT, Midjourney, Adobe Generative Fill, Udio and Luma people definitely do like AI that actually works.

The ML-based similar sound search in Live 12 has been a huge help. It replaced searching for the right percussion sound with a button on the drum rack that moves through similar sounds at an instrument or rack level. I can also use it to search for similar Foley to add variety in the textures that tie the track together.
You say that but in my experience the same kinds of people who will say that are also the kinds of people who demonstrably don't actually even know what AI is.

They're the same types who'll insist that DALL-E is just making collages of other artists' work, for example.

It's a black box that takes human produced artwork without consent and spits out superficial mediocre content a dime a dozen. It also takes away developer time and focus from other aspects of the software. I don't think you need to understand the algorithms underneath to have a problem with that.
It's possible to be a reasonable, thoughtful person and disagree with aspects of what you just wrote.

Personally I dislike being morally steamrollered on complex, nuanced topics.

I think it's important to contextualize the situation. The Adobe TOS were updated, and people where understandably concerned over the rights Adobe now has over private customer data. The biggest issue was this part: "Licenses to Your Content. Solely for the purposes of operating or improving the Services and Software, you grant us a non-exclusive, worldwide, royalty-free sublicensable, license, to use, reproduce, publicly display, distribute, modify, create derivative works based on, publicly perform, and translate the Content."

People looked at this and immediately assumed this was added to allow Adobe to train models with people's private work.

Adobe has now updated their TOS, but this was a breach of trust.

Either way, in the end, this potential AI threat is just another reason to not store stuff in the "cloud".

> You say that but in my experience the same kinds of people who will say that are also the kinds of people who demonstrably don't actually even know what AI is.

Funny. In my experience AFK it is the people who use AI that have zero idea what it is and think answers can be blindly trusted. The ones who don’t like it can enumerate the drawbacks clearly.

The pro and anti sides of generative text and generative art seem to be completely separate, so I don't think they can be mixed up like this. On the generative art side, I find the users to be well-versed while the artists who worry about it are currently deleting years of posted work to reupload with questionable anti-AI tools like Glaze long after that art has already been scraped and trained on.

FWIW I'm on the pro-artist side and anti-the current state of things, and wish we could start over with a collaboration between technologists and artists rather than each side having nothing but sneering contempt for the other.

(comment deleted)
Very interesting marketing development but I do not at all understand why that would be a feature. Would love someone to explain.

"No crypto" labels in the last cycle made sense to me. Similar to "no ads", it points to the business model incentives and how the product is intended to evolve over time.

Conversely, "no ai" feels like a very fuzzy line around which editing features will be included (smart lasso tool? object tracking to frame shots? background / foreground selection?).

I feel like that web only is a positive way forward. If only it was possible to prove nothing goes back to the server I think it would gain a lot more trust.

Though companies who want to see your data might not be so keen.

On my phone, but will try it out when I get home.

(comment deleted)
Some crypto wallets, facing similar concerns but with I suppose higher stakes, will provide the user download a local copy of the software, load offline a private tab, close it when done and only then, go back online again.

A bit fiddly for sure - but seems comprehensive enough.

Needs browser support really. Probably harder than we imagine.
There should be an electron local app for running offline web apps. Shouldn't be too hard to build.
Desktop browsers have surprisingly reasonable support for offline PWAs and integrate them as desktop shortcuts etc. Better than Android and iOS, in my experience, although neither is a hard bar to clear.
> If only it was possible to prove nothing goes back to the server

That's an interesting question, but I think it's also equally difficult to prove for non-browser software.

On macs I feel like little snitch or LuLu are the norm. I wonder why, given that Windows and windows apps are historically more inclined to install stuff you don't want. Anyway, both are outgoing network monitors/firewalls and it's one of the first things I install on a new system.
Pretty sure they are very far from the norm, in % of Mac users
No making any accusations but I used Little Snitch extensively at a shop that didn't pay licenses for either Final Cut or the Adobe Suite.
(comment deleted)
Why do you say it's equally difficult? By limiting network operations of a local application you can indeed prove this, as long as you trust the facilities provided by the operating system.

With web applications doing the same is more difficult, because you need to pass some requests, and some requests need to pass while others could be smuggling data.

What about just turning off your network?
What about programs that run on your computer so you don't even need the Internet for them?
OP isn't worried about it not working without network, he is worried about it sneakily sending his data somewhere.
Naive answer: isn't the browser network tab enough?
It only shows past behaviour so not completely a proof that nothing could be sent.
In which browser? It's a live view in Chrome and Firefox.
"Live view" means a log of the past, not potential futures.
I don't know what you're on about, but it does show the past and any new network activity.
Yes. Exactly. It omits future network calls (things that have not yet happened by the moment you look), which is what the person you were replying to was talking about.
It does not omit future network calls. You can, in fact, use the network tab to monitor a page's ongoing network activity as originally suggested.
You won't be able to see that activity until after it has happened. An empty network monitor list isn't a guarantee of future behavior. Or current behavior.
Okay. Then solve p=np. Until then, we monitor and reverse engineer to verify as best we can.
It doesn't need to be that hard. A reasonable solution is to quarantine the tab/app. Proactively revoke its network access after its loaded.
> It does not omit future network calls.

It does.

> You can, in fact, use the network tab to monitor a page's ongoing network activity as originally suggested.

Did you forget that this comment chain was about leaking data to the server? Observing that you have leaked (note: past tense!) your data is not a recommended way to prevent leaking data.

>> "It does."

I am sitting here looking at a new entry added from a button click that creates a network call. Either you are wrong or confused about what the discussion is about.

Was the entry added before or after you clicked the button?
They're saying you won't know until after a request is already sent, and seem to be implying that this somehow stops someone from learning if data is sent to the server or not. I think they've forgotten the original point of this thread because their replies are missing the point
I'm not sure. The impression I get is they're not aware that the tab isn't just a log of stuff before the page "finishes" loading, or not aware that the notion of a static page that can't make network requests at any time without a full reload went out with AJAX in the 2000s.
Serious question: do you think wireguard is an antivirus software? Do you think antivirus software does not exist?

Reading a historic log that shows you have been pwned does not prevent you from being pwned. It's the wrong tool for the job.

Let's say you trust absolutely that the network tab would reveal any communications with the server that could happen in the future. By "future" I mean the point where you are convinced that it is safe to use, and now you are using it with real data.

If you had done this, even spending 10 hours looking at network traffic, you wouldn't have been protected from this hack: https://www.theverge.com/2018/4/24/17275982/myetherwallet-ha...

That was a technically sophisticated hack, but there are simpler ones, like social engineering someone to take over their site.

Put putting hacks aside...

Say you have a site and it doesn't mention whether the data is sent to a server and you want to find out. Now let's say that site does a backup to server but only when localstorage has run out of space, but you don't know that.

When you test the site in the network tab, and you haven't run out of localstorage space then you will see no XHR and assume it's all good, it never sends to the server.

You then use the app for a few days, hit the localstorage limit and it sends stuff to the server without you knowing. And yeah you can keep the network tab open all the time if you have the discipline, but you only know once your data has been sent. It is too late.

If you care enough about whether it sends stuff to the server to look at a network tab, then you probably care enough to want to know for sure.

With the web as it is now there is only one way - trust the site and hope they do the right thing, and are secure. Or only put stuff on there you are happy to leak.

So, made up situation: if you are using this tool to edit and release a whistleblowing related video as a journalist. Maybe you shouldn't!

You probably instead want a local app, running on linux, on a machine that is disconnected from the network.

Yes you are right. There is nothing wrong with the network tab in those browsers but you may not reach all code paths in your quick (or lengthy) test.

Future behaviour may be different.

Also on the web code can change. Either the site owner or by a hacker. There is value in checking network requests if you need to but it isn't fool proof.

I've long wished for something like OpenBSDs pledge to be available in browsers, ideally both through meta tags and through JS APIs. Once a pledge is made, the resource will be unavailable to the page until it's closed, like:

- I pledge to only make network connections to X, Y and Z

- I pledge to only make GET requests to http://example.com/foo/*

- I pledge not to use canvas, iFrames or storage APIs

This info wouldn't be immediately useful to most users, but it could massively help experienced users with trusting local utilities.

>- I pledge to only make GET requests to http://example.com/foo/*

Doesn't solve any trust issue since data can be send as part of the URL, and the backend response can change at will.

That was just an example - it fully solves trust issues if the pledge is "only make GET requests to exactly example.com/favicon.ico or example.com/style.css". This way you can't send any data (as there's no body, and encoded data wouldn't match the URLs).
Serenity OS also makes use of pledge. The episode in which Andreas kicks it off was delightful to watch.
What you are describing are essentially an extended version of various security http headers.

* first requirement can already be done using Content-Security-Policy header

* haven't found a suitable header for the second requirement

* third requirement can be done with Permissions-Policy header

That's partially true, but it would be important for this to both work without a server, and at runtime.

Not relying on a server makes this functionality available for downloaded sites. I'm a big fan of offering single file builds for web utilities, and the pledge should be part of that build instead of something the user supplies.

Having this as a runtime API would enable easier integration - say I'm developing a video editor that needs some WASM blobs. It might be a lot easier to load the blobs and pledge no further network access than having the URLs known on the server-side.

Why do you think web only is positive?

15 years from now, will this site still be up?

Will you be able to open your projects from today, then?

I think web only is a really compelling way to get someone to try a product, but I’d much rather install a tool like this. Unless you could host the site yourself, of course.

Honestly there’s 2 situations:

- if the tool is updated continuously for 15 years it’ll still be up

- if it’s not updated, it will be technically irrelevant anyway and you’ll have switched to another tool by then

Future support is overrated for tools, just use one now and worry about tomorrow later.

Strong disagree on the second point. I don't want the choice of whether I switch tools to be based on an arbitrary factor such as when a website suddenly doesn't exist anymore. I might be very heavily invested into that tool in terms of project files, learning curves, workflow integration etc. I also might be in the middle of something very important with a deadline at the moment that I'm unable to access the site.

Other points that weren't raised - I want to be free to work in situations where I have poor or no internet e.g. when traveling.

Tying tools down to whether or not a website is available and you have reliable internet access is a huge step backwards in my opinion.

Winamp would like to have a word with you :) Granted I'm using the latest release from 2018, but I still sometimes load up v2.x released in 1998 just to show people that 25+ year old software still works just fine... even the AVS visualizer and Shoutcast internet radio features work, which is to me just insane.

I also use older software quite often that has long since been updated, such as older versions of Audacity, Ableton, Adobe Premiere, etc. for various reasons such as: not wanting to spend money, avoiding spyware, ads (see: Windows 11), and other bloat which often IMO negatively outweighs the positivity of new features. There are a lot of other small utilities that I still use that are 10+ years old because they still work fine and I know how to use them blind-folded. There are also tools that haven't received updates in many years but still work great, why would I bother to look for something new that potentially will spy on me and not offer the same functionality?

We’re not talking about Winamp. A more accurate comparison is the Adobe CS suite: no one use CS5 anymore.
No one uses old versions, sure.

But sometimes you have important old projects.

For example, my parents used photoshop elements to touch up all of my sister’s baby photos.

But my parents were not very technical and kept most of the photos as photoshop project files.

Idk if project files that old will open in newer versions of photoshop, but I don’t need to worry, bc I can always find a download of that old photoshop elements and open the projects in there.

It’s not as much about daily use as it is about planned (or inevitable) obsolescence.

Everything web based WILL become unusable or change drastically some day.

(comment deleted)
There’s a stark difference between a tool not being supported and a tool vanishing from existence.

One day, potentially out of nowhere, web based tools can just vanish.

Imagine you were working on a film school senior project and poof your video editing tool was just gone!

Even if they gave a week’s notice, that wouldn’t be enough.

That can’t happen with something like Sony Vegas.

Web only does bring with it the notion of web scale rendering. Cloud render farms are already a thing, so it would be a compelling feature. Lots of video acquisition is already cloud based, so the footage is already there. There are still plenty of times where the render stage takes enough time that rendering on my local single machine is not pleasant.
You can have a local program which hands off rendering to some other server (eg. A cloud render farm) but which can also render locally.

I believe blender can do this, for example.

Nothing web specific about it.

> Nothing web specific about it.

Except I have to have those servers to run it on. It's the basic premise of why cloud vs onPrem. I didn't think that really needed to be stipulated at this level on this particular forum.

You can make some software which supports local processing and cloud processing.

That software then does not require servers to run on, since it supports local processing.

In this way it remains accessible in the future and scalable right now. (Assuming local processing would be slow enough to hurt the experience)

Honestly, I didn’t think this concept needed to be explained at this level either.

I see what you mean, but I'm not using anything from 15 years ago today apart from Linux.
You're using a 15 year old version of Linux?
(comment deleted)
In what way? Good luck using this thing if the network is down, or if the website is down, or if DNS is down, or if the domain expires, or if the author disappears. A program you download and run is yours forever, a website can disappear tomorrow, or get acquired and get enshittified. It happens every single time, and then there's a thousand-comment thread here, until the next web app that everyone loves, and the cycle repeats itself. Do we never learn? Am I taking crazy pills?

Break the cycle.

Looks very good! Will give it a try whenever I need a quick video edit on the fly.
It says "Privacy respected" but there are Google Ads and Analytics included.
With ads/analytics, Google and the site operator know you're hitting certain pages at certain times, but assuming what they wrote under "privacy respected" is true, none of your content is uploaded.

That's an important distinction to make especially for a browser based app. It's also a very low bar IMO, but one that many other companies aren't clearing anymore, like MS, Adobe, and others.

it is so easy to avoid Google analytics as a product developer nowadays that this is really a misplay (e.g. goatcounter, etc.)
It is so easy to avoid GA as a web user that i’m surprised anyone concerned about this isn’t using an blocker that blocks GA scripts and requests themselves.
Without Analytics, I'm blind: I can't tell which feature are popular and which aren't. I need those infos to undertand where I should focus, what are users the more interested in. By "Privacy respected", I meant that I am not asking you for your email, your name, and what you do on the editor stays on your machine: no cloud uploads of your files.
> Without Analytics, I'm blind: I can't tell which feature are popular and which aren't.

There's plenty of alternatives to google analytics though. This sort of basic breakdown could be done with goaccess (or an awk one-liner); plausible, matomo or simple analytics would be decent options that cover most reasonable requirements.

> Without Analytics, I'm blind: I can't tell which feature are popular and which aren't. I need those infos to undertand where I should focus, what are users the more interested in.

I have a suggestion which has always served me well: Ask. Or don’t even ask, users will tell you what they want anyway. Analytics will only give you skewed information, as you are unable to distinguish the popularity of a feature is due to its usefulness, its prominence, or a general lack of clarity.

That's a totally reasoble way to do it, but it leaves you with other blindspots People will tell you what they want anyway but also, sometimes people aren't aware of what they want or need

Non visible parts of aproject tend to get neglected a lot more if you just ask your users What will get more people talking to you, a 10% speed up split among many small interactions, or a visual glitch that doesn't affect usability but it's front and center?

> sometimes people aren't aware of what they want or need

And analytics won’t tell you that, so I don’t see your point.

> Non visible parts of aproject tend to get neglected a lot more if you just ask your users

Do they? Perhaps if you keep relying on analytics, they do. In my experience, users will just tell you anyway. And some of them will be better at feedback than others. Treasure those.

Also, and this is another topic, why don’t you use periods in your sentences? Your comment was unnecessarily hard to parse.

I'd say Analytics can give you an aditional data point that can guide you to conclusions your users might not / can not be aware of. For the same reason you'd want to track things personal experience would be unreliable with.

A good example is time tracking, people are notoriously bad at this, ignoring non events that consume time and over assigning time to task that demand attention

On the other topic, no real reason. I just suck at prose; I'll take the comment in consideration to improve that. That comment in general is just poorly written all around, I'd love to edit it, but the time window has passed

What exactly is tracked though? What information about my videos and my usage patterns are send to Google?

It would be great if you could use a self-hosted analytics platform instead! :)

And I would strongly advise not to develop based on anonymous analytics, users might tell you different desires if you ask them and use completely different workflows if added. Optimizing for web analytis metrics has ruined many projects.

(comment deleted)
but I think each browser tab has a memory limit of 4gb? this means a web based video editor can only work on short clips?
Bump for interest
(comment deleted)
Lots of factors at play that makes your assumption not necessarily correct.

I.e. 1. Newer API such as directory access, which would let the app utilize something like swap as necessarily. And only ever loading the data it can currently handle from the filesystem (https://developer.mozilla.org/en-US/docs/Web/API/File_System...)

2. Input doesn't necessarily have to be RAW/8k. You get several h of 1080p AV1 video within 4gb.

I think it ultimately depends on how much effort the Devs wants to invest to support large video inputs. If none is invested, then your assumption would be true.

I was unable to find the source code, so I wasn't able to check for myself. We'll have to wait for the author to chime in, if they're willing.

1. Swapping to disk would kill the performance to an unnacceptable level.

2. I'm assuming video editing software works on a raw format in memory with access to individual frames? Just like Photoshop would need access to individual pixels from an importend JPEG, the actual canvas uses a lot more memory than the compressed input format.

That's correct, access to each pixel of each video frame is needed. Each video frame must be inflated from its codec compression.
While doing my testings, it does not appear that a tab is limited to 4GB. A typical project in After Effects is not longer than a few minutes of duration. Let's say you work on a 2 hours movie, each AE project would be about a 1 minute shot where sfx need to be applied. Pikimov was created with the same behavior in mind, not made to edit a full movie in one go
WASM memories do have a hard 4GB limit, at least until the 64bit extension lands, but there's nothing technically stopping a tab from using more than that as a whole if the implementation chooses to allow it. I just tried creating a dozen TypedArrays of 1GB each and Chrome didn't panic, and the heap profiler shows ~12GB allocated as expected. Mobile browsers are much more strict about memory though so don't expect those to be so forgiving.
I had a Macintosh Quadra 660AV that had 16MB of RAM and was able to edit multiple-gigabytes of video. Not everything needs to be in memory all of the time to effectively edit video in a non-linear fashion.
Video editing is generally not done in memory at all. The videos themselves sit on disk and are played back from disk, and the desired cuts/effects are composited on the fly.

For speed, an editing app may also produce lower-res versions in memory for quick seeking and smooth playback, as a kind of quick preview. But that's easy to control how much memory you allocate for that, and even those previews can be stored or cached on disk.

Video editing is not especially memory-bound on modern machines. It's much more CPU/GPU-bound when it comes to applying effects, and IO-bound (including decoding-bound) when it comes to larger videos like 4K and 8K.

As a developer it's rare to see something which leaves me feeling "how would you even build something like that..." but this is one of those. Huge cudos for even attempting and following through with something like this!
You start by building your knowledge around computer graphics and modern web development, basically WebGL and modern web APIs have made doing sophisticated graphic applications on the browser. Only limitation right now I see is single threaded limitation on the browser.
What about workers? Isn’t it basically the same as offloading computation heavy work to separate thread? Also, we have WebAssembly. Afaik, js threads can now share memory using SharedArrayBuffers. So I don’t think we have this single thread limitation anymore :)
Idk about this specific app, but the main problem with workers is that any data their working on needs to be copied in or side-loaded into them once they spin up. I imagine for huge video files, having each worker load up a separate copy could be a bottleneck.
> the main problem with workers is that any data their working on needs to be copied in or side-loaded into them once they spin up

Isn't this no longer an issue thanks to SharedArrayBuffer?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

I believe the ONNX Runtime uses this for multithreading on the web, see https://github.com/nagadomi/nunif/issues/34

Ooh. Interesting. I wrote my last worker-based app a couple years ago for chunking and crunching some large datasets. I'll have to give this a go one weekend.
Indeed, Pikimov is using SharedArrayBuffers to decode video frames outside of the main thread
you follow HN, and some guy posts a video editing js library, another guy builds an app taking that library further, you get inspired and build something even bigger.
(comment deleted)
I notice it's written in Ember, which is billed as the framework for ambitious web developers -- in this case, it definitely checks out.
yeah i'm gonna need a TLDR of the major moving parts. how do you even do video editing in the browser? is there a "ffmpeg in the browser"? is that the basic building block?
We've been working on the Web Codecs API for a few years now. It only handles encoding and decoding media codecs, ffmpeg does much more (container handling, filters and everything needed really).

Web Codecs can take a compressed media packet and get you the decoded image or audio buffer it corresponds to. Conversely it can take audio or images with timestamps and get you a series of encoded media packets you can then containerize (we say mux) and get you e.g. an mp4 file.

https://w3c.github.io/webcodecs/

Can I just say that I was disappointed by the Web Codecs API leaving muxing the end result as a "draw the rest of the fucking owl" thing.
[flagged]
(comment deleted)
I was well on my way to create a software like this [1], it started out as a flash clone, but since I didn't define any scope it started to look like after effects, on the back end I mean, never actually wrote a single line of code for the UI.

Are you planning on creating a company out of this? Are you going to monetize it?

1 - https://m.youtube.com/playlist?list=PL3pnEx5_eGm9BbCp2ZTj6LT...

Can you please clarify, which exactly key features are missing from Firefox that make this app say 'use Chrome or Edge'?
From the FAQ:

> Why no Firefox support Firefox is my daily web browser. As a web developper, I always make sure my work is comptatible with all major browsers. But you can guess a web based video editor is a complex task to achieve, and Pikimov uses several key features that only exist in Chrome, Edge, and maybe Opera, and maybe, maybe, Brave. That's why Pikimov cannot currently work on Firefox (as of today: v127), there's nothing I can do to fix this, it is just not possible. For the curious ones, here are some of the web API Pikimov requires, but are missing from Firefox: - audio data - window showsavefilepicker - videoencoder Note: There is no Safari support due to similar obstacles.

https://pikimov.com/faq/

As I mentioned in another comment, in short, WebCodecs and File System Access API I believe. Both pretty essential for an app designed for editing large video files from disk.
The fact that he's a solo dev giving his project away for free (even for a limited time) is a good enough reason.
We are not doubting his reasons. We were interested in why.
Probably the same features that computers have had since the 1960s, but nobody writes native applications anymore. Guess I'll have to pass on this one. I wish Chrome weren't the only operating system people chose to write software for.
IME the features are often mostly there same but there are small implementation differences/bugs at least in the newer APIs. Firefox is no more buggy (often less), but it's easier to code for one set of bugs. Safari is by far the worst.

I use Firefox for all my browsing, but do web app development with and for Chromium. I'd gladly do it for Firefox, but people, especially users, suck and sometimes one has to accept this.

Glad to see no time is wasted for Safari/iOS support. It's a huge waste of time and people using Apple devices are to blame.

Why the entitled tone demanding "to clarify which exactly key features"?

It is the right of developers to say "I don't want to support your browser" and you should respect that decision even if you disagree with it.

As a reality check, see this ticket: https://bugzilla.mozilla.org/show_bug.cgi?id=390936

It took Firefox 17 years of back and forth with developers to add parity with an Internet Explorer feature that Chrome supported since version 1. This late in the game IE is already dead for good.

Not everybody has infinite time or infinite money to support Firefox, as an aside, you knew what you signed up for when you made Firefox your main browser.

So please, change the "clarify why you don't support Firefox" tone with "I want to make the site work with Firefox, how can I help you?". And good luck making the Firefox team change their mind when they decide not to support X feature, because it is also their right to do not implement the whole spectrum of features that Chrome supports.

I don't think they were demanding it work with Firefox.

I think they genuinely were interested to learn more about the deficiencies of Firefox.

> as an aside, you knew what you signed up for when you made Firefox your main browser

I did - a better browser than Internet Explorer. Granted, that was 20 years ago.

I (Firefox developer working on anything media related) got in contact with the dev on Twitter, and he told me that Web Codecs was missing (and we're shipping this in a month or so, it's been in Nightly for some time), and something to save project file to disk (https://developer.mozilla.org/en-US/docs/Web/API/Window/show...).

So I spoofed the user-agent in a nightly build here on my Linux desktop workstation, then had to alias one method that we should have implemented years ago but only have with a `moz` prefix (`HTMLMediaElement.mozCaptureStream`). This is on us to fix.

Then it looks like a worker script is served with the `Content-Type` `text/html` instead of `application/javascript` or something like that. We also have a pref flip to bypass that check, so I did that, but this is on the dev to fix.

When you do this it works, I've loaded project demos containing videos, audio, various things composited on top, scrubbed the timeline aggressively in a debug build, moved things around in various bits of the interface and also in the rendering frame, etc., things seem to work as they should, perf is as I'd expect it to be (and again, I'm running it in a debug build with optimizations disabled for anything media related, enabled for other parts of the browser).

What's missing is `window.showSaveFilePicker` and file system related stuff. It's possible to use https://developer.mozilla.org/en-US/docs/Web/API/File_System... instead (that we ship, e.g. Photoshop on the Web uses it). We think that it's much less scary than giving access to the file system to a content process of a Web browser. Maybe because videos can sometimes be extremely big files, direct access to the FS could be of use there. Thankfully, we also ship extremely modern video encoders to make them tiny instead, but that's currently a limitation Firefox has, for better or worse.

https://paul.cx/public/pikimov-firefox-nightly.webm

Wow, so you do have a workaround for the missing window.showSaveFilePicker, that's promising!
Probably the dev needs to use a different method to save (effectively download), much as Adobe Photoshop does when it exports files on Firefox. Not hard to do at all. Likely the same for reading files, if this tool needs that.

OPFS provides high-speed read and write for temporary files and non-exported files; again this is what Photoshop uses. There is a 10GB limit per domain currently. I'm not sure this particular app actually needs that, though

Thanks for taking the time to investigate what's currently the gap with FF. As a long-time Firefox user, I'm hoping you can guide this dev regarding ways to get things working from his end while also using this app's needs to inform FF improvements from your end.
I would really like to be able to give webpages access to a real local file/folder. It's one of the main barriers to using web apps as production apps and is IMO one of the drivers pushing everything into (generally proprietary, locked in) cloud storage.

Obviously the permissioning model needs to be thought out here. It could perhaps only be available to "PWA"s that have been "installed", only on https sites, and only once explicit permission has been given, etc.

But it's so cumbersome to have upload/download be the only way to sync files into a web app.

Thanks, I have some of the same issues with FF on www.render.video - will look into this ASAP :)
Is there an option for custom ease curves, like a graph editor? I love the idea of an After Effects alternative, but if it only has a few simple ease functions to choose from I can't see myself using it much, sadly.
Not yet, but it has already been asked several times, so I'll keep that in mind. There's balance hard to find: should I try to make it as complete as AE, or make it a simpler so it's more accessible.
If you are advertising it as an after effects alternative (which it looks like you are) then you should be trying to include all features that after effects has.
If most people use 20% of the features of an app, and you create an app that covers these most popular feature really well I think it's fair to call it an alternative. It doesn't say "full clone" or "feature parity".
I could not seriously pretend of a 'feature parity', if I can match 10% of features, that should good enough for most users. I'm not expecting the next Marvel movie to get its SFXs done with PIkimov.
The cool thing about the word alternative is that it does not mean "drop in replacement".
this is awesome. I hope some video editor comes up that can compete with Premiere. Then with pikimov and photopea, I could totally ditch Adobe for one. Have you considered open sourcing the app to benefit from contributors and build a community?
There are many editors that compete with Premiere, which at this point is a janky unusable mess for me. Resolve has been a joy to work with.
Few realize that for many AE is the real jewel in the Adobe crown, Photoshop and Illustrator and Premier all have viable alternatives. AE however stands alone as the only tool with it's unique feature set.

Yeah other compositing tools exist but they lack the animation/mograph tools of AE, or animation tools exist but lack the scripting/filters/compositing.

Nice, but too many animations/chaos on the landing page for my taste. Keep it simple.
Can I export projects to use in other places? Or import projects from other places? Blender comes to mind.

But also, I would like to use motion graphics in an app where the software engineers don't have to re-implement each asset in code.

Side comment:

Comparing a web-based software that runs on your own computer vs. installing a (say native) software and frequently updating, isn't it interesting that the former is faster to do? When using a web-based software to ru on your own machine, you are effectively, momentarily, installing it and are able to uninstall by clearing the cache.

Well, it’s rarely “running” on your machine but is just a client for the server it is running on.
The app is client-side Javascript, it's most definitely "running" on your machine.
And when you start a web app you might not even be "installing" 5% of the code, which is great for speed.

You can load+interpret JavaScript files dynamically as the user accesses certain features.

This is just a testament to the maturity of the platform, and the work that has gone into the portable engine segment.

Targeting Chrome targets all of the platforms, and the machines and platform is "fast enough" to do the job without having to dig deep into specific nature of the platforms.

It also leverages, I'm assuming, the deep knowledge the developer has of doing other things for the browser platform.

They probably could have targeted some other portable GUI toolkit, but this was more familiar. It may well be an even smoother experience than using other cross platform GUI toolkits, plus, of course, the platform is free.

Finally, distribution is familiar and likely easier, it's truly cross platform (no need to build executable on the individual platforms, even if its all from the same source base), etc.

No bundling, no signing, no app stores. Just a URL shared in a tweet and you're on your way. If it was OSS, it could be parked on a Github page for all eternity.

Overall, it's a really attractive platform for developers, just not yet fully embraced I think, as client based applications I mean.

Looks fantastic, and the comment about Photopea. Photopea is such a gem, and can't wait for their Vectorpea to launch as it's got me out of trouble so many times when I don't need an Adobe license for opening a file once a month or so (I just wish Photopea was OpenSource)
You will be happy to learn vectorpea.com has been online for many monthes already
ah nice :) will have to give it a go someday when i need to deal with an illustrator file
(comment deleted)
looks impressive!

What are your plans for further development? I guess for this complex project to evolve in order to meet the needs of the professional users it will require lots of work/team/resources/etc.

Do you plan to monetize it somehow in the future? or how are you going to sustain it?

Another free alternative to AE (targeted at more casual users) that comes to mind is CapCut... which is obviously a ByteDance product. And they already offer tons of features for free, so the competition could be tough...

Given it's free, it might be worth open source the project, or at least opening it up to community plugins so that community can build & fund additional functionality.
Doesn‘t seem to work in Safari?
I really hope you charge money for it and make it awesome, it's about time Adobe gets disrupted and this is a wonderful idea!

It will take significant resources, cash and teams to make this into a serious contender, and folks that have problems to solve will always be happy to pay decent dollars for great software.

He's clearly trying to follow the photopea playbook and make money through ads