Ask HN: Getting started with web app development - <AUTHOR> I want to develop a single-page web application. Let's say it's something like Gmail.
I have quite a bit of development experience in general (not web), I know JavaScript syntax and concepts. The problem is every time I want to start with web development, I get stuck on researching what tools I need for it. Where do I start?
To give an idea of what kind of answer I am looking for, I will give an example in my field of expertise (Android native app development). De facto standards for Android development:
- Java is the language of choice
- Android Studio would be the IDE
- Gradle build system
- Maven repo for package management
- Android SDK as a main framework
- Google Play APIs and Android support libraries would be the standard dependencies required for most projects
- Template for an app can be generated by Android Studio
Is there something similar for web development? What's the standard or at least most popular choice for toolset for web app development? Does my question even make sense? <comment><USER2> Single page is JavaScript so try to focus on that and not backend frameworks.

Easiest way to start an app is to fake the hard parts first. Use dummy JSON data in JavaScript directly. Or if you know how, you can spin up a very simple REST API using the framework you know and again, output static JSON (no database). Node/Express or Python/Flask can be very very quick and easy for this. Now that you have sample data in a JSON structure, emulating the backend, what do you plan to do with it?

Enter front-end. Start with something like React for the UI parts. Start small. You'll learn JSX, ES6 and webpack likely. Eventually when you have a few components, learn about state and properties and you'll want to call your data from the backend API.

I'm using VS Code editor and love it, supports tons of languages, fast.

<comment><USER3> Vs code is good - I recently tried it. Vs studio has good drugging features - saw it in youtube but it's not available for Mac.

</comment></comment><comment><USER4> Let the flame wars begin :)

The 3 dominant frontend frameworks React+redux, Angular, Ember

npm is the dominant package manager

Build systems: Gulp is the most popular or if you use webpack you won't need it

bundlers/loaders: webpack, browserify, systemjs

IDE: well too many to list Webstorm is my personal favorite

code generation: Ember cli, Angular cli, if you use react with redux there is redux cli

The most integrated and easy to start with is Ember it comes bundled with everything you need so basically your only decision is which IDE to use.

<comment><AUTHOR> What about UI components for Ember? I did some research and for react one of the most popular options seems to be material-ui, for angular there is angular-material. What's the most popular choice for Ember?

<comment><USER4> there is Ember paper and Ember bootstrap

</comment></comment></comment><comment><USER3> I'm new to web app development as well. I've a background of system development and mobile app development. Choosing backend development was one of the things I spent some of time on. One of the first things I tried was to build simple rest api backend using Java on google app engine. Then used Django Python frame work. Then nodejs with express.

Then coming to frontend - I had some idea of JavaScript and jQuery. After trying angular and react - I picked angular since its a ready mv* framework and its concept like two way binding, modules, dependency injection seemed intuitive to me. After trailing two sides - I decided to go with MEAN stack. Primary reason was its in one language. No context switching of language, IDE etc. I think it has been good decision since.

Having said that : angular entices one in beginning but has a learning curve but then it's a ready mv* framework. for somebody new its not bad to start and understand how it is done by something which is ready. (Search angularjs architecture in Google images - a architecture picture worth a lot of documentation)

Nodejs programming style is async. One needs to get used to it. Npm repo is great community and package called 'async' is really helpful to get good grip on nodejs. And the idea of async IO is way efficient is something I've experienced in writing network libs but rather painfully. So I was sold to pick nodejs which is async by design.

Given another chance I would look at other front end framework since I kind of get primary ideas of frontend framework now.

IDE - atom is good. webstorm has code navigation and automatic drop down of functions for nodepackages. Hence I am on it.

Grunt for test, build automation. Mocha chai.. for tests.

</comment><comment><USER5> The standard set of tooling for the web is HTML, CSS, DOM JavaScript API and HTTP in that order. Everything else is an abstraction over the top.

Drawing an analogy with Android, the web equivalent is the browser (which in my experience was a lot less obvious than it sounds, but it's even money I'm below average). "JavaScipt" has two very different connotations. There's a language with syntax and datatypes. That's what Node runs. And then there's the JavaScript API for all the various flavors of web browser and these are very very different things in practice that get lumped together in Google's search results.

To me, it appears that the Googley black magic that makes Gmail possible is Kubernetes. Which is a round about way of saying that 'single page web app' is really an architectural decision related to the user interface and orthogonal to technology stack and to overall application architecture [by which I mean that a single page web app can be client server like Gmail or stand alone like a simple game].

What I'm saying, in my round about way of saying things, is that the backend should do what it needs to do and the technology stack of the back end should be chosen to do that thing. The good news is that HTTP isolates the technology of the front end from the technology of the backend. The bad news is that that means that the front end has to deal with low level concepts like a communication protocol in addition to the high level abstractions of its business logic.

Circling back, HTML, CSS, DOM JavaScript API and HTTP in that order, is a good stack to start with on the front end. On the back end, nearly all commonly used languages will provide an HTTP server as a one liner.

