Hacker News new | past | comments | ask | show | jobs | submit login
Netlify Drop (app.netlify.com)
349 points by Brajeshwar 68 days ago | hide | past | favorite | 123 comments

Related ongoing thread:

Netlify raises $105M and acquires OneGraph - https://news.ycombinator.com/item?id=29253069 - Nov 2021 (100 comments)

Reminds me of of good old PHP shared hosting days. It was so much fun to just write my code and then just drop the folder over Filezilla and everything just works!

Bug no problem! Live editing!

As everything has become so complex people decided that the solution is to build containers that are even more complicated but you can move them around.

It starts to feel like there’s an appetite to try another way where you actually move around the stuff you created and not entire containers of your setup.

And the cycle begins again.

I'd assume that the end result of the drop is running in a container.

It seems to run only static content, it's going to be served by Netlify and only browsers will run the code. If that's really it, there's no need for containers here.

My thoughts exactly. This could be replicated by just taking the html, piping it to s3 bucket then create a dns record that points to it. No build nothing. Just html -> "server"

I have fond memories of the FTP side bar in Macromedia Dreamweaver. Press the push button and website gets instantly updated.

Last company I worked for pushed me on multiple occasions to install an FTP extension for VSCode that would upload files on save. Glad I got out, everything was a nightmare there.

I used to work like this in PHP at my first software job circa 2013. Wrote my own deployment tooling with all the warts you'd expect. Working this way is fine for simple setups but I'm glad I've moved onto saner workflows for my larger projects!

Oups, my connection string is visible by everyone

I know people that still work like this lol. Fixing stuff right in production.

That's actually normal now. We've come full circle, but it's called "observability" - since you can't integration test the 100 microservices that you have (for no reason), just throw it into prod and see of anything turns red.

And "feature flags"...

I'd suspect it should be possible to test those 100 microservices. If you can do something, then you can do it twice, especially if your automation is good. If you can't, then maybe some of the systems came together in a non-reproducible or undocumented way and it's time to clean up a little. If you know your traffic you can build load tests that simulate production use.

Ahh feature flags, the new #ifdef.

Running tests in production doesnt mean you didn't run an array of other tests in pre production envs

Also, 'live editing' != testing in production.

You could find a bug in pre-prod and live edit it in prod

It’s not that I want to, it’s that I’m forced to.

It's obviously not really suitable for businesses anymore, but if you don't have a personal site that you can do this on, I feel bad for you.

I am so glad I am not the only one. May be I will admit I am stupid. Because every time I think back everything was simple. It wasn't easy, some things was slightly tedious, but it was simple.

Now most of the time I dont have a clue why anything works. It is blackbox feeding into another blackbox which relies on another blackbox somehow we all agree that is how things should be done so we stick with it.

Big fan of Netlify and also their director of developer experience, Cassidy Williams. She's able to distill "life as a developer" accurately into memes. 'Tis a gift. Her twitter with best memes: https://twitter.com/cassidoo Recent interview: https://srcgr.ph/cassidy-williams

This reminds me of how deployment used to be for simple things on the web. You'd develop locally then ftp it onto your servers.

I understand what you are saying, but simple things still exist, and it is the same way as it used to be.

agreed. I make the same point about LEGO. whenever yet another person complains about all the big/special pieces that have become more common in recent years. Its like... do they realize we still have all the same basic rectangular bricks, plates and tiles we ever had? except in many more colors and variants and ponies and rainbows and BBQ etc etc etc.

The old web is still there for us, if we let it, just as the old LEGO is still. we simply have to choose them, and promote them, and build with them.

Its fully up to us.

Wait BBQ?


IIRC, this is exactly how prolific indie startup founder levelsio does it to this day.

Described here https://levels.io/deviance/ (Dec 10, 2020)

> I write my code in Sublime Text, then I test it on my laptop (I have NGINX locally, so I open nomadlist.test for ex), then if it works I upload it with Panic Transmit via SFTP.

My naive question is: what happens if one user (or more) is making a payment at the very exact moment the code uploading is happening? My naive answer is: I don’t know, it could crash (e.g., half the code base has been uploaded to the server but the other half is still being transmitted… but code in the first half references code in the second) or not.

Am I missing something? I imagine failures like this one are of no importance to the author (which is totally fine, trade offs I know).

