{"id":168019,"date":"2014-04-14T18:51:44","date_gmt":"2014-04-15T01:51:44","guid":{"rendered":"http:\/\/css-tricks.com\/?p=168019"},"modified":"2014-04-14T18:51:44","modified_gmt":"2014-04-15T01:51:44","slug":"features-complicated","status":"publish","type":"post","link":"https:\/\/css-tricks.com\/features-complicated\/","title":{"rendered":"Features Are Complicated"},"content":{"rendered":"
Why can’t I edit my tweets?! Twitter should allow that.<\/p><\/blockquote>\n
It’s so simple right? CRUD apps (Create, Read, Update, and Delete) are app-building 101! What a gross oversight. But wait. Just as a fun nerdy little exercise, let’s think about what a feature like this might take for the Twitter team.<\/strong> I don’t work there or have any inside knowledge, so this is all hypothetical for the sake of understanding app development.<\/p>\n
<\/p>\n
\n
- Should you be able to edit any tweet you've ever tweeted at any time?<\/li>\n
- Or should you just have a few minutes to do it until it locks?<\/li>\n
- Do you offer this to everyone? Opt-in? Opt-out?<\/li>\n
- Should you be able to edit tweets or direct messages also?<\/li>\n
- What does it look like to edit a tweet? Can it be simple and obvious? Does it need additional UI? How do you expose that UI? Is it worth the extra UI?<\/li>\n
- Does the tweet go out to the public timeline immediately or after the editing grace period?<\/li>\n
- What if someone favorites a tweet and it is later edited? Does it shed the favorites? E.g. a tweet that originally said "I like pancakes!" could be later edited to "People that favorited this like clubbing seals!" (or much worse). <\/li>\n
- Same question, with retweets. And with replies.<\/li>\n
- Are there any social or moral implications of this?<\/li>\n
- How does tweet editing affect the overall feel<\/em> of using Twitter? Would a time delay affect that feel? Would people think of tweets differently?<\/li>\n
- Does tweet editing make hacked accounts an even more dangerous prospect?<\/li>\n
- How do third party clients handle tweet editing? Is there a public API for it? How complex is that?<\/li>\n
- Or do you only offer tweet editing through the web? How does that move go over with developers?<\/li>\n
- How do you ensure third party editing offers an up-to-par UX? Does that matter?<\/li>\n
- If tweets aren't time-delayed, how do you handle edited tweets through the API? – How do you tell third-party clients to update a tweet they are currently displaying rather than show a new one?<\/li>\n
- Where do edited tweets go? Back on top of the timeline, or stay where they are?<\/li>\n
- Should it be visually displayed that a tweet has been edited? How do you enforce that in third-party apps?<\/li>\n
- Are there legal implications here? What if someone tweets something illegal and then changes it to something legal?<\/li>\n
- Does tweet editing open up any kind of bad guy behavior? What kind of mis-use can be expected?<\/li>\n
- What are the infrastructural concerns? Are all revisions saved? How much additional web server and database load is this? <\/li>\n
- Do you throttle editing like you presumably do for tweet creation?<\/li>\n
- How actually<\/em> requested is this feature? Is it just a vocal minority?<\/li>\n
- What's in it for Twitter if they go down this path? Happier users? Is that a guarantee?<\/li>\n
- How much time, effort, and money is this going to take? (Design, development, UX, testing, etc) Are they prepared to support this for the life of the product?<\/li>\n
- Is the team into the idea or would it be grueling and not-fun?<\/li>\n<\/ul>\n
We could probably double that list on our own and that’s just looking from the outside. Software is tough. Being smart and responsible with the features of that software is even tougher.<\/p>\n","protected":false},"excerpt":{"rendered":"
Why can’t I edit my tweets?! Twitter should allow that. It’s so simple right? CRUD apps (Create, Read, Update, and Delete) are app-building 101! What a gross oversight. But wait. Just as a fun nerdy little exercise, let’s think about what a feature like this might take for the Twitter team. I don’t work there […]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"c2c_always_allow_admin_comments":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":[]},"categories":[4],"tags":[],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":269431,"url":"https:\/\/css-tricks.com\/list-rendering-and-vues-v-for-directive\/","url_meta":{"origin":168019,"position":0},"title":"List Rendering and Vue\u2019s v-for Directive","date":"April 11, 2018","format":false,"excerpt":"List rendering is one of the most commonly used practices in front-end web development. Dynamic list rendering is often used to present a series of similarly grouped information in a concise and friendly format to the user. In almost every web application we use, we can see lists of content\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/04\/vue-for-tweet-shuffle.gif?fit=800%2C400&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":9181,"url":"https:\/\/css-tricks.com\/twitter-accounts\/","url_meta":{"origin":168019,"position":1},"title":"Twitter Account(s)","date":"April 29, 2011","format":false,"excerpt":"The point: on Twitter I'm @chriscoyier. If you prefer a stream of links from CSS-Tricks only, you can follow @real_css_tricks.","rel":"","context":"In "Article"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":367283,"url":"https:\/\/css-tricks.com\/how-i-added-scroll-snapping-to-my-twitter-timeline\/","url_meta":{"origin":168019,"position":2},"title":"How I Added Scroll Snapping To My Twitter Timeline","date":"August 5, 2022","format":false,"excerpt":"CSS Scroll Snap allows websites to snap the web page or any other scroll container to a specific scroll position when the user performs a scrolling operation. This feature has been supported in all modern browsers for over two years, but many websites that could benefit from it are still\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2022\/07\/scroll-snap-distance.png?fit=1200%2C666&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":8615,"url":"https:\/\/css-tricks.com\/quick-thoughts-on-sharing-buttons\/","url_meta":{"origin":168019,"position":3},"title":"Quick Thoughts on Sharing Buttons","date":"March 3, 2011","format":false,"excerpt":"Randomly this week, I've had more-than-normal number of comments from folks who ask me something like: Went to go tweet\/share a blog post of yours, and noticed you don't have any of those on your site. Interesting, any reason why? I do have some thoughts on that... When I'm on\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6398,"url":"https:\/\/css-tricks.com\/we-love-lost\/","url_meta":{"origin":168019,"position":4},"title":"We Love LOST","date":"May 18, 2010","format":false,"excerpt":"Tonight is the next-to-last episode ever of LOST. I've been a fan since the start, watching the released seasons several times with different friends over the years. Even powering through the Season 3 slump =). Just for fun, Richard and I chucked together a little one page app we've called\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/csstricks-uploads\/welovelost2.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":342911,"url":"https:\/\/css-tricks.com\/how-to-cancel-pending-api-requests-to-show-correct-data\/","url_meta":{"origin":168019,"position":5},"title":"How to Cancel Pending API Requests to Show Correct Data","date":"June 25, 2021","format":false,"excerpt":"I recently had to create a widget in React that fetches data from multiple API endpoints. As the user clicks around, new data is fetched and marshalled into the UI. But it caused some problems. One problem quickly became evident: if the user clicked around fast enough, as previous network\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/06\/steam-api-deals.png?fit=1200%2C570&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/168019"}],"collection":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/comments?post=168019"}],"version-history":[{"count":2,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/168019\/revisions"}],"predecessor-version":[{"id":168099,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/168019\/revisions\/168099"}],"wp:attachment":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media?parent=168019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/categories?post=168019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/tags?post=168019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}