Live data from Hacker News

We Need To Talk About Vercel

maxcountryman.com

121–130 of 161 posts

Re: We Need To Talk About Vercel

#122
post #44
post #38

Vercel is deceitful. The Image/img fiasco really pulled the covers off for vercel for me. I have migrated all my work off of the platform. NextJS’ lint strategically dissuades you from using the img tag in favor of the NextJS Image component. If you make the mistake of heeding this advice and migrating to it, you can’t use static site generation—which means you are stuck using their hosting. Here’s one of the most PR…

Lol, silently* replacing the original request with the company response instead of documenting it in the docs is certainly a move. Nice to have all the thumbs-up and heart reactions on the "sorry we don't do it", for sure. Love the " We'd love to hear your feedback " and then locking the discussion too. Not having the feature is one thing, but why not properly document that and the (by now existing) workarounds? * ye…

The edit history / indicator doesn't show up on mobile, but I confirmed it shows up on Desktop; leerob hijacked the question and replaced it with PR.

Deceit is indeed the right word to describe Vercel's behavior.

Re: We Need To Talk About Vercel

#123

Feel like this Tweet could use some social support too. https://twitter.com/ms_nieder/status/1626995266619420675?s=4...

This is incredible. If I understand the thread, that >$22,000 surprise bill was not forgiven by Vercel and the most they're willing to do is offer a 25% discount.

Is Vercel a business or a scam masquerading as a tech company?

If a company needs to stoop to this level of billing shenanigans to make money, I have my doubts...

Re: We Need To Talk About Vercel

#124
post #38

Vercel is deceitful. The Image/img fiasco really pulled the covers off for vercel for me. I have migrated all my work off of the platform. NextJS’ lint strategically dissuades you from using the img tag in favor of the NextJS Image component. If you make the mistake of heeding this advice and migrating to it, you can’t use static site generation—which means you are stuck using their hosting. Here’s one of the most PR…

I haven't used the Image component but I've hosted a Next.js project. leerob's comment said "To clarify again, you do not need to use Vercel for optimizing images. It works using next start or any loader of your choice.". This implies that it would still work in SSR using any hosting method, it doesn't mean you're forced to use Vercel's hosting services.

There should be a warning that it won't work with SSG and is only for SSR, but there are also many features on next.js that are SSR only.

Re: We Need To Talk About Vercel

#125

Feel like this Tweet could use some social support too. https://twitter.com/ms_nieder/status/1626995266619420675?s=4...

This is incredible. If I understand the thread, that >$22,000 surprise bill was not forgiven by Vercel and the most they're willing to do is offer a 25% discount. Is Vercel a business or a scam masquerading as a tech company? If a company needs to stoop to this level of billing shenanigans to make money, I have my doubts...

Vercel have controlled the narrative that, managing your own infrastructure is too difficult or, it takes too much time away from shipping products. They want you to put your trust in them, but you’ll have to pay for it. This would be ok if you could trust them.

Many stories are emerging where it’s clear that trusting Vercel is a risky strategy.

Re: We Need To Talk About Vercel

#126

Earlier quoted context omitted.

I'd say one of the big annoyances I've encountered while building applications with the last few versions of NextJS is the increasingly tight integration with the built-in server. The world of Node servers is pretty well-established, with documented interfaces that the major server platforms all implement and support. Simple stuff like res and req in the context and what those objects contain. With each release NextJ…

Seems like you may appreciate https://vite-plugin-ssr.com/ (I'm its author).

Nice. I was going to use Next for my current project, but may give your solution a try instead!

Re: We Need To Talk About Vercel

#127
I hope this doesn't come off as snarky, but after researching Vercel and its competitors I decided that the iffiness around billing for these services wasn't worth it. I would mostly use it as Infrastructure as a Service anyway. It took me about a night to learn the ins and outs of AWS CloudFormation. Now I know exactly what my stack looks like and I can more easily estimate my end-of-month costs -- plus I can stay in the free tier wherever possible.

Re: We Need To Talk About Vercel

#128
post #102

Earlier quoted context omitted.

I wonder if somehow the request got handled by two different edge workers that were desynchronized? I’ve seen it happen in busy areas (NYC, etc.) where a single client will hit many Workers in a session whereas when connecting from a rural area I’ve never observed that. Regardless, I say the solution is fat index files. Is there any tangible benefit to the long held tradition of separating the structure from the func…

I mostly use Vite nowadays, so my bundle is usually automatically split into a vendor.js and an index.js. The vendor bundle for dependencies is large (usually 50-200KB brotli'ed for my popular side projects) and rarely changes. The index.js containing only my code is usually smaller and changes on every build. With a fat index everything has to be downloaded on every change. Most people don't care these days but I tr…

Splitting vendor and index makes good sense, I use esbuild which has [iffy](https://github.com/evanw/esbuild/issues/207) support for that. Still, the vendor code could be loaded independently while the application code (and styling!) is inlined into the initial index.html response.

> I try to make the experience nice even for people with really shitty connections

I see this sentiment a lot, though people seem to be able to use it to justify any design at all... the question IMO is what does "shitty" mean?

- In a low bandwidth case, serving only the absolute minimum data to do what the user has specifically requested makes good sense. A solution here is Server Components, which can send the client js event handlers on a per-interaction basis.

- In a high latency case, the total number of round trips should be minimized at all costs, so the Server Components approach is terrible, the client may need to wait for 2+ round trips to do their interaction (one to download the client js, one for that client js to perform the actual action). A solution here leans towards the fat index approach.

- In the case where connections drop often, all the data that the client might need should be transferred over as soon as possible, as there's a good chance they won't be able to access the server at the exact moment when the data is needed. The solution here is the fattest indices possible, with copious caching.

These are all three in conflict with each other to some extent, so the best approach is probably dependent on the specifics of your user-base.

In my experience, a "shitty connection" is one where the bandwidth is low, latency isn't typically a big deal, but the connection will drop frequently, potentially for hours or more. However, in such cases I'll at times have access to the occasional hotspot where the network is perfectly fine. Accordingly, I design my apps to transfer as much data as possible initially (ensuring that the main content can be seen and interacted with even if data for some other module is transferring in the background), and provide the option to store everything in stale-while-revalidate service worker caches so the full experience is available fully offline to the extent possible, even if you didn't fully explore the app while online. In this way, I can download the latest chunks when on the good connection and run fully offline from then on (obviously excepting actions that are legitimately impossible without a server).

Re: We Need To Talk About Vercel

#130

Earlier quoted context omitted.

Does the tag work with the docker container? GP's issue is with how vercel was pushing the tag a lot yet it doesn't work when in static site generation mode which is used by a lot of people.

You can disable it to make it behave like an Image tag https://nextjs.org/docs/api-reference/next/image#unoptimized It works, it's just not optimized, that's not the same thing.

It's 2023 what kind of plebeian is using raw image tags? NextJS's OSS design is exactly what it should be, I want the image tag. I don't want Vercel boxing me into a choice:

  1. Serving images over Node.
  2. Using Vercel.
I also don't want to eject code that is sitting right there in the repo. And I don't want to maintain a fork of a homebrew reimplementation of it.
Post reply on HN