The way it used to work was that the upload went into a copy of the website, ideally created on a COW (copy-on-write) filesystem to avoid copying files that hadn’t changed and then you would change an alias or hard link to point to the new upload after confirming it was all there. Existing transactions would continue using the PHP code or whatnot stored in a cache (e.g. xcache or apc cache, but the new code could be read in and then new incoming requests could switch over so the new code starts serving new incoming requests when the new page cache is primed. Fancy configurations might use sessions for this, if there was shared session state to migrate. That said… most of the time, most folks didn’t think much of the occasional 500 as something new deploys. After all, you refresh and it’s gone, most of the time. And your internet or computer or browser is often as much to blame for problems as the website deploy, if it affects very few users during infrequent deploys of changed pages. The more fun task was what to do about database migrations. The traditional approach is “just take the site down for a minute, nobody cares,” as I said…

Probably the third-party payment integration is available (that is not a single php uploaded manually :)). So either the api call goes through and it gets completed or it does not go through and no charges. As long as the whole payment is on a third-party (like Stripe) I do not think there would be an undefined state.

It's a single file app ;)

He's proof that techies overthink things... he's doing $1M+ yearly with nomadlist.

Not only that—it used to perform really well.

For years, a repeated (if, sadly, uncommon) experience for me has been:

"Holy shit, this web site/app is fast!"

Looks at URL bar, sees a '.php' at the end

Yeah, I remember I used to work at a perl webshop, and I was experimenting with PHP.... I actually lost a half hour or so trying to figure out how to get my site to refresh and rerender, and it turned out it was! But it was so much faster than Perl that I assumed nothing was happening. Hey, I was young, don't be too hard on me!

There's a web framework performance comparison project out there that makes HN from time to time, and IIRC the findings have been you basically can't reliably beat PHP performance at serving dynamic web sites without resorting to a compiled language—and even then, it's far from guaranteed.

I haven't written much PHP in a long time, but I'd believe it. There are some really slow programs in PHP (Wordpress...) but the language is damn fast. Its tendency to be only a thin wrapper over C or C++, such that one rarely spends much time in PHP itself, is probably the main reason.

I'd absolutely believe that. A bigger contributing factor was that our Perl site was launching a process that parsed some libraries and then served HTML. While the php site was using a server extension that kept a parent process running and just spawned a thread for page requests.

Again, don't judge me - I was very, very young. :-)

I remember those days. Before framework were popular for PHP sites and SQL injection was not just possible but expected for anything that ended in .PHP or .php3 …

SFTP live editing ftw!

under construction gifs abounded but the rough edges made things a bit more approachable.

For individual developers not working in teams this is still a pretty good approach.

Can anyone recommend the most effortless static site generators to go along with this?

I'd love something that I can just pick a template, write a command, and have a basic starter site for my idea up and running in less than 15 minutes.

My ideal workflow would be something like:

1) Buy a domain

2) npx create-fast-site --template basic-landing-page

3) echo "Hello, world!" > home.md

4) npm run build

5) Drag and drop build directory to Netlify

6) Add my domain to Netlify

For what it’s worth, my favorite is Eleventy https://www.11ty.dev/ It has a plethora of templating options, and I find the dev experience to be very nice. It is very flexible, and does not force you to follow any rigid pattern, like many others do.

I’ll do you one better. Make an HN account, submit your blog posts as a text submission. Get a domain and redirect it to:


Or even better better, get a domain, make an index.html with two tags in the body, like so:

<H1>My blog posts</H1>

<iframe src=“https://news.ycombinator.com/submitted?id=yosito” />

Then just make your posts on HN.

This is a clever hack, serverless!

Review the list and pick something written in a language you're most comfortable with, which has a decent amount of stars indicating the dev/theme ecosystem.


Do the letters in Jam stand for anything like they do in e.g. LAMP? There was no acronym expansion or mention of the name's origin on jamstack.org's top-level page.

Edit: eventually found an original definition on Wikipedia: "Javascript, API and Markup (generated by a static site generator)"

Jekyll still fits the bill. It is simple, does data with collections, supports templates(which accept parameters and can thus be "component-ized"). It's also supported natively by GitHub which is a big plus, because you can hook up your repo to a custom domain for free too.

I've found Hugo to be a good option.


Hugo is absolutely fantastic and incredibly powerful. It's nowhere near as simple as was requested. It's the most setup of any of the SSGs worth using.

I don't find it powerful at all. Very hard to map through structures in templates.

Much easier to write templates in a real language.

Most of the time I need to map data to something else suitable for rendering. That mapping goes from markdown frontmatter to some nice form.

I ended up not using templates at all due to how cumbersome it is to write any kind of data transformations inside the template language.

Might as well just generate html myself.

A nice example is generating menu contents from a list of menu items with their sort weight and links. Ends up being very cumbersome.

The biggest issue with Hugo for me was trying to create a custom theme (in order to get a stripped-down site without a bunch of BS), everything breaks if you don't arrange all the files exactly the way required by Hugo themes.

