You can write a superficial clone of any web app. But can you handle 8000 tweets/sec in real-time? The innovation is in the back-end.
Sometimes you have to be innovative just to implement simple ideas in those text books or to make it actually efficient. Its easy to use type 1 UUIDs as ids but if its not practical to store 128bit ids for every value or you need to pack it into 64bits or need better ordering guarantees. you build something like snowflake.