"Small Twitter clone" can be taken two ways, and this one, I think, is the less interesting of the two. (Not to denigrate the project for what it is; it's a good idea.)<p>On a one-machine scale, Twitter can be a single Postgres table, or a single ElasticSearch index. At the scale they actually are, it's really a whole lot more.<p>I'd really love a tutorial—or possibly a whole book—that instead took you through setting up the sort of <i>distributed system</i> that is required to make a Twitter clone run at a Twitter-like scale. Either through IaaS APIs, or on your own with something like OpenStack DevStack.<p>It could probably <i>start</i> where this tutorial <i>ends</i>—with a one-node system running a Twitter-backend-alike monolith. And then each chapter would increase the scale, introduce a problem the scale causes, and then walk you through adding in an additional component: a message queue; a fragment cache; app-level health checks; a search indexing cluster; distributed logging + request tracing; geographic sharding; multi-master DB replication—in order to solve that scaling problem.<p>There would also be scale-points that would require changes in the business logic: making IDs globally unique and sortable ala <a href="https://github.com/twitter/snowflake;" rel="nofollow">https://github.com/twitter/snowflake;</a> deprecating but keeping around old APIs as new ones are added; "Ball of Mud" refactorings; isolated Enterprise clusters of the app; etc.<p>Bonus points if later chapters actually go back and rip out solutions that were introduced in earlier chapters—not because they were mistakes, but just because they were right for 10^3/s but not 10^6/s. And <i>bonus</i> bonus points if they assume an SLA that requires that such switchovers occur without downtime.
I finished the course a few days ago and it was awesome. Of course it is not a fully functional complete clone, but it is an incredible learning resource.<p>It really starts from the beginning as in "first you have to install the proper tools and prepare your software development environment" beginning. Which is great to teach you things that you wouldnt learn in other free online courses.<p>I think it is a essential resource that present you the full stack of a web app, acting as the perfect complement to more pure code oriented courses like freecodecamp and codecademy.<p>And you can really start from zero coding knowledge. I fully recommend it.
This looks like a really cool course.<p>In case anybody is interested in learning how to build a Twitter clone in Nim then consider taking a look at my book[1]. It's not free but it is a good way to learn Nim and web development concepts in a systems programming language.<p>1 - <a href="https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81" rel="nofollow">https://manning.com/books/nim-in-action?a_aid=niminaction&a_...</a>
Interesting that your site doesn't work at all without allowing third party scripts. I don't think I've ever seen anything like this before, hosting the entire page on another domain.
I visited the page with uBlock on and nothing showed up. The I noticed that leadpages.net is blacklisted on it. So I had to remove the Ad Block and refresh the page.
Cool, may I recommend building an OStatus-compliant twitter clone?<p><a href="https://www.w3.org/community/ostatus/" rel="nofollow">https://www.w3.org/community/ostatus/</a>
Thanks for the course! I have a question unrelated to the contents: Why did you choose to release it for free? I guess you spent a lot of time preparing it, so I assume there must be some kind of (non-monetary?) benefit you expect to get from it.
How did we as an industry go from "create a blog in 10 minutes" with rails to a "create a twitter clone in 7 days"?<p>It seems we have gone backwards in terms of speed of getting things done in the last decade.
if the feature scope and traffic scale is small enough you can build a Twitter-like in 7 hours. if not 7 minutes. given all the tools, frameworks and services avail today.<p>scope and scale are key
Lurker here. Someone mentioned this the other day here too. Too bad Twitters dying, but you get the idea. <a href="https://news.ycombinator.com/item?id=13157254" rel="nofollow">https://news.ycombinator.com/item?id=13157254</a>