X Stats

Login Sign Up
@tonyennis

Tony Ennis

@tonyennis

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

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

Date ↓ Tweet ❤️ 🔄 💬 👁 📝
Jan 03 The dumbest use of the term "skill issue" is when someone points out they simplified a thing by removing unnecessary complexity, and people imply they should have just stuck with the complex thing. If this is you, you're the midwit meme 1 0 0 173 238 .
Jan 03 We have about 8 client rails codebases that *we* created, and 3 we inherited. The inherited ones use "standard" rails. The ones we created use our own "Rails Lite" - no asset pipeline, no turbo, no actioncable, hx-boost instead of hotwire. It has really shone a light on how sub par the default rails setup is - developer enjoyment, velocity and product quality is much higher in the Rails Lite codebases 3 1 0 344 404 .
Jan 02 Learnings from another day of AI coding, specifically with https://t.co/Xj1J7WHRng, https://t.co/v1mNLt1vkZ, and Replit Agent https://t.co/qj7KWWbWG8 - The first-run experience of Bolt is extremely cool - the type-to-chat on the left, with preview on the right and the transitions as each file gets updated feels so close to pure magic - it's just thwarted by the regularity with which the result doesn't work. - The UX on solving errors is the best of the three - it intercepts issues and adds a "Fix this" button in the chat. Neither lovable or Replit do that well. Lovable: - Basically the same as https://t.co/qj7KWWbWG8 except 1) It feels less prone to break - was better at one-shotting prompts and didn't get stuck, and 2) You can't browse the code - Love the UX of being able to target a specific element from the chat Replit - Was surprised at how good the sonnet-powered code suggestions were. - Needs an option to reload open webview when AI changes are applied (currently there's one to restart the server but not reload) - Not great at changing multiple files. I had a prompt that need database changes, routes, controllers, and views. It only managed the first, then had to batch the rest with continuous "Ok now move on to the next resource" - The feedback loop still feels too-slow-to-be-enjoyable. Takes 15-20 seconds between prompt and "Apply Changes". Feels slower than cursor. - That said ignoring the speed, I much preferred coding in Replit to coding in Cursor - it feels smoother because you're not switching between the app and the browser. 6 0 1 429 1.6k .
Jan 01 @htmx_org Also thinking a lot about this recently. https://t.co/RxeuR0cPOt 0 0 0 0 76 .
Jan 01 The term #nobuild gained a lot of steam in '24 (on my timeline at least). Proposing another term that's close-but-not-the same: "No package manager" or "nopm" https://t.co/wQkvZf3Dt9 3 0 1 415 182 .
Jan 01 If much of the way we decide to live our lives (health habits etc) is downstream of interpreting statistical data (scientific studies), why is basically everybody really bad at statistics 1 0 0 329 187 .
Dec 30 @willobri Buzz over to Amsterdam there 1 0 0 0 38 .
Dec 30 @p_millerd https://t.co/6F5DTOa9zx 1 0 0 0 34 .
Dec 26 Direct API access is a very limited way to connect AI chat to your data https://t.co/wrdBH5Qp9C 1 0 0 265 95 .
Dec 25 @peteromallet V cute. Snarf looks great too 0 0 0 0 43 .
Dec 24 This is me 100%, definitely something to do with learning during a time when the tools were bad, and always feeling like the new tooling created too much of a dependency and reduced my ability to create an intuitive mental map 2 0 0 354 226 .
Dec 17 @Austen You may like the manifesto here https://t.co/aqfmxzmHPR https://t.co/BbSoKkerFM 0 0 0 0 87 .
Dec 17 @Mqsley Gmelius 0 0 0 0 15 .
Dec 14 The answer is that the platform has also improved, to the point that many of the things the tooling was invented for, are no longer needed. So the basis of comparison has also changed 1 0 0 341 183 .
Dec 08 🤭 0 0 0 242 1 .
Dec 08 Quick way to keep the "For You" feed but avoid videos 1. Download a custom css chrome extension like Stylus 2. Use this code to hide all tweets with videos [data-testid='tweet']:has([data-testid="videoPlayer"]) { display: none } 0 0 0 207 233 .
Dec 07 My model of reasoning is that it’s transferable. Giving the right answer doesn’t constitute reasoning if - when the question changes to an area that the model knows nothing about - it can no longer reason 0 0 0 258 204 .
Dec 06 https://t.co/BvvbPHUG8Q 0 0 0 164 23 .
Dec 06 From @addyosmani Great article, some more gems: https://t.co/gGTeDwO1XD https://t.co/RzMFxjqc3z 0 0 0 106 98 .
Dec 06 "If you watch a senior engineer closely, they can scaffold full features in minutes, but they're not just accepting what the AI suggests. If they did they'd end up with a house of cards" 🎯 https://t.co/l2WBiKvFXC 0 1 2 301 213 .
Dec 04 @0xferruccio @patjfin Full already? 1 0 0 0 35 .
Dec 03 Many people seem to think this gap is downstream of EU regulations, and while yes that’s bad, my suspicion is that they explain maybe 10% of the gap here 0 0 1 333 153 .
Nov 30 Both Marc and Joe are ultra-agreeable in this conversation it’s mildly infuriating. Both of them say numerous dumb things and just keep yup yup yupping their way through with neither stopping to correct. 0 0 0 320 203 .
Nov 30 @therealdecross The statements I’m referring to are blanket ones like “x is a hell hole” or “x is poor” or “x has uniformly terrible culture”. Yes to your second question 0 0 0 0 170 .
Nov 30 This is my experience too. People making sweeping statements about anything larger than a city block sound dumb when you go visit - just back to Amsterdam after a month in NY & a month in SF, all 3 are great in different ways but according to pockets of X they’re nightmarish 1 0 1 370 279 .
Nov 25 @bentossell @kamrify Kamran is a master shipper and super nice dude 3 0 0 0 67 .
Nov 25 @SlingMoney any reason why I wouldn’t run my contractor payroll through sling? I.e I tell contractors to sign up and send us their sling Solana address, then we bulk pay to their wallets. I didn’t see “get paid” in the list of uses in the onboarding so I’m wondering if there’s a… 1 0 0 0 280 .
Nov 24 RT @tonyennis: This is what we mean when we say “non essential complexity” 0 1 0 0 74 .
Nov 23 This 👇 1 0 0 273 6 .
Nov 22 @SriVenkatesh8 @htmx_org I wrote an article on this exact thing - using rails but principles still apply https://t.co/8cpBN8YKWV 3 0 0 0 130 .
Nov 22 @thepatwalls I think for non-developer someone like @rileybrown_ai . For a developer - I would nominate myself 🤗 Here's me and Sahil doing a live stream where we both build out a sports app. Would be down to jam for sure - I'm Rails also which I know is your stack. (Video is long, skip to… 3 0 0 0 291 .
Nov 22 Basically the same highs and lows as learning to code pre-AI, but with slightly shorter feedback loops 1 0 0 247 102 .
Nov 22 Strong twitter trend recently of people using bad faith anecdotes (the conference example which is trivially falsifiable) and dumb generalizations to undermine a valid but much more nuanced point because they're too lazy to go any deeper than "EU culture = homogenous & decel" 1 0 0 259 280 .
Nov 22 The amount of time and money I've wasted with the existing payment companies, simply trying to pay overseas contractors and helping clients build simple financial products has radicalised me. The day it becomes viable to send payments without paying extortionate fees, having ridiculous settlement times, and money going missing for days, is one I relish. It's been technically possible for a while with stablecoins on fast cheap chains like solana, but the barriers of 1). Having to educate people on how it all works, and 2) Having people be able to use the funds they hold, have been too high. I dove back in recently and there are a few products that have given me hope we might be approaching a tipping point. Going to be running some experiments with the team to see if it works in practice. Kast: Open the app, input your country and a photo of your passport, and get a visa debit card and a solana address (Took me 2 minutes). Give this to your employer and they can pay you in USD, instantly, with zero fees, and you can use the card with Apple pay etc & get a physical card. No smooth bank account off-ramping yet though. Sling: Basically Revolut but with lower fees and without the reliance on interbank rails (you can send to someone else's Sling account and they can use it instantly without waiting for their bank to settle). But also has bank transfers and withdrawals. Doesn't support the Philippines yet which is a hard requirement for us, but keeping an eye. Both built on @solana but require zero crypto knowledge as a consumer. They do both rely on the existing payment rails (visa, mastercard, bank accounts) to be useful, so there's no guarantee they'll stay functional or keep their fees at zero - for now though definitely worth taking a look. https://t.co/sWQ6K7tNnC https://t.co/sI7Evp9XBN @KAST_official @SlingMoney 3 0 2 390 1.9k .
Nov 20 @leoubbiali Already started https://t.co/cHaAxa0Pzu 0 0 0 0 53 .
Nov 18 Why I love Americans. Where else do you get this level of universal positive interaction among strangers? 5 0 1 345 105 .
Nov 13 Is Twitter search completely broken for the last week for anyone else or just me? https://t.co/gNYWuIvGc1 0 0 1 377 105 .
Nov 13 @cantillon_fr Yup 0 0 0 0 17 .
Nov 10 @cantillon_fr It also looks as though the recipient bank account number can't be set dynamically, from what I can tell - we want to let Party A pay Party B, C, D, where the latter have their own bank account details. Their docs don't answer this question unfortunately, any idea? Cc… 0 0 0 0 285 .
Nov 10 @cantillon_fr Thanks for that! That would require a separate pay button for each invoice right? 0 0 0 0 95 .
Nov 10 If you want to build a payments product like this today, your options are: 1. Pay a company like Stripe a percentage fee (anywhere between €100 to €200 *per transaction* for a €10k payment. That's it - there are no more options Online payments have not been anywhere solved https://t.co/J90TFTEiBS 0 0 0 0 300 .
Nov 07 I'm just an amateur punching questions into Perplexity, but by my calculations, the average US tax payer is indirectly accumulating ~$16,000 per year in debt through the government. How does this not end in disaster? https://t.co/3uq85TdwP3 1 0 2 417 216 .
Nov 07 I'm just an amateur punching questions into Perplexity, but by my calculations, the average US tax payer is indirectly accumulating ~$16,000 per year in debt through the government. How does this not end in disaster? https://t.co/g6aVlcv8qr 0 0 0 0 240 .
Nov 05 😤 https://t.co/q46X3lLgko 1 0 0 200 26 .
Nov 05 @ravavyr @cory_laviska Not following this - why would it be hard to track down if all the component declarations are together? Even if they're not, by just clicking into the inspector and looking at the line number of the offending declaration? 0 0 0 0 244 .
Nov 05 @bebraw This is my fear. I think it would be a massive shame for the future of the web. How do you reconcile "I try to minimize js in my work" with "I don't want to drop typescript"? We're building modern SaaS apps with about 2% javascript. Doesn't make sense to me that you keep a build… 0 0 0 0 289 .
Nov 05 @bebraw Surely we get to the point that transpiration is no longer needed at some point? It happened with css 0 0 0 0 109 .
Nov 05 @bebraw Currently yes. Do you have any thoughts/opinions on this? https://t.co/IqbAiNDIwi 1 0 0 0 91 .
Nov 05 Working on a js app this week and it's making me appreciate the no-transpilation approach we have even more. The gap-in-consistency between development and production that people have grown to tolerate in js land is crazy. 4 0 1 306 222 .
Nov 03 @bebraw When the thing being pointed to is actually a skill issue, and not one that’s due to artificial complexity - which is often the thing the conversation is about in the first place 1 0 0 0 186 .
Nov 03 @dustingetz @yacineMTB This take surprises me, because I’d consider myself very philosophically similar to you generally. Do you think the understandability of a system is important? And that the approach you recommend here is likely to lead to smart people adding unnecessary complexity over time? 0 0 0 0 298 .
Nov 02 If you agree with @shl, you should try @rlygoodsoftware https://t.co/jLep2I5VJF 5 0 0 401 55 .
Nov 02 PSA: Don't use ChatGPT for estimates. https://t.co/ge9Nt4iwAZ 1 0 0 243 61 .
Oct 30 Anyone know if @shadcn has a multi select dropdown or dropdown with type to search? Can't see any in their docs 1 0 0 188 111 .
Oct 29 Also - am I being dumb? Is there actually a web components version of Select2/choices that I just couldn't find? 0 0 0 328 112 .
Oct 28 @mortenjust @felixlyu_1018 This looks amazing - love this workflow. One thing I notice is that in examples the frames don't seem to sync to the timings of the music - is there a way to specify the timings of each section to get them to match? 0 0 0 0 242 .
Oct 25 https://t.co/cYkrZpLUtf 2 1 0 203 23 .
Oct 24 I see SaaS founders complain often that people are reluctant to add card details/pay for their Saas. But I just went through about 20 services we're paying for but not using, and half of them are a huge pain to even figure out how to downgrade - it's no wonder people are wary of https://t.co/cOMgsXY9Lb 0 0 0 178 303 .
Oct 24 This is a great summary of an incredibly common phenomenon. I like how matter of fact it is - just states things as they are without vitriol, which is where the discourse on this stuff tends to go 6 0 0 344 196 .
Oct 23 The deeper I go down the optimal-CSS rabbithole, the more I find myself disagreeing with the philosophy behind Tailwind, which sucks because I really look up to Adam & the team. I agree with the idea of have-a-framework-so-that-you-can-write-close-to-zero-custom-css I disagree with the idea that there's no better way to achieve this than componentising most of the places where repetition occurs. I also dislike the framing of this as a dichotomy - either use 100% utility classes or write 100% custom components yourself. Blog post soon 5 0 1 398 543 .
Oct 23 @goodtweetsalex Yeah, I was thinking even longer than that to be honest. I also think there'll be a gap between when it's *possible* and when it's *prevalent*. Part of why I publish is to plant those seeds so there's less resistance and more openness when it does become possible. 1 0 0 0 280 .
Oct 23 Something else I don't see a lot of discussion on: A distinction between run-time and build-time libraries. It's not "frameworks or nothing", it's: 1. Create your html/css/js/web components from zero 2. Use a run-time library that provides utility and organizational patterns (but no build tooling dependencies). 3. Use a build-time library that provides utility and organizational patterns (but needs build tooling dependencies). I think we need to be focusing more on (2) and less on (3). 0 0 1 446 492 .
Oct 23 Checking out more js-ecosystem component libraries including shadcn today & their new sidebar component, which is world class. What I love: - They're pushing the copy-paste pattern. - They use CSS variables for config as opposed to js. - It's marketed as a single file (sidebar.tsx). What I don't love: To use sidebar.tsx you need to build your app in React. This makes the most sense *from an adoption perspective* - the industry is still focused on React. But if you were reasoning from first principles about this, and particularly if you care about the codebase being easily modifiable 1, 3, 5, and 10 years into the future, I don't think the tradeoffs of the built-in-react, versus built-on-the-platform make sense. If those were the design goals, I think you'd deliver it as sidebar.css and sidebar.js The developer experience is *very* similar - you copy paste code into your codebase, set up your css variables, and then pick the parts of the feature set you want to use and copy them over. The main difference is that instead of writing jsx components, you're writing html - but the code looks remarkably similar: with attributes. What am I missing here? 0 0 0 210 1.2k .
Oct 19 @rauchg what’s you do to get the inventory in? Public API somewhere? 0 0 0 146 68 .
Oct 18 https://t.co/ovDGthSA8R 0 0 0 143 23 .
Oct 17 Ok, maybe I can just open up dev tools and see the CSS file/s there. The dev tools 👇 https://t.co/Bgu2qQ5xil 0 0 0 146 108 .
Oct 17 - Read the docs and add the required changes - Reload the browser - no change. Let's debug - First - is the css file being imported? - lets view source - The source 👇 https://t.co/lv6YM9vUpX 0 0 1 434 190 .
Oct 13 Every time I come to the US I’m reminded to never trust twitter takes on cities. They are comically misguiding 0 0 0 472 110 .
Oct 11 @rauchg This is what https://t.co/bED1hL2qXx does! 82 0 0 0 50 .
Oct 10 @powell_eric @rails I personally most like Svelte because code more closely resembles html & I'm not a big fan of jsx, *but* I think I would still go with react because it's substantially larger ecosystem wise (availability of packages/docs etc) & that's the main benefit of going js-land. 1 0 0 0 297 .
Oct 09 @schwad_rb What language is that? (I agree 100%) 1 0 0 0 48 .
Oct 07 RT @shl: First session starting now! https://t.co/WWAhIKgqxl 0 4 0 0 61 .
Oct 05 Wonder why cursor doesn't support meta questions about cursor configuration itself - this seems silly https://t.co/q1dDf4OB1Y 1 0 0 330 125 .
Oct 05 Went to see Joker 2 last night. Still honestly confused. I kept wondering if maybe it felt bad because it’s not predictable and everything else today is, but I think actually no it was just quite bad. 1 0 1 338 200 .
Oct 04 Seems like everyone's a fractional cto these days - I thought this was more supply-driven than demand-driven, but maybe I was wrong https://t.co/LSJ9Iajiix 1 0 0 264 155 .
Oct 04 Just had a look at the PhotoAi reviews on TrustPilot. I think there are a lot of things to learn from Pieter but his focus on automate-customer-service is his biggest weakness and not IMO something to emulate/glorify. The HeadshotPro reviews show how to do it well. 0 0 0 270 267 .
Oct 04 @adamrdaniels @shl @unpolyjs Yeah behind the scenes It’s literally a link that adds a new category to the database and then redirects to the page again and reloads the whole page. Htmx is smart enough to 1. Follow the redirect without a page load and 2. Merge the divs that already exist. Really nice 0 0 0 0 300 .
Oct 03 @hernansartorio trying to get in to pagy but can't find the reset password link - is there one somewhere? 1 0 0 0 105 .
Oct 03 @shl All this in ~30 lines of code, mostly html https://t.co/b3IlWFCvZ3 1 0 0 198 71 .
Oct 02 The history of my view on when you should use Tailwind - 2020: 100% in Tailwind - 2023: 90% in Tailwind - 2024: 20% in Tailwind (*if you have good css standards/library) There are just so many component-like things in web apps and I don't think packaging everything at the view layer has better DX or leads to better UI/UX. The problem has been that if you don't do Tailwind, you have to build our your own library/standards, which is a lot of work. 1 0 0 274 452 .
Sep 30 @Shpigford @revisedev Yes but also suggesting to show that in the video next time as that’s the impressive part more so than the code 0 0 0 0 133 .
Sep 30 @Shpigford @revisedev Show the feature working though!? If so that’s awesome 1 0 0 0 76 .
Sep 30 @IanConnolly @willobri 👀 I actually thought to myself “ah that sounds like something Ian might be at” See you there! 2 0 0 0 119 .
Sep 30 @willobri Great timing. Add me? 4 0 0 0 31 .
Sep 28 @ohitslloydeh @GregMolnar This is anecdotal from Rails world but I think 1. The average new junior web developer thinks js ecosystem before rails, and 2. The average mature rails company isn’t hiring a lot of juniors 2 1 0 0 216 .
Sep 28 @GregMolnar Because he has a ton of influence and people listen to him. Rails is still in the danger zone from a talent pipeline perspective so correcting the idea that it’s a legacy framework is important/worthwhile 11 0 0 0 216 .
Sep 27 @shl @htmx_org Thanks so much for that example! This is the exact kind of thing that confused us too. 0 0 0 0 101 .
Sep 27 @shl Yes! And that’s a huge issue! Not just with htmx but Rails more generally 1 0 0 0 78 .
Sep 27 @shl That’s a pity - it also took me/us a few months to figure out, and was more about figuring out what to ignore conceptually. But we’re at a point where there aren’t any complex interactions that aren’t covered in 2/3 blog posts/guides we’ve written internally, and we’ve done quite… 0 0 0 0 286 .
Sep 27 @pom_I_moq Example? 0 0 0 0 19 .
Sep 27 One of the things we're doing with all new joiners at @rlygoodsoftware now is having them go through @MobbinDesign and literally rebuild the products in there (with our stack/handbook of course), and with daily code review from me. This was built by 2 devs over 2-3 weeks. Note the details (loading states, animations etc) - it all feels reasonably smooth (with some polish to be added) but it's literally just partial page updates on the links and forms, a small set of ~20 or so reusable css classes, and a sprinkles library for minor frontend state. Posting because I keep hearing people saying modern web apps aren't possible to build without a "modern" stack like React (cough @shl) and it is demonstrably not true, *provided* you've done the work to find the right/bets abstractions (which admittedly is harder in non-react land). 3 1 0 441 849 .
Sep 27 @shl Got you - I do agree Rails needs more obvious ways to build really nice polished stuff, and turbo/hotwire/stimulus are not it IMO. On the other hand I still think for low/medium interactivity sites, HTML with something to handle partial page updates, and a sprinkles library for… 12 1 0 0 286 .
Sep 27 @shl You also haven’t clarified what your reasoning is though. Which parts specifically are bad as you see it? Is it rich text/offline/higly interactive screens? Or just forms and stuff? 21 0 0 0 186 .
Sep 26 “I love how far the discourse has moved. I don’t even have to make the joke” @dhh https://t.co/hmnNVvaOBA 1 0 0 253 106 .
Sep 25 @Mailtrap what is this? Please remove my card from your service which I have already unsubscribed from - this is an extremely dark pattern. Thanks https://t.co/kRYDJweAe7 0 0 0 0 170 .
Sep 25 @andrewculver See you there! 1 0 0 0 28 .
Sep 24 @FORSBERGtwo Hey Bjorn is this still available? Happy to pay for it 0 0 0 0 67 .
Sep 24 @RUTVIKCHANDLA @_jr @rails Still available? 0 0 0 0 43 .
Sep 24 @bradgessler There is one - webflow uses it and it works with Cloudflare. But it’s also buggy and doesn’t take into account existing records/collisions. Can’t recall the name 1 0 0 0 174 .
Sep 23 "Humanity discovered an algorithm that can really truly, learn the rules that produce any distribution of data" @sama this phrasing is interesting. Are there any differences between this definition, and what humans would define as "ability to reason"? https://t.co/t192wmeUM7 0 0 0 181 276 .
Showing 701-800 of 4168 tweets
← Prev 1 ... 7 8 9 ... 42 Next →