Neocities: Free, modern Geocities reboot
neocities.org
neocities.org
Neocities was actually launched and bootstrapped on HN about 3 years ago, and donations from HN users bankrolled the first year of operating it. Things have been going really well, the site is growing and still sustains it's own existence through donations and supporter accounts.
I still work on the site heavily. We're launching some big features soon (more space, Github webhook deploys, etc.). We just finished migrating to SSL (for everything, including hosted sites).
I've had to do some pretty crazy stuff to make the site work, some of which is not documented well and I think the HN crowd would find pretty interesting. For example, we figured out how to run our own global anycast network for "cheap". I would love to share how to do that with people, there is approximately zero information online or in books on operating anycast networks.
My new years resolution was to get better at writing about some of the crazy tech I've had to do for the site. If you're interested, there's an RSS feed you can subscribe to for our blog where it will be posted in the future: https://blog.neocities.org/feed.xml
Again, thanks go to HN. Site literally wouldn't exist without it, you were basically our seed investor. Feel free to ask me questions, I'll try to answer. That's something you're supposed to do with your investors, right?
I do work very intentionally on not living in the past, though. The epiphany that led me to Neocities was that creating your own weird static HTML site was not an anachronistic activity, but rather something that was simply too early for it's time. I think it has become relevant and modern because of the massive improvements to HTML/CSS/JS.
The theory seems to be panning out: https://neocities.org/browse
Why do you have to only use 140 chars? Frankly the "old web" is still there. You're just as free to create whatever you like using HTML and CSS and host it anywhere that works for you. In fact it's gotten easier: browsers are more consistent, CSS is getting more powerful, and there are a myriad static hosting options these days.
So go build something creative! ..and then share the hyperlink in some 140 char social network.
Sounds like a reference to Twitter.
> Frankly the "old web" is still there.
Frankly, a lot of it isn't. Culturally at least, even if some things like Tripod and Angelfire seem to still be around. Around the mid-90s, Geocities, Angelfire, Tripod, and similar hosts were the web to a lot of people, the way that Facebook and Twitter are the web to a lot of people now.
Then pad the bill a lot of misc other nonsense: social media liability insurance (yes this is a thing), ARIN fees, LLC registration, a literal fax machine (for DMCA compliance), monitoring, etc. Grand total will hover around $1000.
Architecture is a core + CDN model. The main servers run as a HA cluster in a datacenter, and then the anycast CDN caches content at the edge. It's not too far away from how S3+Cloudfront works or something like Cloudflare works. Nginx does all the heavy lifting, and the "front store" is just a giant blob of ruby: https://github.com/neocities/neocities
Not too bad for 110,000 web sites. Costs at this point are pretty stable for the next million sites (but surprises happen). I can double our bandwidth capacity for about $200/mo in less than a few hours if I needed to in a pinch.
The sites average about 25 million unique views (IP address per hour) and 50 million hits per month. This increases about 20% per month, sometimes slowing down a bit, then shooting right back up again.
Every once in a while a big site somewhere hotlinks an asset on Neocities and this skyrockets, but we just ask them to host the asset(s) directly and things go back to normal. Technically it's never caused any capacity issues, but obviously we don't want huge sites hosted elsewhere to use Neocities as a CDN.
Any webhost (paid or not) can disappear overnight, so it's generally a good practice to keep two or three copies of the source code of any website (one at a home computer, one on GitHub or something).
Besides, aren't kids into the whole ephemeral thing now (Snapchat and the like)?
I can be high and mighty about this, but legally Neocities is a public benefit LLC, so it is infact a private business operating on a freemium model.
I've pondered arranging Neocities as a nonprofit, but unfortunately that would add a ton of paperwork, costs, and bureaucracy. All I would really get in return is the option to roll the dice a couple times on some temp grants. Not sure it's worth it.
As for VC, I have good friends in VC, but I'm not really interested and nobody's ever offered. IMHO there's insufficient demand to justify 10x growth companies here. There's some people doing business/developer focused static hosting VC startups, but again, lots of competition and insufficient demand. Most of them have ended up as talent acquisitions, and the sites they hosted shut down. We've outlived most of them with the supporter/donation model.
The big cost at most social network startups is labor. Infrastructure expenses are somewhere down there with the free bacon budget and the open bar tab at OSCON (I'm joking, but you get the idea).
where did you buy the IP addresses? I them for sale on sites that purport to auction IP space but I've never known which of those sites are trustworthy etc.
I think Archive.org has a lot of the old Geocities sites.
* GeoCities started in LA, I'm just assuming you still live there.
I made a lot custom graphics for the site too, which helped me practice using Photoshop, which has helped me ever since, letting me mock things up and still look decent before real artists get their hands on them. In fact several games I've made I just used my own graphics and they still found success.
And no advertising on sites, ever. This is our golden rule.
My goal is to never make any changes to other people's sites. The only exception I'm giving myself is for an extreme emergency, such as a major security problem. It's never come up, I doubt it ever will. During the SSL transition there were a few sites I helped convert to SSL, but that was with permission from the site owner.
I remember the watermarks. They sucked.
Either way, this is bloody awesome, good luck with it all.
Using Neocities with IPFS has been really great for stress testing, as we have a lot of content and it links to itself in really weird ways. It's discovered some performance bottlenecks that the IPFS devs have been able to solve. The result is that the newest IPFS implementations are much, much better for massive datasets.
I'm a very strong believer in the distributed web. I think it's the future of static web content. People much smarter than me think it's the future of the dynamic web too, but I'm pretty single-focused on the static side of things right now.
Craig@YCombinator.com
These days he is a VC based in LA and does a lot of philanthropy: http://www.bohnettfoundation.org
He has one of the original enigma machines: http://www.latimes.com/entertainment/arts/culture/la-et-cm-i...
And here's a very good hour-long interview with him about Geocities, can't recommend this enough: http://www.internethistorypodcast.com/2015/05/david-bohnett-...
Will subscribe to your RSS feed, but wanted to specifically say that I for one would love reading about your cheap anycast network setup & operations framework. Thanks again for the original Geocities rescue and great work on the direction that Neocities is heading!
I'm very happy this project is still going strong!
Our policy is to remove phishing and spam and report it to stop spam services. The major reason for this is that I want to keep our nose clean for pagerank purposes. I don't want Google to decide we're just a garbage dump and dock all our sites in search results. I surmise (rather, I hope) that our pages have a much higher rank than many other free hosting providers (and even some major social networks) because we work so hard to be proactive on this problem.
I wish Google provided better resources for this than they currently do. I'd love an API to report SEO pagerank spam, for example. Right now I have to do it manually with a form.
Abuse was not a reason, it was the reason we ended up rolling our own anycast CDN with our own ASN (https://whois.arin.net/rest/asn/AS395409). Abuse reporting goes to whomever owns the IP address, so our hosting providers would get these complaints. There was a real concern we would lose our hosting providers. The important thing to understand is that most hosting providers think you're just running a Wordpress blog, so if there's an abuse complaint they just think your blog got hacked and treat you accordingly. If you want to be an ISP, learn BGP, the cloud will not save you.
We don't get many DMCA takedowns, it's usually something really dumb and arbitrary. One of the reasons for this is probably that we blacklist certain types of file formats (such as videos and mp3s). The idea with Neocities is to use it to make web sites, so for free sites, we only allow file types useful for making web sites. Supporter accounts are not subject to these restrictions.
We used to get more classic spam (porn, "dick pillz", etc.) but not as much these days because it isn't as effective. That spam tended to hover around whatever social ill Americans were experiencing. For example, before the Affordable Healthcare Act kicked in, we got a lot of online pharmacy drugstore spam preying on people that couldn't afford their medicine. It might come back if they start dismantling the ACA.
As for comment spam (for the main site), we have strict requirements to allow commenting. You have to wait a week, make a site, update it at least a few times, and do some other specific things before you can comment.
That's not only helped with spam, it's also helped to deal with jerks. It's hard to stay mad enough at something to wait a week while engaging in psychological sublimation, just to leave a turd on someone's site profile at the end of it.
Me: "I've created a PR to allow .cur and .mid files, like the good ol' days."
You: "Wtf is a .cur?"
Person 2: "It's windows cursor format."
You: "(many paragraphs, tl;dr: Sorry, but we're not recreating Geocities.)"
~ one year later ~
You: "I caved. I've merged, sorry for being a dick."
After so long, I'd completely forgotten about the PR and found it hilarious that you eventually merged my PR. I'm happy to see things continue forward :D
Thanks for all your hard work on the site by the way! I've actually taken the opportunity to use it at my new job, as one option for students to publish/show work in our basic web/html course at Voss FHS[1].
Did you manage to keep publishing the transparent financial reports? As I've mentioned before, I personally find the openess of the whole operation to one of the most interesting bits of the site :-)
[1] http://voss.fhs.no/english/information-about-voss-folkehogsk...
Let me make a wrong guess to give you motivation: you had to physcially visit IXP's across the globe to set IP's on network interfaces of computers you rented there?
For instance, if there were scandal allegations involving your favorite politician, and a Neocities user was writing about them, would you take the pages down at their request?
Personally, I don't have any reason to use Neocities but I am enormously happy that it exists. Geocities and Angelfire and all of those weird web sandboxes are where I first wrote code, and what led me to pursue software engineering as a career.
I wrote what may have been the worst ever attempt at a messageboard, and I think only one other person ever even used it. Every post was a single line in a URL-encoded textfile. Good times.
The proxy server could not handle the request GET /cgi-bin/hello.cgi.
Reason: Could not connect to remote machine: Connection refusedAlso, since we're talking about neocities, here, does anyone have any cool neocities sites they know of and want to share? Just post a reply to this comment, so folks who want to have other neocities discussions can easily collapse all the links at once.
Nowadays that use case was largely replaced by what we now call blogs. Many of those websites were in fact proto-blogs.
Later, as bandwidth increased, digital cameras became mainstream and processing power increased, photo sharing was added as common use case. Try downloading a 2 megapixel+ PNG with a dial-up connection... very slow. Now we take it was granted.
Now in addition to blogs, you also have Google Sites, wikia, and countless others... including Wikipedia.
https://neocities.org/SiliconValley/Peaks/2790/
Works for any Geocities neighborhoods.
Jason Scott (@textfiles) gave me the idea when I was at the Internet Archive.
I was expecting that neocities sites would have similar URLs to geocities (in the neocities.org/server/user/page format). This is a fun way of learning about stuff.
Path origin policies are being considered right now. They're currently being referred to as suborigins: https://w3c.github.io/webappsec-suborigins/
What I would really like to see is a CSP option for cookie access control, but unfortunately it appears to have been shelved for the moment: https://www.w3.org/TR/csp-cookies/ https://twitter.com/kyledrake/status/818931856238407680
where some of the content of geocities has been resurrected.
Obvious: rhymes with Geocities, and is one letter different from Geocities
Less obvious: the prefix neo makes it a "new" Geocities
Subtle, and my favorite: seemingly everyone on the web today is jacked into a Matrix of "walled gardens" where they are tended and farmed, and Neo is the name of a guy who undoes that shit.
I spent years trying to acquire what remains of Geocities, which is the domain itself, geocities.com. I got closer than you would expect, but was told it was being "used internally" so they couldn't divest of it. I was also told I wasn't the first person that inquired.
As I understand it, geocities.com will go to Verizon (unless that falls apart), who will do god knows what with it. Right now it redirects to Aabaco Small Business, which I think is a spinoff that's not part of the deal. Aabaco curiously has an office in Beaverton, OR, a suburb of Portland, where I live. I've been meaning to drop by their office randomly with a jello mold or something and say hi.
I really want to relaunch geocities.com. I'd love it if someone gave me the domain so I could do that, but I'm not holding my breath.
Geocities & MySpace had little consistency across pages. But Facebook won by starting off with trend-setters (college kids) and using network effect as it's foundation.
In the UK FriendsReunited filled the "share pictures and info" hope too and briefly was pretty massive.
Neocities sites are static HTML, meaning once your files are uploaded,they don't change. Neocities doesn't do POST, there is no database backend or code running on the server.
Now in 2017, CORS allows client side apps to do just about anything traditional web apps have done, without page tranistions, given an appropriate backend. The difference is that html rendered by javascript on the client typically isn't indexed by search engines, while html served from a domain are. That's one significant difference, there are others.
There are third party services that provide form processing of this nature, and even complete database backends and user management APIs (I built one).
There's pre-CORS workarounds. You could build an HTML multipart/form-data POST form inside an iframe and submit it with JavaScript for example. And if the server API supports JSONP, you can inject a script tag into your page that loads the target content as a script which then executes the data in a callback to read it back into the client page.
If you don't care about REST, and you only need to do GET/POST requests with a limited set of mime types, you could make a client-side application that gets around the same-origin policy without using CORS. But it's ugly.
With CORS though, you can potentially make any type of request across origins, because the CORS preflight OPTION requests allow a server to specify what request methods and what headers a client from a certain origin can access at a given URI. And these days, you can find CORS-enabled third-party REST APIs that you can use with things like client-side OAuth to provide all the same functionality that you would have in a traditional web applications.
I've been thinking about using a completely split API/client-side app architecture in my own projects lately, because scaling a bare API is much easier and cheaper than scaling a web application.
So yes, CORS is just a security measure, but it gives you more functionality in a client-side application by allowing you to bypass an older security measure, the same-origin policy, in a very clean and explicit way.