X Stats

Login Sign Up
@tonyennis

Tony Ennis

@tonyennis

4,360 Tweets
2,743 Following
2,723 Followers

Building software teams & mobile apps Prev: Built a bank in Asia YC S21

Filtered by topic: Tech Philosophy & Takes ✕ Clear filter
Date ↓ Tweet ❤️ 🔄 💬 👁 📝
Jan 02 Just Shipped OnePageTime A single page to make sure you're spending your time wisely - Visualize where your time is going - Zero learning curve or advanced features, just start tracking - 100% Free - Use signed out (or sign in to save your data) https://t.co/RzZnd7wFXr https://t.co/TBvYWpAvOI 3 1 0 275 297 .
Jan 02 Hume Health scale is unusable out of the box, app wont get past the Bluetooth connection screen. Don’t buy one 4 0 0 216 110 .
Jan 01 The hardest part of vibe coding as an experienced developer is the whiplash You go from traveling 100km/hr to slowing to snail's pace, on a constant loop. Needs a certain kind of stamina/temperament 0 0 0 116 202 .
Jan 01 Struggling to square this with my extreme bullishness on Alphabet after listening to the acquired pod https://t.co/ZxfIPk8Heq 0 0 0 200 126 .
Dec 31 @josevalim hey! I mainly code on a live url while ssh'ed into a vm - am I correct in saying the recent upgrade forbids this? 0 0 0 0 124 .
Dec 31 🤦‍♂️ @cursor_ai in built browser is not very good https://t.co/lSB55cavww 1 0 0 203 73 .
Dec 29 Just open sourced a Claude Code <> Slack bridge so you can run Claude in a VM and get it to do stuff without ssh'ing. There are other libraries but none had the features I wanted. Reeeally liking this single file approach - feels like it speeds things up a lot - took about 2 hours to vibe code with Claude Code. https://t.co/Ykl0gXw3Cd 6 0 0 422 340 .
Dec 29 Having a lot of fun turning Claude Code into a real assistant - Gave Claude Code it's own VM ✓ - Connected Roam -> G Drive in real time ✓ - Connected G Drive -> Cloud Claude ✓ - Connected Cloud Claude to Slack ✓ 0 0 0 415 217 .
Dec 24 @fractaledmind One of my 2026 goals was to “lean into html on Twitter”. I fear you may have beaten me to it 😅 2 0 0 0 109 .
Dec 22 From our team's Granola Wrapped 😅 I may have finally arrived at the lifestyle I set out to build. https://t.co/rg6kWb6zVa 4 0 0 212 123 .
Dec 20 I keep seeing these charts of engineering task that take LLMs 4.5 hours to complete, but no one ever says what the task is or if it’s things that are actually useful. 3 0 0 434 166 .
Dec 20 The future of frontend engineering is in having in-depth knowledge of CSS, not having in-depth knowledge of javascript. 0 0 0 146 119 .
Dec 17 @fractaledmind @rikschennink Gotcha! Maybe one day when I ditch my puritanistic ways and go back to having a build step 😅 enjoyed your most recent thread 1 0 0 0 153 .
Dec 06 This is true if… - You are building very highly interactive frontends - You don’t want to spend any time figuring out a playbook/set of patterns (which is completely fair and true of 99% of people) It’s not because of any fundamental difficulty with doing this stuff without js, It’s just that js libs have consumed everything so there’s not as much material out there. Because of this I don’t agree with the “you’ve got to be a masochist” framing. You just want to accept more up front work for lower long term complexity 5 0 1 923 525 .
Nov 27 @hunvreus From what I’ve observed people who like parallel agents work more in codebases that require a lot of boilerplate and where backend/frontend is separate, haven’t seen any rails folks talking about them for example 1 0 0 0 222 .
Nov 27 @StartupArchive_ @george__mack great one for the high agency list 0 0 0 0 65 .
Nov 25 Met a guy at a wedding last week who had read this book. It had created a completely closed epistemic loop, where every point I made was returned with either “We don’t know that because AI is grown not built” or “That is just blind faith”. One of the most frustrating conversations with a stranger I’ve ever had. I say this as someone who is way-more-open-than-most to “doomer” perspectives. I’m guessing that was one of the goals of the authors - to create an ideology that withstands critique, so hats off to them for that. 100% brain-wormed. Sample of one of course. Interested to hear others experiences 4 0 0 1.1k 608 .
Nov 21 @thatguybg Genuinely a banger 1 0 0 0 29 .
Nov 20 @RaulOnRails @shl Solely GitHub yup, apparently they trained on a bunc of labelled data but I’d guess you could do a decent job with a decent prompt 0 0 0 0 148 .
Nov 20 @RaulOnRails @shl More like this https://t.co/oTKSaQevya 1 0 0 0 56 .
Nov 20 @RaulOnRails @shl Thanks! Not exactly what I'm looking for. Weave has a feature were they calculate an "output score" for every commit/PR, which his based on effort & impact - use case for me isn't daily check in - it's end of week/month seeing if we focused on high impact work https://t.co/QEwbfRrO4C 1 0 0 0 306 .
Nov 20 Linear is a tool that works well for a certain type of team, which is IMO <5% of software teams. Most teams should not use Linear. 0 0 0 163 135 .
Nov 19 Is anyone building basic AI-powered engineering analytics (scan commits, figure out how much effort/impact is required, give it a score, see charts on per developer basis) that's not exorbitantly expensive? 3 0 1 347 206 .
Nov 18 The most important trait for hiring or getting hired is Professional Theory of Mind. If you can intuit what matters to other people (customers, managers, clients), you need only moderate management & can figure the rest out, but if you can't, you become a burden 6 0 0 2k 266 .
Nov 11 @prisencotech @htmx_org Geo replication for both app&db is a much heavier lift (maintenance & cost wise) than a shimmer effect and link activation though. 0 0 0 0 162 .
Nov 11 @prisencotech @htmx_org My solution to this isn’t a js framework btw, but I’d reach for hx-indicator adding a shimmer effect to the main div, and another js snippet that gives the active class to the clicked link, before id reach for view transitions 2 0 0 0 250 .
Nov 11 @prisencotech @htmx_org I agree 100% with that last statement, ultimately it comes down to how it feels. If my app server takes 20ms to return the page, but when I test on hotel WiFi in SF and server’s in Europe, if there’s any latency at all (there will be) it feels slower than SPAs, and that’s where… 2 0 0 0 303 .
Nov 11 @htmx_org I think view transitions are less exciting than they seem because they have to wait for the network so they always feel slow, they were one of the only disappointments in my research for the bsdc talk, kind of a red herring for now at least 2 0 0 0 250 .
Nov 11 @WisprFlow I can't get the fn key on my Logitech keyboard to trigger Wispr Flow, is that a known issue? This is what Claude's telling me https://t.co/YQLp7vExFW 0 0 0 0 160 .
Nov 11 There's a massive opportunity to build an AI-powered messaging app on top of the Matrix protocol. So much context can be inferred from chat, and sending & staying on top of dms is an actually-useful AI use case. 2 0 1 313 217 .
Nov 09 @Liv_Boeree @r00k @spicyliltoaster Really? Nurturer + health-conscious + optimist + funny + east coast + high-openness - they don't seem like traits that are anti-correlative. What makes you think that's a unicorn? genuinely curious https://t.co/3skv6QbMwV 0 0 0 0 256 .
Nov 09 Them: "Which do you prefer? Alpine, react, or stimulus?" Me: "Yes" 1 0 0 337 67 .
Nov 09 This is the sweet spot for me when building components with more-than-basic interactivity: A Minijs component that uses preact standalone for templating. - Easy to follow: Very little framework-specific knowledge needed. - I can do simple slot-based composition in the dom. e.g reorder/remove parts. - I can use jsx for templating (technically htm but looks and feels the same. - Super performant - No build step 3 1 0 720 416 .
Nov 07 @michaelque22 Various companies that handle this. Adapty will give you the money up front for 1% interest if you use their platform. You switch the bank account on App Store Connect, they pay you up front, the apple payout goes to them and they forward anything remaining to you 4 0 0 0 278 .
Nov 06 @iamgdsa Love market-product fit 1 0 0 0 32 .
Nov 04 @maxjanderson Have you used the product? This is a great example of a “looks smart but is actually retarded” tweet 3 0 0 0 114 .
Nov 04 @jackfriks Agree 100%. He missed step 0: make something genuinely good - high quality design - brand/ui/ux, good feature breadth and depth. Something that users feel justified in shelling out for. Even if retention is bad at the beggining as you’re figuring out the right mechanics, people… 1 0 0 0 290 .
Nov 02 This is still the best quick-website-builder I've used - really really good and not as well-known as it should be. You should check it out! 7 2 1 882 139 .
Nov 01 For people building software like this, where does design fit in? There’s no way the LLMs are giving smooth ui/ux on the first pass, is there? 1 0 3 534 142 .
Nov 01 A lot of people talk about products as though there’s some kind of perfect-information marketplace where everyone can come and buy the one-version of particular idea, and you need to be first to make the idea to secure the shelf space. But that’s just not how it works at all 2 0 0 321 275 .
Nov 01 Lots of talk that Apple missed Ai. And Siri is a truly awful product. But they still own the OS of 1.5b mobile consumers and growing, and have several years to learn from others early consumer AI experiments & release something incredible. I think they probably will https://t.co/evqlyUwxgg 2 0 0 147 294 .
Oct 28 This matches my own general intuition that consciousness ain’t that special. Our brains got big enough to assign symbols to stuff, which was physical stuff first but then we started assigning words to non physical stuff like emotions and systems, and we stopped noticing the difference between words that represent real things and words that represent non-physical-things, and terms like “consciousness”, which is not attached to the physical world, became so vague as to assume a kind of magical quality. At some point we learned how to use language inside our heads, and gained the belief that the voice we “hear” as we do that is our “self”. Combine that belief with a recursive loop of observing and narrating, and you have an emergent thing. That’s not to say human consciousness isn’t *different* to silicon consciousness, or that we should treat silicon consciousness with the same reverence that we do human, but it does feel like comparing flying - birds can do it or planes can do it, but it’s still flying. 3 0 0 388 1k .
Oct 28 @lottsnomad I thought that too and then @faith_alqah sent me a 100 screen Figma and we built it anyway and it turned out she was right (about this one) I think a big reason why people convert and it’s rated so well is because the app feels reasonably well finished and substantial, which I’m… 1 0 0 0 292 .
Oct 26 Still haven't found a way to reliably get good AI inside of slack. Claude's own implementation is so bad you'd wonder how anyone ok'd it for shipping. https://t.co/rH8CXuv6H0 0 0 0 192 174 .
Oct 26 Two ingredients to a coming explosion in actually-useful browser agent products: 1. The Browser Agents getting good enough 2. Building the UI/UX scaffolding around it It sounds like hubris but I genuinely think we're furthest along on #2 of anyone I've seen. Just waiting for a breakthrough in #1 and I can feel it coming 3 0 1 281 323 .
Oct 26 Two ingredients to a coming explosion in actually-useful browser agent products: 1. The Browser Agents getting good enough 2. Building the UI/UX scaffolding around it It sounds like hubris but I genuinely think we're furthest along on #2. Just waiting for a breakthrough in #1… 0 0 0 0 279 .
Oct 21 These guys have a ton of twitter hype and spent last week announcing new features on here, but their app literally doesn't work. Their support email basically told me "Works for us" Sign of the times 🤡 https://t.co/jiuiN6fx6J 2 0 0 238 226 .
Oct 13 Ryan himself wondered about this back in May, and don’t think Remix 3 really disproved this hunch. If you’re on react and thinking “how can I improve the ratio of complexity:value”, there’s more value in going full offline first than in using a slightly better React, IMO https://t.co/oheqhHL0x2 1 0 0 409 295 .
Oct 13 I love that the remix guys are popularising web standards again among js folks, but I (currently) feel that the improvements they’ve made are in a dead zone. Marginally better than react, but not a step change in simplicity or functionality yet 2 0 0 849 244 .
Oct 10 I'm slowly changing my mind on how much more value we can squeeze out of AI with the current architecture (LLMs). Human inquiry/reasoning has multiple steps - we have a "hunch", then we get our thoughts out of our heads and verify them (e.g. writing an article or writing a maths proof). Then there's a loop as our reasoning modifies the original premise until it becomes logically coherent. LLMs are already very good at the "hunch" phase. But we expect the base model to also do the verification step and come out fully formed. Surely it's better to just treat that phase separately and run it through the same loop *after* it comes out of the model? 2 0 0 467 654 .
Oct 07 If I keep recommending @magicpatterns to people maybe one day they'll build the feature that let's me use my own css-based design system 🤞 https://t.co/Pl3Cc12bCJ 2 0 1 193 162 .
Oct 03 @bradgessler @37signals 👋 not using Hotwire native, built our own on react native but using rails web views & sending html over the wire. One app with hundreds of 5 star ratings, another launching soon 7 0 0 0 205 .
Sep 30 "How do you manage 8 dev teams at the same time?" Every morning: Headphones on, read updates, make loom responses for 30m, then jump on call with whoever needs a deeper dive. + Plus super talented team + Plus 3+ years of experiments + Plus clear guidelines on how to build https://t.co/Xy9LUG221Z 7 0 0 426 299 .
Sep 24 .@Cloudflare if you're interested in saving users time, why not fix the load speed of literally every screen in the web app, which takes 3 to 5 seconds to fully hydrate? https://t.co/5JobwT1XBu 1 0 0 263 193 .
Sep 21 Currently run 4 “production” websites like this. If I have an idea for something I want to change, I jump into cursor, hit save, change is live. Can’t do everything this way, but for your personal website, for example, works remarkably well 3 1 0 495 240 .
Sep 21 1. Get a VM from contabo or hetzner 2. Connect from editor via remote-ssh 3. gem ‘passenger’ & bundle install 4. passenger start —daemonize 5. Add dns record for VM’s ip address 6. One line in Caddyfile 7. ‘service caddy restart’ provisions SSL You now have a “live” rails app 1 0 0 979 283 .
Sep 20 @raagulanpathy I want to root for you guys and recommend you, but this is incredibly dumb. “This merchant” = one of the biggest banks in Europe, and “We currently have restrictions in place…” when all other fintechs do it no prob https://t.co/LxjsfbXHnG 0 0 0 0 253 .
Sep 18 .@RoamResearch is by far the nerdiest product I use and I love it 4 1 0 786 65 .
Sep 15 @thekitze The full timeline ain’t played out yet https://t.co/9t8bOkUxBP 53 1 0 0 72 .
Sep 15 Been using this for the last hour - I think we may be close to the promised land that makes vibe coding viable for real apps. Incredibly exciting, and also a little scary. 18 3 3 6.1k 171 .
Sep 15 One week ago: MCP is literally just over complicating a rest API Two days ago: Oh wait, maybe I'm wrong, look at all these cool connectors. Maybe they can do cool stuff Today: MCP is literally just over complicating a rest API... https://t.co/3mG7RYycjW 7 1 0 592 231 .
Sep 14 @seflless @interaction The whole product is inside an imessage chat yeah - very cool 2 0 0 0 84 .
Sep 13 Apple are so good at marketing they can make you care about 17 hairs worth of a difference https://t.co/xRhYhe9Raa 0 0 0 252 114 .
Sep 11 Pretty gnarly phishing attempt just now - one of the best I've seen, had zero immediate suspicion when I got the email but eyebrow was raised when it linked straight to an app, then checked the address. https://t.co/gHlGPC6rqw 5 0 4 470 226 .
Sep 11 @juliapintar If you're not on RSS you're still missing from a quarter of listeners 😁 https://t.co/fSgG6bitwM 0 0 0 0 108 .
Sep 11 AI Products that have *stuck* for me so far - @claudeai as daily chat assistant - @WisprFlow for dictation - @codegen for code review - @magicpatterns for interactive prototypes I also use Cursor, but mainly for auto-complete and deep-diving, and it doesn't feel like it has the same delight and consistency as the other four 4 1 0 521 328 .
Sep 11 @juliapintar Love this! Might be in a minority but I use a podcast app (Castro) which doesn’t list it. Any tips on how I can find it? 0 0 0 0 133 .
Sep 10 Nikita’s been good so far but pity he’s dismissing this. If you want a platform everyone posts one you need to give them an incentive. Lack of engagement is a massive issue - only reason I’m still here is because I’ve already built a (tiny) following, no way I’d stick with it if I started today 1 0 2 568 295 .
Sep 04 Got to Rails World, the main area was so quiet, turns out everyone was at the Omarchy talk, which is overflowing https://t.co/Kb4iTkiV7P 10 1 1 635 136 .
Sep 01 Who's coming to Amsterdam this week for @railsworld? 13 0 5 903 52 .
Aug 29 @kyrylosilin Nice, I fully agree! Built https://t.co/NESs4jkTw4 to solve the build step problem, and building a css starter that goes with it 2 0 0 0 141 .
Aug 28 I live close to the airport so I get a string of cancelled rides, then have to apologise (I feel genuinely bad) about a 10 euro trip where they’re giving 4 to the airport and 2 to the taxi app. Gross 0 0 0 130 199 .
Aug 28 *so* many examples of this in smaller populations where everyone's afraid to upset the status quo. If two friends blow up and never talk again, it’s usually because they never learned how to have productive conflict. This is also prob why it’s so hard to make friends as adults 2 0 1 337 278 .
Aug 27 I feel this way too - something about the simplicity of just including a blob of html that always has me coming back to it 0 0 0 244 122 .
Aug 27 Side point: - Giving-a-shit declines when responsibility is distributed across many people, which means... - Every additional new leader/owner added, reduces how much each one gives-a-shit, which means... - To build a great singular product experience, the optimal management system is much closer to (benevolent) autocracy than democracy - than most people think. 5 0 1 184 364 .
Aug 27 The reason many products are low quality, or badly-thought-through, or dont-make-sense, is that it's actually very difficult to find people-who-care. These products have talent in engineering and design - the missing piece is just the person-who-gives-a-shit 14 0 3 1.2k 260 .
Aug 24 Re: App Mafia hate, as someone who’s skeptical of info products. Myself/gf listened to pod with the same guys, took a shit ton of notes. 10 wks ago launched an app with their exact playbook - now doing avg 1k+/day. To be fair they do know what they’re talking about & it does work 5 0 0 526 284 .
Aug 23 @mikker Did this for many years but the lack of a UI annoyed me enough that I switched everything to Hatchbox, which I know couldn't switch back from 0 0 0 0 149 .
Aug 22 This came through! Thank you for retweets, i will be attending railsworld after all! 1 0 0 483 84 .
Aug 22 “Html first rails” is rails with htmx and mini js instead of Hotwire and stimulus. Doing a big clean up on the repo but will release open source at some point 10 1 0 2.3k 158 .
Aug 22 People often ask for examples of @htmx_org in the wild. Here are 7 codebases where it’s being used today in production. 9 2 0 3.1k 119 .
Aug 22 Part of the reason I have so much conviction in the html first stuff is the variety of things we’re building, which allows us to sense check & compare. Currently we’re working in parallel on: - Online accounting platform with thousands of customers - html first rails, 2.5 yr old codebase - E Learning platform with 100k MAUs - rails with stimulus & Hotwire. 8yr old codebase - Contractor freelancing platform - html first rails. 3 yr codebase - Fully digitised platform for a shipping port. HTML first rails, 4 yrs old codebase - Internal tools for large salon software SaaS - html first rails - 3yrs - YC backed AI customer support/training platform - next js/typescript - Online US visa platform - html first rails, just started. - Kiosk software for the construction industry - html first rails backend, preact standalone + couchdb for offline first frontend - Consumer Mobile app with 1k downloads/day (react native/html first rails hybrid) - 2 months - Consumer mobile app going viral on insta - pre launch (react native/ html first rails hybrid) When https://t.co/c4irCqD8K4 went viral on HN a lot of the comments were “this guy has clearly never used this in practice” which shouldn’t get to me but it did - might have even fuelled all the work we’ve been doing to get it right. 17 1 1 4.4k 1.3k .
Aug 20 So… I live in Amsterdam but didn’t get a railsworld ticket because I thought we wouldn’t be here for it. But we are, and I really would like to go. Is there anyone in my network that’s either selling one or would know how to come by one? Cc @AmandaBPerino 😆 8 1 7 3.4k 259 .
Aug 19 @bebraw Yeah - I think it might be possible to break the vibe coding -> production software barrier by radically eliminating complexity and adding constraints 1 0 0 0 161 .
Aug 19 Just had to let another otherwise-good developer go because they said they'd rather leave than figure out how to get better (with super clear feedback). Sometimes when you remove ambiguity the reality is that many people simply don't want to do the work - and much more common at senior level 6 0 1 345 294 .
Aug 19 I think I’m gonna have to go build an html first vibe coding platform to avoid people being sucked in by takes like this 12 0 3 665 120 .
Aug 18 New Talk: "The Platform & A Stylesheet" Covered: 1) The (insane) progress in the last few years and what you can now do with HTML (popovers, modals, styled selects and more), and.. 2) Some ideas to bring the browser closer to handling things we take for granted in SPAs 👇 https://t.co/4uz7FtPA70 10 0 0 269 275 .
Aug 17 “Guinness with a splash of blackcurrant” was a fave with my grandparents, similar vibes 3 0 0 307 87 .
Aug 15 @levelsio @david_perell I've also seen that (and I'm Irish and normalized levels of drinking there is IMO crazy). I think culturally vilifying *heavy binging* is good/reasonable and might in some cases discourage the circumstances where spiralling happens, but vilifying *all alcohol consumption* is bad… 0 0 0 0 304 .
Aug 15 @joebell_ @tailwindcss (I’m a big tailwind fan and have been using it for years), but I think “create a component for every large group of classes” has big limitations especially outside a component-friendly framework like react, and I’m wondering if you’ve ever thought those limitations would ever… 0 0 0 0 300 .
Aug 15 @joebell_ @tailwindcss <div class=“spinner text-blue”> where the spinner class is already on its own lower layer and text-blue is on the utilities layer, but the spinner class may not have been written with tailwind, follows the grain of the web and is less code (but it doesn’t purely use tailwind).… 0 0 0 0 307 .
Aug 15 @joebell_ @tailwindcss Joe I've followed you for a long time & respect you a lot. I'm sure you realize you're effectively re-creating cascading & native CSS specificity here, and as Adam mentions it also doesn't always work. At what point do you think it makes sense to simply not-use-tailwind for all… 0 0 0 0 310 .
Aug 15 @adrianthedev That’s how I ended up doing it too! The YouTube Vanbuild rabbit hole goes deep. I may do one when I’ve got it to where I want it - have only done a few trips on it. 1 0 0 0 178 .
Aug 15 @adrianthedev I’ve had 2 - first one did the initial build but the finish was bad, second one fixed it up. It’s taken 2 years and my takeaway has been I should probably learn to be more handy so I can do this stuff myself. But most recent van guy did the couch/desk unit which I’m v happy with 0 0 0 0 293 .
Aug 13 @jeffwhelpley @ChrisEsplin I like that way of framing it. I would largely use the approach you mentioned if those were my goals for sure - in particular Cloudflare. I went down a deep rabbit hole of building a site optimizer that would inline CSS and a bunch of other optimizations when doing e-commerce… 1 0 0 0 304 .
Aug 13 @jeffwhelpley @ChrisEsplin Thanks Jeff! I'm talking about web apps specifically (so I'm assuming behind a login). But while I have you - let's say I do load a 70kb (gzipped) blocking css file on a website - to what extent will google search penalize me for stats that look like this? https://t.co/6dVPsD5swS 0 0 0 0 307 .
Aug 13 An example: Tailwind Lite is 68kb gzipped. Yes that's "70kb of blocking CSS", but it's also the vast majority of all the classes your app will need, full stop. Seems extremely reasonable to me. 0 0 0 217 193 .
Aug 13 The more I've thought about it, the more I think the obsession with avoiding *any* excess kilobytes on first page load is silly for most web apps (excluding maybe e-commerce). Web apps are designed for long running user sessions: A slightly longer-than-usual first request is 1) Not noticed by 99% of users, and 2) A reasonable way to give your browser the code it needs to run the rest of the web app. (Talking about a few hundred kbs of css/js here, not MBs). On a half decent connection with server round-trip you're looking at a few hundred milliseconds. On very slow connections it's a few seconds, which is bad, but in that case the app is going to need all sorts of other optimizations, and even then, front-loading the assets often still comes out as best all-in solution, assuming you're not using a ton of libraries, which you shouldn't be in most cases. 3 0 3 628 867 .
Aug 12 Yeah. If you're a decent founder you generally work quite hard and think a lot about customer-desires. If you can force yourself into that mindset as an employee, and be ok with 30% of your work being dull/frustrating - you're already miles ahead of others - doesn't have to require long hours - simple not easy. 2 0 1 367 312 .
Aug 12 Gonna have to rename this - @tailwindcss folks understandably don't want to create confusion. New website/name on the way this weekend 2 0 0 201 134 .
Showing 1-100 of 1587 tweets
← Prev 1 2 ... 16 Next →