In terms of research, these are the easiest to find good information. Furthermore, knowledge of them is assumed for most web tools and any higher level language/library/tool starts bouncing off of them pretty quickly.

That was way more than I meant to write.

Good luck.

</comment><comment><USER6> Your question makes sense, but web development is all over the place. Everyone has their favorite tools and techniques.

[http://typicalprogrammer.com/the-things-you-need-to-know- to-...](http://typicalprogrammer.com/the-things-you-need-to-know-to-do-web- development/)

</comment><comment><USER7> There is no such standard in the Web. Everybody is going to tell you something different. The other guy suggested a full JS stack, i would suggest Rails. The next may suggests the .NET stack. There is simply no standard, just use what you think fits your style.

Things to look at:

* Rails

* Node

* Django (maybe?)

* Spring (if you like Java)

There is a completely different tooling ecosystem behind each of those.

<comment><AUTHOR> Thanks for suggestions. My guess was that for fully dynamic website (like Gmail), full JS stack would be a better fit. Please correct me if I'm wrong.

<comment><USER7> IMO there is no reason to think that is the case. If you feel comfortable doing all in JS it sure is a fitting choice. But for example also Rails comes with real time functionality these days.

I still strongly believe there is no right or better in the web, just different approaches for the same solutions.

If you are not yet fully focused on JS, but have no idea what else, just pick a community you think you would like to be part of. (This for example disables me to use PHP, JS & .NET)</comment></comment></comment>


The Pirate Bay is online, waving a pirate flag - <AUTHOR> http://thepiratebay.se/

<comment><USER2> Looks like the site is hosted on Binero[1].. which is a pretty cheap one-click setup web hosting provider. I don't think it is likely they will open the torrent site while hosting there. Probably a temporary solution if they are working on something else.

[1] $ dig +trace thepiratebay.se

<comment><USER3> The video is leeched from isohunt, weird.

</comment></comment><comment><USER4> I confirm it's the real Pirate Bay. Annoying ads everywhere, even with no content to show... /s

</comment><comment><USER5> My ISP is seemingly blocking that site. I can access it from my DO VPS, though.

</comment><comment><USER3> now it has a strange forward time counter and a hash...

<comment><USER6> time since the last police raid</comment></comment>


Israel's Beresheet Spacecraft Moon Landing Attempt Appears to End in Crash - <AUTHOR> https://www.nytimes.com/2019/04/11/science/israel-moon-landing-beresheet.html <comment><USER2> I was just watching it live, cheering for SpaceIL, it's a pity that the landing was not successful.

I was part of the engineering team of the Japanese team Hakuto of the Google Lunar XPRIZE. I always wondered how it would feel to be in the control room at this time, but our launch deal fell through. I can understand what the SpaceIL engineers are going through right now.

Congratulations to all the SpaceIL team for reaching this far, your work has been impressive. Keep trying and you will make it!

<comment><USER3> Maybe not a success this time, but a lot will be learned. These types of failures are now we learn, adapt, and move forward.

<comment><USER4> I doubt SpaceIL will be able to use anything they learned. IIUC they are out of money and can't move forward.

<comment><USER5> The prime minister of Isreal announced they'll try again in two years. So that judgment may be a little premature.

Regardless knowledge transfer isn't limited to either of those.

<comment><USER6> Is this a government venture or private? I read that it is private but then I see quotes about the PM like this.

<comment><USER7> Private but partially funded by the government; the PM was at the launch and had (before the crash) been trumpeting it as a success for the country as a whole

</comment></comment></comment></comment></comment></comment><comment><USER8> What appears to be the last image the spacecraft managed to send before it crashed:

[https://twitter.com/EladRatson/status/1116427960033136640](https://twitter.com/EladRatson/status/1116427960033136640)

</comment><comment><USER9> So: first attempt to get to the moon (by them, who are not quite USA or China) and they just fail at the very end.

Like getting a silver medal at the Olympics. Yes, sad. But man!

<comment><USER10> With a population of < 3% of the USA, < 1% of China.

<comment><USER11> Right, and I'm sure they didn't get any tech or mission critical help from the US.

Don't get me wrong, good on them for doing this, but let's not pretend like this happened in a bubble away from anyone else.

<comment><USER12> > I'm sure they didn't get any tech or mission critical help from the US

What's your point? NASA got a bunch of help from Nazi scientists.

<comment><USER13> If someone puts a gun to your head and says "Do this thing or you and your family will be executed" it doesn't make you the same as them. Coming from Nazi Germany does not make them necessarily Nazis.

<comment><USER14> Well, Von Braun was most definitely a nazi and not driven by threats of bodily harm. He was just very into rockets, and worked with whoever let him develop them.

</comment></comment></comment></comment></comment></comment><comment><USER15> As they say, space is hard and SpaceIL is hardly the first to have lost a lander.

[https://en.wikipedia.org/wiki/List_of_missions_to_the_Moon](https://en.wikipedia.org/wiki/List_of_missions_to_the_Moon)

It came tantalizingly close to working, though, and I have high hopes for future attempts. _Per aspera ad astra_.

<comment><USER16> Thanks for teaching me a new Latin proverb. I like that very much.

</comment></comment><comment><USER17> It seems that they just got a new word in the dictionary: [https://mobile.twitter.com/teamspaceil/status/11163129311033...](https://mobile.twitter.com/teamspaceil/status/1116312931103399937)

I find it a bit irritating to be that cocky when it comes to space technology. Better luck next time!

<comment><USER18> Count your blessings.

They are the 4th country to reach the Moon (albeit at 1km/s).

<comment><USER19> No, they would have been the 4th country to _land_ on the moon. Both ESA and ISRO have previously conducted (intentional) impact missions.

<comment><USER20> khuey with the correction. Yes they would have been the 4th country to land on the moon. They settled to be the 7th country to orbit.

</comment></comment></comment></comment><comment><USER21> It's time to retire the tired old nation-state space-race narrative. We're all in this together people. Their failure is our failure.

<comment><USER22> Nothing could be further from the truth. These folks are fierce with nationalistic and sectarian pride in their vehicle.

[https://mobile.twitter.com/teamspaceil/status/11163129311033...](https://mobile.twitter.com/teamspaceil/status/1116312931103399937)

<comment><USER23> It took me a while to understand what's going on in these comments before I was reminded of the 30 Rock episode where a Canadian character has trouble understanding sarcasm because there aren't many Jews there.

But still, did you all miss the winking emoji right there following the text?

</comment></comment></comment><comment><USER24> > On the way down, the main engine cut out. The engine was successfully > restarted, but then communications were cut off, and no more information was > sent back.

Definitely a terrible time to have an engine failure :/

<comment><USER25> _then communications were cut off, and no more information was sent back._

Have any of these moon landings been done at night where people have been able to watch it happening through a telescope? Or are things so small at the moon's distance that there'd be nothing to see?

<comment><USER26> The resolution a 10 meter telescope on Earth can make out of the moon is about 22 meters per pixel. We can yet make out the moon landing site with earth based telescope.

<comment><USER27> Making a 23 metre mark on the moon seems like a natural project for some country, then. Perhaps easier than orchestrating a soft landing.

There are lunar retroreflectors about a metre across [0] that are detectable with optical equipment, for some definition of optical. But to leave a mark that can be seen from earth - to leave your tag, or an X, or a crude drawing of a penis and testes - surely that's an urge as old as art itself.

[0][https://www.nasa.gov/mission_pages/LRO/multimedia/lroimages/...](https://www.nasa.gov/mission_pages/LRO/multimedia/lroimages/lroc-20100413-apollo15-LRRR.html)

</comment></comment></comment></comment><comment><USER28> Surprised by the sheer number of naysayers on the thread. What is wrong with you people?

7th country to get that far in space, 4th to attempt to land, those are enormous achievements for a country that's has 2/3rds the population of New York (city, not state) and doesn't have a hundred billion dollars to burn in a dick-measuring contest. They'll launch another one and land next time.

If Israel knows anything, it's how to persevere.

</comment><comment><USER29> Article subtitle: "The failure of the landing highlighted the risks of a fast and cheap approach to space exploration."

I would say the opposite. Not specifically just in reference to this mission but in general. They now have a lot of experience and data to use going forward for "not much" expense. A lot of extremely expensive missions were lost because they didn't have the opportunity to iterate.

<comment><USER30> The history of rocketry really took off during WW-II, and was further refined by the military (generic, but pretty much the nations that have successfully landed on the moon), further developing and releasing to civilian government, and eventually private interests.

If I were to make a guess extrapolation to air-flight we're probably still roughly in the 1940s. Private space flight is making things more standard and long-run production instead of one-offs; but we aren't there yet and haven't found workhorse designs that are both reliable and cheap. Experiments like this will hopefully help us get there.

<comment><USER31> 30s, but OK.

Aircraft production was fully industrial going into the 40s.

</comment></comment></comment><comment><USER32> If at first, you fail, try and try again. This was sobering. I watched expecting the normal rush I get when watching live events of this nature but it was not to be.

</comment><comment><USER33> Still a great achievement! An inspiration for all kids looking to do science.

</comment><comment><USER34> Discussion prior to the outcome: [https://news.ycombinator.com/item?id=19634570](https://news.ycombinator.com/item?id=19634570).

</comment><comment><USER35> That's got to be tough: successfully going ~300000km from Earth and then see it fail in the last couple hundred meters. With nothing you can do.

<comment><USER11> Landings and take offs are always the hardest part of any aerospace event. You're much more likely to see system or mechanical failures when you first start everything up or try to stop moving on an uneven surface.

</comment></comment><comment><USER36> Why do we give aid to space fairing nations? Couldn't the aid be better spent on our own space program?

<comment><USER37> It seems Israel is doing just fine economically and technologically. So I don't get why US politicians still justify giving out O($billion) every year in foreign aid while there are ample opportunities to spend them in their own country.

<comment><USER38> Cause all the aid is conditioned on them using it to buy US military hardware. It's roundabout military spending.

<comment><USER39> > Cause all the aid is conditioned on them using it to buy US military > hardware

Not true, only 3/4 of it. And it's not an explanation, otherwise they could give the same aid to any other country, but they don't.

"Israel is the largest cumulative recipient of U.S. foreign assistance since World War II."

[https://fas.org/sgp/crs/mideast/RL33222.pdf](https://fas.org/sgp/crs/mideast/RL33222.pdf)

</comment></comment></comment></comment><comment><USER40> I am not sure what connection that Buzz Aldrin had to the folks at SpaceIL but thought he had a pretty classy tweet tonight. Guess everyone in the space community pulls for each other.

[https://twitter.com/TheRealBuzz/status/1116458014708420608](https://twitter.com/TheRealBuzz/status/1116458014708420608)

</comment><comment><USER41> Well they got very close. I really can't get enough of images from space. The gallery linked from the article was pretty good.

[https://www.nytimes.com/interactive/2019/04/11/science/space...](https://www.nytimes.com/interactive/2019/04/11/science/spaceil- beresheet-moon-photos.html)

I haven't been able to find what it would have done had it landed correctly. (edit) I guess it had a few scientific instruments and a "time-capsule" of sorts. Wikipedia editors are fast, they already have the crash on there.

[https://en.wikipedia.org/wiki/SpaceIL](https://en.wikipedia.org/wiki/SpaceIL) \</comment><comment></comment><comment>--- Payload

The spacecraft carried a "time capsule" created by the Arch Mission Foundation, containing over 30 million pages of analog and digital data, including a full copy of the English-language Wikipedia, the Wearable Rosetta disc, the PanLex database, a Nano Bible (complete Bible in Hebrew), children's drawings, a children's book inspired by the space launch, memoirs of a Holocaust survivor, Israel's national anthem (Hatikvah), the Israeli flag, and a copy of the Israeli Declaration of Independence.[8][35][36][37][38]

Its scientific payload included a magnetometer supplied by the Israeli Weizmann Institute of Science to measure the local magnetic field, and a laser retroreflector array supplied by NASA's Goddard Space Flight Center to enable precise measurements of the Earth–Moon distance.[39][40] \</comment><comment></comment><comment></comment><comment>---

As an aside, the youtube video series on the original Apollo launch computer it pretty neat. (The core memory on those old machines was nuts..)

[https://www.youtube.com/user/mverdiell/videos](https://www.youtube.com/user/mverdiell/videos)

</comment><comment><USER42> Great name ! In Hebrew, it means " In the beginning..."

</comment><comment><USER43> The saddest thing is that the moon men are still bereft of queso: [https://www.kvue.com/article/news/weird/austin-queso- launche...](https://www.kvue.com/article/news/weird/austin-queso-launched- into-space-crash-lands-on-the-moon/269-b9180441-c518-40c4-af37-1898ba9e528b)

</comment><comment><USER44> A hard landing is still a landing. This is rocket science, not general aviation.

</comment><comment><USER45> I don't understand how you even attempt to recover from failures that occur during a descent like this. Latency to the moon appears to be 1.3 seconds. How much time do you have to do anything?

<comment><USER36> Multiple 'if' statements and then backup modules loaded with more 'ifs'

</comment></comment><comment><USER46> Why did they not have live video of the landing attempt? Should be double shouldn't it? What was used in the 60s to broadcast the landing?

<comment><USER4> This was an extremely low budget mission. Live video is of course doable, but probably not with the budget.

</comment></comment><comment><USER47> So is this the first moon wreckage?

<comment><USER48> Far from it. Both the USA and USSR have crashed multiple landers before successfully touching one down. And that doesn't even count intentional "impactor" missions that came before that.

<comment><USER49> ...and a billion years of meteorite rubble

</comment></comment></comment><comment><USER50> After seeing how people drive in Tel Aviv, I'm not surprised.

</comment><comment><USER51> Too bad. "You just destroyed a 100 megabuck lander." Alternatively, 85% of a Juicero.

</comment><comment><USER52> So now you want to convince me that in 1969 they could man land on the moon and then come back to earth and in 2019 they still trying to nail down the tech ?

<comment><USER53> How much did NASA spend in the 60s?

<comment><USER52> What technologies did they have in the 60s? I computer used to cost thousands of dollars and its the size of your room in the 60s also.

<comment><USER53> We have both landed and crashed on Mars and the Moon recently. We're not just trying to figure this out, we're trying to figure it out AND do it cheaply.

</comment></comment></comment></comment><comment><USER54> Do I detect a bit of condescension in NYT's tone? Do we need to remind the numerous failures US & USSR had before they got their space program off the ground? Also, they forgot India who did send a lunar orbiter and sent a probe on Moon's surface back in 2008.

<comment><USER4> Chandrayaan-1's Moon Impact Probe was an impactor, not a lander.

<comment><USER31> Both were, in the end.

But this one was going slower.</comment></comment></comment>


History of San Francisco Place Names - <AUTHOR> http://sfstreets.noahveltman.com/ <comment><USER2> Hey guys, I made this map. Happy to answer any questions about how it was done, I'm going to do a detailed writeup when I have a chance. The short version is: no Wikipedia link-up, it's all manual research from archives, books, and sites (including Wikipedia). There are lots of Wikipedia links included but that's just for people who want more detail than I included in the descriptions. I parsed the street/polygon geometry from OSM and tied it together with Leaflet and then added lots of nitpicky extra design choices in JS.

<comment><USER3> It's great! Any chance you could overlay the neighborhoods and their name origins?

<comment><USER4> It would be fun, but really tough, and occasionally impossible.

Not all of the origins of the names of neighborhoods are known. The one I've always wondered about was the "Tender Loin"/"Tenderloin" district of SF. There are a lot of anecdotes about the origin of this name [1] but no one has a definitive answer.

[1] <http://en.wikipedia.org/wiki/Tenderloin,_San_Francisco>

</comment></comment></comment><comment><USER5> Very nice. I've been curious about the origin of Gough Street and was quite amused by the explanation:

 _Charles H. Gough - A local milkman who served on the 1855 committee tasked with naming the streets of the Western Addition. He named Gough Street after himself and Octavia Street after his sister, and may have named Steiner Street after a friend._

<comment><USER6> According to Last Call by Daniel Okrent, Gough St was named after famed temperance orator John Bartholomew Gough. I'd assumed that was true until I saw this site. Wikipedia has support for both theories, but it looks like Charles H was the real namesake.

</comment></comment><comment><USER7> Been planning on making an app that does this based on current location. The government in South Australia lists source information like this along with almost every named street, suburb, etc. Should be standard worldwide IMO.

</comment><comment><USER8> One item of curiosity: We all know who recognizable figures such as Lincoln, John F. Kennedy, and MLK Jr. are. When did they decide to name streets after them?

<comment><USER2> Been planning to add this, dates for when the street got its current name (when available). Coming soon!

</comment></comment><comment><USER9> This is awesome. It would be cool to see neighborhood names, too, when they aren't linked directly to a street

<comment><USER2> Yeah, there are lots of categories like neighborhood names that have their own interesting stories but I wasn't sure how to display. Definitely lots of room for improvement, there are also plenty of gaps in the streets, I'll hopefully be able to fill some of those in in the coming weeks.

</comment></comment><comment><USER10> Equal representation for O-Town!! What's the history of T-graph? Peralta? San Parblo? I bet MLK (nee Grove) has some interesting history.

(I assume T-graph followed a telegraph route between Oakland and Berkeley. I more or less know where West MacArf got its name.)

<comment><USER11> MacArthur is for General Douglas MacArthur. It was cobbled together from a bunch of existing streets to provide a through route to the Bay Bridge when the bridge was new.

San Pablo is the road to the town of San Pablo.

Peralta is from Don Luís María Peralta, owner of Rancho San Antonio.

</comment></comment><comment><USER12> Thanks for this. I've heard that some of the alleys south of Market got their names from the proprietors of brothels in that area, such as Minna, Natoma, Tehama, Clementina. Can anyone debunk/confirm this?

</comment><comment><USER13> I've always wondered if Howard Beale in the film Network was named after the intersection of those streets in SF. Alas, this does not answer that question.

</comment><comment><USER14> Bookmarked! I'm going to use this when I'm cruising around the city next time (perhaps OracleWorld/JavaOne).

<comment><USER2> FYI, if you view it on your phone, you should be able to use the link in the lower-right corner to zoom to your current location!

</comment></comment><comment><USER15> Sweet! How did you reconcile Wikipedia concepts with the line geography of streets?

<comment><USER16> It looks like it was a manual process:

<https://twitter.com/veltman/status/328613691392143360>

</comment></comment><comment><USER17> dude this kicks so much ass.

</comment><comment><USER18> super cool!</comment>


Ask HN: What tools do you use to version documentation? - <AUTHOR> Hey! Having several side projects that require documentation I thought that it might be a good idea to have documentation versions per major/minor release.
Does it make sense to version docs?
Do you version your documentation?
What tools (preferably self-hosted) would you recommend? <comment><USER2> Curious why documentation could not be versioned the same way as the source code. For example, if the source code uses Git, then changes to the documentation get updated just like any other files in the project tree.</comment>


Floating Point Conversion Kills 28 Soldiers (1992) - <AUTHOR> https://www.gao.gov/mobile/products/IMTEC-92-26 <comment><USER2> Click-baity title, a floating point error prevented the ability to save 28 soldiers.</comment>


Ask HN: Can You Recommend Local SF/Bay Area Accountant - <AUTHOR>

I tried searching for threads on HN and on Quora but most of HN is really old and Quora doesn't really have much...<p>Can anyone recommend who they use for personal and/or startup accountant? Please indicate which or if they do both. Thanks <comment><USER2> I cant recommend <http://www.linkedin.com/in/sanaokmyanskaya> highly enough:

Not only did she do accounting for TechCrunch and DotCloud, but she is also my wife :)

P.S. She does personal books/accounting as well

<comment><USER3> Is she a CPA? We need a tax accountant, not just a bookkeeper.

</comment></comment><comment><USER3> I've heard Sachin from Posterous say good things about <http://startupcpa.posterous.com/>

</comment><comment><USER3> +1</comment>


Backblaze launches their first European data center - <AUTHOR> https://www.backblaze.com/blog/announcing-our-first-european-data-center/ <comment><AUTHOR> If you're not familiar with Backblaze, they offer personal backup services at very affordable rates, but their best offering (in my opinion) is their B2 Cloud Storage ([https://www.backblaze.com/b2/cloud- storage.html](https://www.backblaze.com/b2/cloud-storage.html)). It's essentially like Amazon S3, but at a fraction of the cost. If paired with Cloudflare and the Bandwidth Alliance ([https://www.cloudflare.com/bandwidth- alliance/](https://www.cloudflare.com/bandwidth-alliance/)), egress is entirely free too, meaning that you only pay for storage and API requests.

Their biggest limitation to date has been that they're only in the US, but today they launched their first EU data center in Amsterdam!

I'm a heavy user of Backblaze both personally and in my company, and you can check some of these blog-posts for use-cases and more info:

\- [https://blog.jross.me/free-personal-image-hosting-with- backb...](https://blog.jross.me/free-personal-image-hosting-with- backblaze-b2-and-cloudflare-workers/)

\- [https://nodecraft.com/blog/development/migrating-23tb- from-s...](https://nodecraft.com/blog/development/migrating-23tb- from-s3-to-b2-in-just-7-hours)

<comment><USER2> Thanks <3</comment></comment>


User forked UnrealEngine on GitHub and gave write and subscribed everyone ~100K - <AUTHOR> https://github.com/teardemon/UnrealEngine/commit/e3c33a1a72a1b1edffcd4680f2b49fed19d465f2 <comment><USER2> I got an email about being added to this repo a few weeks ago, thought nothing of it and just assumed it was a bug that I got subscribed to notifications. This morning I got the same email, thought nothing of it again.

[https://dl.dropboxusercontent.com/u/45512231/ShareX/chrome_2...](https://dl.dropboxusercontent.com/u/45512231/ShareX/chrome_2016-07-26_22-22-27.png)

Half an hour ago, an email drops in my GitHub folder and I see a couple of comments appear on the page before exploding!

I'm still receiving emails as I write this... 100 so far!

The chaos ended when the user (teardemon) presumably deleted their account (the repo and account are both 404s)

<comment><USER3> I'm still receiving emails, too, despite having unwatched the repo once they started. Presumably there's a backlog of emails to send out?

<comment><USER2> I assume so, comments sections probably aren't designed to handle the speed at which messages were coming in. I saw many comments saying people had unsubscribed and were still receiving notifications.

</comment></comment></comment><comment> Null-Set Screenshot of the chaos.

[http://imgur.com/a/yVjAM](http://imgur.com/a/yVjAM)

<comment><USER4> Some men just want to watch the world burn.

</comment></comment><comment><USER5> Notice from Unreal: [https://forums.unrealengine.com/showthread.php?118366](https://forums.unrealengine.com/showthread.php?118366)

Nobody has access anymore. The repo and the user (teardemon) are both gone.

</comment><comment><AUTHOR> 404 note: You have to be logged in, and have previously been a member of the UnrealEngine repo to see this and not get a 404... I think.

I also saw this a while ago as southclaw says. There were also a few other repo's I got email notifications from Github about my having been automatically subscribed. I figured the first of today was a copycat of the one a while ago. I was surprised more people didn't do it then. The later ones today also seemed to be copycats of the first one today.

Not sure how Github should solve this, but they _should_ solve this.

Edit (22:45 BST): It also now looks like teardemon has deleted his Github account. [https://github.com/teardemon/](https://github.com/teardemon/) Best to look at Null-Set's screenshot [http://imgur.com/a/yVjAM](http://imgur.com/a/yVjAM)

</comment><comment><USER6> I don't understand... when he forks the repository, why did everybody watching the original one get set to watching the new repository? When I create a fork, that doesn't happens.

<comment><USER7> because he changed the repo permissions to allow the UnrealEngine organisation write access, and github automatically watches repos for you when you're granted write access.

</comment></comment><comment><USER8> And this is why my inbox blew up...

</comment><comment><USER9> 404

<comment><AUTHOR> You have to be logged in, and have previously been a member of the UnrealEngine repo... I think.

</comment></comment><comment><USER8> and this is why my inbox blew up :(</comment>


Show HN: Sanity – A Headless CMS Construction Kit in JavaScript - <AUTHOR> https://www.sanity.io/ <comment><USER2> Architect + Technologist here.

When I saw the OMA and DS+R logos on your marketing site, I thought no way it's the Architecture firms...prob some niche technology companies in Europe.

But lo and behold, you guys did build their new websites! For the HN crowd, OMA and DS+R are at the top of the field...as a tech analog maybe comparable to Stripe and OpenAI.

I've been diving deep into the finding the right headless CMS and so far have found most either lacking or too expensive (Contentful anyone?). At the moment, hacking away at Netlify's React CMS, but it's a struggle.

Excited to check out your product especially since it's used for architecture firms I love and respect!

<comment><USER3> Thank you! We so enjoyed those projects. Do get in touch if you have any questions on your excursion! There's a public Gitter ([https://gitter.im/sanity-io/sanity](https://gitter.im/sanity-io/sanity)) and I'm @even ([https://twitter.com/even](https://twitter.com/even)).

</comment></comment><comment><USER4> This feels like a CRUD app builder disguised as a visual programming tool. I generally avoid those things because they are hard to debug or extend.

Perhaps this is different because of GraphQL?

In this case, I would typically reach for a battle-tested CRUD building framework like Rails that gives you JSON APIs for free. I am not as familiar with GraphQL frameworks, but I suppose that I could find one as well if I really wanted that.

I am not really sure what people mean by "CMS" anymore. I have always thought of it as a place for people to create and publish pages. It is confusing to me when people use it to mean a structured database.

Maybe we need a new word.

<comment><USER5> Sanity isn't a visual programming tool. You can write Sanity applications using JavaScript and whatever tech you want (React, Node.js, etc.).

To provide some background: Your typical modern web application typically revolves around a central CRUD API that you then build apps on top of. You'll typicall have a web app and maybe a native mobile app. But you also need an "admin app" that provides content editing, login, role-based security, and so on.

One option is to use an off-the-shelf CMS. These are almost invariably big, antiquated monoliths that want to be your entire technology stack. Most CMSes not only want to be the system for managing the content, they also want to do the delivery, through some kind of templating system that force you to write your application inside the CMS. I've never met a developer who likes their CMS.

Since CMSes suck so much, companies also very commonly roll their own content management from scratch, which means you spend an awful amount of time writing common stuff unrelated to your core app — database CRUD code, APIs, role-based security, and so on. Rails took off because it was so easy to define your data model and get the CRUD API off the ground. But you still have to do the admin UI; you still have to wire up all those forms, enforce data validation, build complicated things like photo upload and countless other things. And you have to do it all over again for the next app. No admin is reusable.

Sanity turns this upside down; it adopts a "data first" philosophy. First, you get a general-purpose data store for storing your content. It's an advanced document-oriented, transactional data store that comes with live change feeds, strict schema validation, and fine-grained permissions and an expressive query language called GROQ, which is reminiscent of (but different from) GraphQL. This data store replaces your ad-hoc CRUD API.

The second part is the Content Studio. This is a modern, extensible, customizable JavaScript framework that renders a content editing UI on top of the backend data. The UI has been designed from the ground up for the data store, and supports live collaborative, Google Docs-style editing. It's implemented in React.

So with those two building blocks, you get a way to store data and edit it, but Sanity leaves everything else to you. You can use whatever technology stack (Rails, PHP, Django, etc.) to develop your front end apps, as long as you use the data store.

Disclosure: I work on the Sanity open-source data store, called Gradient. However, I'm not directly involved in the Sanity project, so the above is just my personal perspective.

<comment><USER4> I don't know that I like "data first".

Every greenfield project starts with a data model, but eventually gets encumbered in lots of crazy, bespoke business logic. This happens 6 months to 2 years into a project when some person asks for "one little thing". I'd love to see people who have used this for a while talk about data migrations, constraints, and all the other cruft that ends up happening in software development of CRUD.

This reminds me of Microsoft Sharepoint without all the widgets (which is what I meant when I said "visual") or Salesforce or even Microsoft Access. All of which are fairly difficult to manage, but appeal to a certain kind of customer.

The problem comes in when you have some complex business logic (you need 2 levels of approval on a Tuesday to publish this data)

I'd rather write all that stuff in a popular programming language.

<comment><USER5> While true, any data model is susceptible to cruft, no matter what stack you use.

For complicated rules like your example use case, you can add anything you want to the client-side validation hooks. In fact, almost all data validation currently happens client-side.

It's true that you'd not be able to enforce anything particularly complex if you submit writes directly to the API, but we're planning on supporting webhook-based validation, where you register a webhook that will receive documents for approval. We've successfully used this pattern in past projects. For example, something that isn't easily expressed declaratively is Hacker News' rule that thread comments are only editable a certain amount of time after they're submitted. We, too, prefer this kind of thing to be implemented in code.

Disclosure: I work on the data store, but not on Sanity itself.

</comment></comment></comment></comment><comment><USER6> THe value would in the "Studio" app which is the hardest portion to replicate (if it's well done).

But I would prefer paying a license for the SDK and host the API myself than having to rely on a third party for something so crucial to a business.

<comment><USER7> Well, it has got some real time data syncing stuff going on (which gives it Google Docs capabilities), I don't think that is trivial to do yourself.

<comment><USER6> I meant specifically when building a CMS. Being able to build a CMS that is multilingual, that can adapt to any form of content and workflow + be easy to use for editors is much harder than implementing the underlying technology.

<comment><USER7> Yeah, sorry for misreading you. That's indeed a good point (although both things are hard ^^_).

</comment></comment></comment></comment><comment><USER8> Of all the fancy overengineered dynamic marketing homepages I've seen, this is by far the best. No scroll-jacking, performant, degrades gracefully, still looks great without JS. Excellently done.

</comment><comment><USER5> Congrats to the Sanity team on launching!

I have a vested interest in this (I work on the open-source data store used internally by Sanity), but I genuinely think Sanity is a game-changer in the CMS space.

<comment><USER9> What data store do you work on?

<comment><USER5> It's called Gradient. It's not _quite_ ready to be talked about, but we're very close.

</comment></comment></comment><comment><USER10> What is a "headless CMS" at first place? why do you assume people even understand what it means? I went to your home page I still had no idea what your product is supposed to do.

I went to the docs:

[https://www.sanity.io/docs/introduction/why- headless](https://www.sanity.io/docs/introduction/why-headless)

I still have no idea why you call your product "headless CMS".

<comment><USER11> Hmm, good point. (Sanity co-founder/developer here) Based on launch day feedback, it seems we did assume some of these concepts were more widely understood in the developer community than they actually are. We will recalibrate our messaging accordingly as soon as possible.

We don't actually like neither the "headless" nor "CMS" part of the vernacular, but it seems to be the least unknown description of our product category around.

The classical CMS provides a way to author your content married to a templating engine that describes how your content gets rendered to HTML. This last part is what is considered the "head" when we speak of a headless CMS. Simplistically a headless CMS is a CMS that provide an api to the content instead of rendering it as html. Then you write the "head" (i.e. front end) in whatever technology you prefer using those apis.

A fair question then would be: what's the big deal? Can't you just stick an api on Wordpress and off you go? That leads to the other, less obvious difference: A good headless CMS is focused on authoring the content as structured data so that it is clear to the presentation layer what each piece of information means. Take this project page from the OMA.eu site:

[http://oma.eu/projects/timmerhuis](http://oma.eu/projects/timmerhuis)

If you expand the Location, Year and Program parts of the metadata you'll see maps, timelines and charts. These are all rendered by the front-end based on long-lats, lists of milestones and area usage authored by the OMA editors. In their old CMS these would be uploaded as images and html-fragments, but with Sanity it is described as a structure of data-points with a defined meaning. This allows us to use those same data points to provide advanced search functionality (give me buildings widh 20-30% office space and more than 5% retail), and it has also allowed us to generate print-ready books from the exact same dataset that power their web-site.

The big hairy goal of a headless CMS is to disentangle the content from its presentation, and thus make the content reusable across many forms of presentations ultimately making the work spent authoring that content more valuable.

</comment></comment><comment><USER12> Love this. I was on my way to build some kind of version of this.

I'm hoping that there will be documentation on how to self-host the backend soon as a backup.

</comment><comment><USER13> Congrats on shipping. I went through your docs and it's very clear and comprehensive.

Also love your startup / MVP friendly pricing => [https://www.sanity.io/pricing](https://www.sanity.io/pricing) as compared to the other most popular headless CMS (you know who they are!).

</comment><comment><USER14> How does this compare to [https://www.graph.cool/](https://www.graph.cool/) or [https://scaphold.io/](https://scaphold.io/) ?

<comment><USER7> graph.cool (I haven't tried scraphold yet) leans more towards being "database editors"; Sanity leans more towards being a CMS. E.g you wouldn't have content editors login to the graph.cool interface to edit content, but with Sanity, that's kinda the point. Sanity's query language (GROQ) is much easier to work with compared to GraphQL (while both are awesome).

</comment></comment><comment><USER15> It's hard for me to trust services like these that don't provide even a paid self-hosted version. Backend lock-in like Parse, but it probably won't get a community to rewrite it. So good luck if they ever go under.

<comment><USER16> Even if it where open source, it just as well be abandoned if the company tanks (Like Rubedo CMS).

There's an open source headless CMS here: [https://getdirectus.com/](https://getdirectus.com/)

It doesn't have all of the batteries of Sanity and uses normal SQL for data backend, but it's a good way there.

</comment></comment><comment><USER17> How does this compare with Directus CMS?</comment>