Once I got that, and learned some Go templating in the process, it's just markdown files, fire and forget.

Agreed. I have been using hugo for my blog https://erock.io and I still don't completely understand how it works. I just have enough to pattern match on to figure things out

It does indeed have a bit of a learning curve. IMHO it’s worth the investment, YMMV.

1) Fork a svelte-kit or next project on GitHub

2) Open Vercel (or Netlify)

3) Select the repo you forked

4) Add domain

You're live

If you want something blog-like: https://github.com/rodneylab/sveltekit-blog-mdx

Can confirm. Took me about 20 minutes last week to purchase a new domain, change name servers to Cloudflare, create a Vercel account, setup a project, add a custom domain, and then update A/cname records. I'd never used Vercel before then.

I've used eleventy (https://www.11ty.dev/) with Netlify and it was very simple. Eleventy is the most featureful static site generator out there, but its probably the easiest to use.

For my blog I'm using Next.js with https://mdxjs.com/ and if you know react it's great

Oh, mdx looks really cool. Could be cool to build a data viz blog with that and OWID's grapher.

A new player here is Astro --> https://astro.build/ It is surprisingly simple. Made by the folks who created snowpack.

Intresting that they're switching from Snowpack to Vite then.

I use zola now. With esbuild if I need to compile/bundle js.

+1 for Zola

I wrote a post on my reasons for moving away from Hugo


I second Zola. I use it with tailwind too.

I was completely confused with tailwind/headlessui when I tried out the Next.JS starter kit a few months ago. Then I slowly replaced my custom CSS with tailwindcss, and in about an hour only tailwind was left.

Something delectable about starting off "wtf is this stupid shit?" and ending with "it all makes perfect sense". Also heroicons.

Been playing around with Zola. Need to get tailwindcss hooked up.

I ran into an issue when building with netlify.


Tailwind doesn’t work natively w Zola, but because Zola is so fantastic it’s super easy to use a makefile or npm build script or something and effectively bolt on the integration quite easily

I've heard good things about https://gohugo.io/ (written in Go) and https://elderguide.com/tech/elderjs/ (uses Svelte), I've never used them though

Bet on Eleventy... the creator of it works for Netlify

Alternatively, you can use something like https://blot.im/ - "...turns a folder into a blog... you put files inside your blog’s folder [and] they become blog posts."

Please please contact me. I’m working on something that’s even easier. It will be open source so this is not a marketing pitch. But it’s quite near the point where I would like outside eyes on it.

I'm trying it out now, but I am finding that Svelte Kit does this.


I thought Netlify has already made a drap-and-deploy feature at the bottom of https://app.netlify.com/teams/{username}/sites , any difference for this?

this was the OG iteration of Netlify called BitBalloon - visit a page and drip a folder in and have it be hosted. critically, you can do this without signing up first - which is nice for user acquisition

It's also nice for pirates and pornographers. :D

Don't forget data-exfiltration, malware hosting, and C&C!

That’s exactly where my mind went too. So easy for this to be exploited.

If I remember correctly, I this was the original product Netlify started with.

Not new, but just been here the whole time.

I've been looking for exactly this for a long time! I have also hosted a static (11ty) site on Netlify for a long time!

...and so I can't help thinking there's some dots not being connected somewhere, either in my brain (likely) or in Netlify's communication of their products and offerings (possibly?)

Yep! Netlify's schtick has been easy deployments (including drag and drop) since the start!

This seems so clearly the right capability to offer with the right features incl. https and custom domains. Are there a dozen other versions of this already?

There’s also https://render.com/, which hosts your static site from a GitHub repo (can be private) for free.

That’s about the only popular alternative I had found about a year ago.

Render is great. I'm using it for my current project. No complaints. Simple, and effective.

There is also https://www.stormkit.io/

and https://surge.sh/ should always get a mention when static site hosting comes up

This certainly wins on convenience and accessibility for non-developers.

I was working on a similar concept, but it still required some dev skills (use curl or github actions) - https://www.gostaticapp.com/

What could possibly go wring with dragging and dropping folders to share with the world instantly?

How is this not abused to hell?

It will be. I remember Dropbox having this exact same feature in 2015. A dev once sent me a basic HTML prototype as a public Dropbox folder w/ CSS and JS and HTML files. It worked great.

Then one day, Dropbox shut down that feature. Pretty sure there wasn't any announcement.

Static content, no server side. Plus it's temporary unless you sign up for an account.

You can still post horribly illegal content and make nefarious calls to other services from a static site.

They do, but nobody cares. I'm sure if you report them they'll do something if it violates their TOS.

In practice, I've seen these being used for black hat SEO and copyright infringement.

The pages are temporary.

