I've always hated these website cookie cutter platforms, mostly for personal reasons because I'm an optimizer, a philosopher, an understander. I want control over my own stuff. Well lately I took on a freelance gig that requires me to work with Wix. I knew I'd hate it, but I figured I'd bludgeon through it. And I am. But hoooly shit, it's even way worse than I expected.
There is nothing right about Wix. It's a fractal of bad design, like PHP. I think the best way to summarize it is this: Every feature in Wix is a bespoke, stunted version of something you would have access to if you just used a VPS.
Your frontend code doesn't have access to the DOM (no
documentor workarounds). Instead you get acess to this
$wobject which looks like jQuery, but isn't. You can call it as a function, and it acts like
document.querySelector, except the selectors you pass are special Wix selectors that don't actually exist in the DOM. The references it returns aren't
HTMLElement, but Wix elements, which have drastically less capabilities.
There's a way to embed actual frontend code, but it's in iframes (meaning it doesn't work if the user's browser has those disabled) and, this is even worse: you can't access Wix APIs (like your database) from inside it!
It's like, there's Wix-land and real-land. From Wix-land you can't access the DOM, and from real-land you can't access anything else! You have to pass data between the two with a websocket- or web worker-like API.
Oh, and this is an absolute clown world travesty: all Wix elements seem to be positioned using absolute positioning. In the visual page editor, elements just drag on top of each other. It's not even easy to make a space for a new element.
Now let's get to the backend code. There's no actual server, of course. The only language allowed is Node. Oh, and backend code that's going to be called from the frontend has to be given a special
The test console doesn't show stack traces like real Node. For some errors you don't even get a line number, and it seems to suppress
console.logsometimes. It's also plagued by several UI bugs that make it difficult to inspect output.
console.loga function, the output you see is "null". That's not a joke.
If a backend job takes more than 14 seconds, Wix stops the process. So I can't start a long running job and wait for it to finish. (Accessing Wix collections is extremely slow, so that 14 seconds fills up quickly.)
Wix has an autosave and history feature, but for proper version control (branches, diff, etc) I have to copy code back and forth between Wix and my computer.
Their code editor enforces IDE anti-features like autocompletion popups covering everything and rebinding the arrow and enter keys to "accept my bullshit irrelevant suggestion" so it's impossible to type. I've experienced the pain of these features before (browsers' JS consoles have some of them) but Wix takes them up to 11.
That "database" I mentioned? It's not a real database! It doesn't support SQL or anything like it. There's no way to programmatically alter its schema.
There are buttons to import and export CSV, but they're both useless. The export is sorted by update timestamp regardless of the sort you specify (that only affects your view in the window). The import sometimes maps columns incorrectly and doesn't give you enough control to correct it.
There's no way to programmatically access Wix's excuse for a database from outside Wix's web-based dev environment, so all testing has to be done inside there.
Manually making edits to the database is ridiculously slow because when you open a collection, it takes like 6 seconds to load. So does every change you make. If you delete all items in a collection, it deletes them at a rate of about 20 per second.
What about price? This is an interesting topic because when discouraging people from using these website cookie cutter platforms I usually admit that they would eliminate the price of a VPS. That's not true here: https://www.wix.com/upgrade/website
The cheapest plan is $14 per month. I pay just over $6 for all expenses for this website, both VPS and domain name. And that $14 doesn't include your domain except for the first year. Whereas a $5 per month VPS will give you about 15GB of storage, this gives you 3. It's also missing a bunch of features that you would have or be able to easily get for free with a VPS.
If you need a website, why not use Didact instead? You'll save money and get way more power. Didact also offers free user support, and unlike Wix support, I can be reached by email ;)