Storage on Vercel
vercel.com
vercel.com
[1] https://developers.cloudflare.com/r2/pricing/
[2] https://vercel.com/docs/storage/vercel-blob/usage-and-pricin...
I’d love to create tools that were convenient and had fair pricing. The challenge is that you’re trying to grow into a market with worse acquisition economics. Tough to win if winning is the goal. If anyone has a solution reach out. XD
Needlessly to say, we're wrapping up testing on migrating our production (public) buckets to Cloudflare (R2) taking our cost from those $2,000 (and going up every month), to (drum roll)... $0,000/mo.
Have I mentioned AWS egress charges are borderline "extortionary"? :X
There’s also the community forums although I find it’s harder to stay on top of those personally.
Not trying to say our paygo support is as good. Just saying for those customers, I do personally try to offer ENT-level support as an entire class of users (ie all paygo = 1 ent to me for the products I personally support)
Most of the engineers and product leaders on the teams that make the services check those channels daily and jump into help where they can. There's also a huge community of power users there called Community Champions who help out as well.
I wish this never had to be said, it shouldn't be a secret.
I’ve not had any luck getting it to work though I’m also not well versed on the terminology.
It depends how much you spend on egress vs developers.
To me, the storage announcement + this blog really helped contextualize where Vercel sits. And I really like this approach. It’s what I’d want to build on. I love the partnerships with cos out of their core expertise like Neon, and existing integrations with supabase, planetscale, etc
its now my defacto playbook for building lasting bottom up disruptive cloud companies. start by giving away an extremely good free tier (cloudflare - cdn, vercel - nextjs+hosting) then add build time compute, run time compute, readonly kv store, and now full read write storage.
(this is part of an overall cloud progression that i've been studying for a couple years https://twitter.com/swyx/status/1417136897894326277)
many other platforms try to start off offering everything under the sun, claiming to care about the holistic end to end experience. vercel bet correctly on one wedge, built it up over years, and only now is expanding into storage. well earned.
I'm surprised how much people care about what's under the covers.
Given the general state of PaaS offerings, this is a differentiator.
there are better wedges financially speaking but theres pretty much no bigger bottom up developer wedge than this one
They distilled the entire deployment process into a few clicks and boom, you have a real, functioning, fast website. Then they added templates, good marketing, and doubled down on React. The rest is history. It’s a well executed vision and I give them a lot of props for that.
Their pricing structure change didn’t help either
If there was a Netlify framework that leveraged up the platform that got you started quick I bet they would have more mindshare
I wouldn't think that live .htaccess file editing was what they were disrupting :)
Companies are leasing out the core aspects of computing (storage, networking, CPU, GPU, auth), nothing really insightful here. Just your average day in capitalism.
> many other platforms try to start off offering everything under the sun
Do they? Or do they also start small, then build up over the years until they have everything under the sun, rinsing and repeating the process.
What companies have you built (or played a role in building) using this "playbook" that fit your description?
It's been the opposite for me.
Back around 2015-2016 I was very excited about cloud functions, serverless, etc, but these past years I've gone back to mostly running VMs with regular persistent apps.
Complexity has gone down considerably and there's zero lock in. With Docker I have full control over the platform and can run these apps pretty much anywhere I want and how I see fit.
With Fly it's trivial to get scale to zero. I wrote a little tutorial here recently:
https://community.fly.io/t/implementing-scale-to-zero-is-sup...
I still use some serverless stuff for very specific use cases, like enhancing a static site with a bit of backend logic, but definitely not as the main solution to run the bulk of my backend apps.
Either way, I'm back on the monolith train and probably won't look back for a while.
Yeah that happened to me like a year or two ago. Google changed something on the platform running my functions and my app stopped working without any notice.
I know people are allergic to the word blockchain, but you can store variables on them for nearly free (its a one-time cost), have unlimited free read traffic, and have your users pay to update your state for you
your frontends just read that and update dynamically
cloud platforms aren't able to compete with that, and you can just do system design that is applicable to this infrastructure while scrapping every idea that doesn't work - just like in the before times
- Vercel Postgres pricing: https://vercel.com/docs/storage/vercel-postgres/usage-and-pr...
- Neon Postgres pricing: https://neon.tech/docs/introduction/billing
You can properly still buy Postgres directly from Neon or choose another database provider: https://vercel.com/integrations#databases
Careful here. You'd be building a vercel-specific API into the middle of your data access stack. That might be fine... e.g., if it has a limited/specific use or lifetime, so that you know you won't get stuck.
But otherwise, use a standard, portable client. The docs say you can use any postgres client, so you should be able to choose whatever you prefer.
No serious company is ever going to use these criminally expensive software, so it's quite clear what their target market is. Unfortunately, they have such a strong hold of the Twitter and Youtube space with their army of cringey influencers.
This company does nothing but a disservice to the next generation of web developers. Really a shame.
For a weekend/side project that needs db and storage, why would I spend days correctly setting up, securing, and provisioning all my infra when I could just pay a little extra and never worry about it?
When creating a new project I wear all hats. Project management, UX/UI designing, Frontend, Backend, Infra, User testing, security.
Having to maintain multiple projects that all bring income in as a solo developer wearing all the hats is very time consuming, this is an absolute godsend and I'll pay for the DX happily.
But also I just started a side project with Rails. I got a CI/CD production environment with GitHub Actions, Postgres, Redis, sidekiq, and storage on Fly.io in an hour or two.
The thing that makes me more comfortable here is that none of my application code references Fly.io at all. If the project needs to grow beyond Fly I just change some environment variables and migrate the data.
I've only talked in depth with one of them, but the reason is complexity: they want "a react framework" and every update to NextJS substantially raises the complexity bar, introducing a large number of features that they don't want or need. There's also been at least one incident of a NextJS bug which only affected non-Vercel deployments; and that incident came up in this discussion as evidence for their concern that NextJS doesn't have a future outside of Vercel (the company and the platform).
My impression on Remix is fairly solid, but it doesn’t have quite the “just write and deploy” appeal that Vercel’s done quite a good job with, and they’re somewhat trailing behind Next.js in terms of tracking newer React features (which, in practical terms, doesn’t matter much, since even beta Next.js features tend to ship in a very alpha state of quality).
That said, if you’re willing to sweat a bit on getting something deployed, Remix delivers a pretty good experience overall.
I just want to write my SSR applications with dynamic data and deploy them to Docker, Next is making it harder than it needs to be.
I just don’t see the value prop to use Vercel for SaaS apps. Using a running server for those works better, cheaper, and faster. For consumer-facing storefronts, Vercel is a no-brainer though.
There's also issues with complexity even if the solutions get figured out. What are you getting in return? Serverless is great IMO when it's the simplest solution to a problem, ex: "I only have a front end but I really need a simple API action that daisy-chains a few API calls".
I definitely understand this. One step at a time, but I think we can move incrementally to a workflow that is much better that what we have today, especially around the DB schema migrations. There's also no reason for this to not work for RDBMS, in fact we're based on Postgres ourselves.
Deploys Go app containers. Pick a cloud. Use whatever they offer.
Deploys static JS to cdn
Calls it a day.
I really do not understand these tools. Who is using them?
I’ve built and worked on apps used by millions of people. Really don’t understand where the benefit is or if people are just over complicating basic things to extract money from chump developers?
It limiting your options can be a good thing, people can just ship instead of being stuck in analysis paralysis forever.
I also found it quite nice entry point for newbie developers. I’ve been donating my time to help out new developers, and learning deployment (it isn’t ”basic” for complete newbies) on top of everything can be daunting. Vercel lets them deploy for free and effortlessly so that they can show off what they’ve learned.
That being said, I personally wouldn’t touch Vercel for any serious work either.
IMO biggest problem is that if your website is public facing, then just having an SPA is bad for crawlers and not great for UX.
And now that your app is using one of these frameworks, you probably need some sort of API for whatever. There's a lot to be said about designing a REST api just being exporting an JS function in a file in a /api folder or whatever. If you are already using a hosted option for these frameworks it's an incredibly simple solution that doesn't require to you mess around creating a new project, making a docker image, going to a different cloud provider and giving them your credit card, etc. And depending on your scale that might genuinely be cheaper than running a container 24/7 on a public cloud.
When you take a traditional tech stack, say LAMP on a dedicated server, performance is very constant overall. You even develop a type of muscle memory for it and adapt a click pace/flow when you use an application like that intensely.
No so much with cloud-native serverless. A page may respond fast and then 10 times slower the next time. There's just so many moving parts (virtualization, edge, cache, cold/warm compute, out of network dependencies, etc) that it feels random to a user.
But I suspect that you might be comparing Upstash's per-command pricing for _regional_ requests ($0.20 per 100k) to Vercel KV's? In fact, Vercel KV is multi-region, so the more apt comparison is Upstash's pricing for _global_ requests ($0.40 per 100k).
> Next.js Server Actions (to be announced Thursday)
Looking forward to have to re-learn the Next.js API, again! /s
I've been a happy user of Python on Vercel for years, but I often feel like languages other than JavaScript are very poorly represented, both in the community and the documentation.
My notes on running Python on Vercel: https://til.simonwillison.net/zeit-now/python-asgi-on-now-v2
import { sql } from '@vercel/postgres';
const { rows } = await sql`
INSERT INTO products (name)
VALUES (${formData.get('name')})
`;
Presumably authentication is handled transparently? I really like that - reminds me of Deno's new KV cloud stuff too.Is that done with environment variables? I'd want a way to tap into that from Python code as well.
My company already uses Cloudflare so the rest isn’t a big change for us.
Example, with Upstash redis: i deployed a fly.io connected to upstash. I don't use that service for a month (no query at all), but it still counted in billing.
Wait, is upstash real serverless ? I have to pay for NOT using it ?
This is not what all our customers want, but it is much cheaper to run this way for most fullstack frameworks. It's not ideal for a Redis you don't use at all, though.
We're considering a serverless / metered billing option for this. But what we have is much closer to spinning up a permanent Redis. :)
For now, i had to say goodbye for most of cloud services. Good old VPS for now.
import { tableName } from "../shared"
sql`SELECT * FROM ${tableName} WHERE id=${formData.get('id')}`
The @vercel/postgres package needs a big disclaimer that it works very differently from node-postgres and what is and is not allowed.Also, node-postgres is ripe for sql injections because you just concatenate strings yourself when using it...
Why the heck would you do that?
I guess for any library that accepts SQL, someone might concatenate strings rather than use the parameter handling.
Not sure what ORMs have to do with it. They do include a safe parameter substitution mechanism, but so do typical SQL-based clients.