And not really that different from the other free hosts out there (Github Pages, Vercel, Cloudflare Pages, Gatsby, Google App Engine). It's just easier to use.

I know Netlify does much more, but can I use Netlify in the very simple way I use surge.sh?

- deploy the contents of a directory to a persistent url in seconds

- optionally tie a similar deployment to GitHub or Gitlab events (pull/merge requests)

- tear down urls as fast as I deploy them

I rely on surge.sh to do these things within a megacorp because our home-built tools just suck by any comparison.

More or less, yes you can do that. Netlify works well with git-ops and will automatically build and publish to your prod domain or hidden staging domains based on easily configurable rules. Their docs explain it pretty well.

> HTTPS is automatic

> Have you seen the little green locks on your browser? That means the site is safe and secure using HTTPS.

It's gray.

Not to be nitpicky - maybe it's just my OS theme (KDE Breeze Dark), but the HTTPS padlock is gray or dark-white in all three browsers I tested: Edge, Chrome, Firefox. Can anyone confirm?

The perils of describing the UI of a fast-developing app.

Now tell me what icon is on your browser's Home button! :-)

Gray for me on Chrome, Windows 10

Who is still making multi-page websites the old fashioned way? This won't even support PHP, so you have to update your menus manually across each page if you add/remove a menu item. I understand SSGs can create templates, but isn't everybody using Github pages to publish? Is a drag and drop solution the way to go to pull those users away?

I have a Digital Ocean droplet with PHP installed, so I can drag and drop a simple folder-based website and only update the PHP include files if there's a change that needs to be displayed sitewide.

SSGs seem overly complicated to me considering that most web hosts already come with PHP installed, and the main benefit of such sites (dynamic menus) can be handled by a couple of lines of code.

And here I was thinking PHP is definitely “the old fashioned way”.

There are tons of static site generators[0], and it’s fairly trivial to have a complex web app not require a hosted server since you can use local storage, web workers, Firebase, etc.

[0]: https://jamstack.org/generators/

TBH I find it completely wild that someone prefers PHP to a statically generated site (Assuming you can get away with statically-generated). Just serving static files is way way way faster than running a backend, not to mention all of the process efficiencies you get by not having to manage servers etc.

When I update my blog (statically-generated), I add an .md file containing the blog post, commit it to git, and push it to a git repo. A quick CI/CD build fires off which generates the HTML (~1 bash command in a docker container) and pushes the static files to a file server. Easy!

I guess it depends on how a person started off with web dev. I have always made personal web pages directly inside an .html or .php site. Instead of "##", I used <h2></h2> and so on. I don't code for a living so my practices will seem pretty archaic because there's no git, no Webpack or script minification/Gzip involved.

I remember starting an Android course ~9 years ago and then giving up within the first hour because I could not configure the Eclipse environment properly. I think the same would have been true of web dev if I had to set up a Docker container just to get to "Hello World".

HTML has that "just works" quality that kept me interested in learning.

If you want to work with html files, you can always add a CDN link to something like Marked: https://marked.js.org/ You can enter the text of your post in markdown but it will be rendered as html.

Running PHP doesn't necessarily mean "managing servers", that's what hosting providers are for. And static sites have their own limitations, so it's not that surprising that people prefer the flexibility.

Having php available opens many doors if you wanted to add something non-static even something small.

Not running a backend can be limiting and force external services for simple tasks.

I have picoCMS (php).

I just open my FTP, drop a markdown file, and that's it. No repos, no CI/CD, no nothing.

The normal way to publish is to point them (Netlify and alternatives) at a git repo and they pull, follow configured build rules, generating the resulting static site (then updating it whenever the repo sees new commits). This drop mechanism is likely just to draw people into the ecosystem by making it easily demonstrated, but clearly isn't a long term solution.

Iirc, Netlify was for jamstack...if I recall from their early marketing stuff on my emails.

That would be great if they could provide FTP info so we could finally go full circle and get back to uploading our websites with an FTP Client!

Firefox and Chrome have removed FTP support recently. Very strange move IMO.

Yeah I remember this as BitBalloon as well, its how I ended up with a super low Netlify user Id as well :)


Anything new since then you think?

Reminder: you don't have to upvote it to enjoy it. Upvoting isn't 'mark as seen'.

Not new people!

This is awesome!

ThanosJS ;)

Except for PHP files ?

Netlify only serves static content (usually after a build process).

Drag/drop of php into a free service sounds like it likely wouldn't last long. You would have to spend a lot of time figuring out how to deal with resource use and security from your new customers.

In the metaverse, you will carry your site and place it in a box called the “internet”.

I’m Mark Zuckerberg, and I’m a visionary.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact