X Stats

Login Sign Up
@fractaledmind

Stephen Margheim

@fractaledmind

699 Tweets
1,303 Following
4,462 Followers

Modern CSS • Web Platform APIs • Rails + SQLite

Date ↓ Tweet ❤️ 🔄 💬 👁 📝
Jan 01 Yes, yes I did spend lots of time ensuring that the text always aligns with a grid line. Thank you for noticing. It’s always all about the details 👌 23 0 0 3.3k 150 .
Jan 01 I'm planning to release the first version in a few weeks. Free and open source. If you want to help me kick the tires early, drop a comment—I'd love some beta testers. 16 0 10 3.6k 167 .
Jan 01 I love that these affordance utility classes compose like any utility. `ui-button` is your baseline. Add `text-lg` or `px-6` when you need to. I fully embrace the utility-first approach, where we don't have to name every variant. No `.button--large--rounded--primary` hell. 1 0 1 3.8k 273 .
Dec 31 Enjoyed this post? Subscribe to @fractaledmind for my mix of frontend, backend, SQL, Rails, and random content. 1 0 0 3.3k 113 .
Dec 31 Next time you reach for <select multiple>, stop. Use a fieldset with checkboxes instead. Your users will thank you. 8 0 1 4.7k 122 .
Dec 29 Browser support for @​layer: 95%+ globally. It shipped in 2022. It's not experimental. It's not a polyfill situation. The reason "semantic CSS failed" is no longer true. The platform caught up. 9 0 2 2.6k 194 .
Dec 29 This led to specificity wars. `.btn-primary` beats `.btn`. `.btn-primary-lg` beats `.btn-primary`. Before long you're writing `.btn-primary-lg-outline-disabled` and praying nothing overrides it. We threw out semantic classes because of this, and rightly so IMO. 2 0 3 3.6k 263 .
Dec 29 The old problem with .btn: ``` .btn { background: blue; } ``` Specificity == 0,1,0 ``` .bg-red-500 { background: red; } ``` Also specificity == 0,1,0 Which wins? Whichever comes last in the stylesheet, i.e. order-dependent chaos. 2 0 2 3.6k 231 .
Dec 23 👀 Sneak peek of a 100% plain HTML and CSS component I'm building for my next project. I'll give a full behind-the-scenes tour of the project to the first person that comments with the correct essential implementation details driving this "card tabs" component. https://t.co/aqWxEYAqsa 29 2 1 3.5k 285 .
Dec 23 Have an SVG with stylized text? Want to make the stylized text selectable? Add a <text fill=transparent> node with the corresponding text. We can have nice things that are usable too! https://t.co/6cXk8DCchk 46 1 2 3.5k 215 .
Dec 18 Today's <dialog> elements are your newest secret weapon—simple and powerful. In my latest post, I'll guide you through creating sleek, thoughtful UI with this full-featured, native hero. Dive into the future of stylish <dialog> experiences: https://t.co/54apoduCpi 34 5 0 3.2k 277 .
Dec 15 🌶️ #nobuild is a solo developer philosophy masquerading as universal advice. The append-only CSS problem that drove teams to Tailwind? Nobuild doesn't solve it. It ignores it. Let me make the case for #lowbuild instead... 18 0 1 2.5k 223 .
Dec 15 I love the serendipity of things. @_swanson and I both saw the Fizzy PR last week and had the same thoughts, just at the same time I was working my way through a series on how to build stylish confirmation dialogs with modern browser features. Great collab and love the outcome! 15 0 0 2.7k 278 .
Dec 13 Try this: Tab through your homepage without touching your mouse. Can you tell what’s focused? Can you reach the main CTA? Can you get back out of the menu? That 30-second test tells you more than your lighthouse score ever will. 29 0 2 3.9k 230 .
Dec 09 Continuing with closing <dialog>s, in addition to `formmethod="dialog"` you can also implement a dialog close button in the header with an invoker `command="close"`. Perfect way to close a dialog without a <form>. https://t.co/NDTwsUwQfc 78 6 5 4.3k 250 .
Oct 23 Joel and I have made fantastic progress on our Ruby enhancements gem that brings rich runtime type assertions into your Ruby projects and Rails apps. Joel recorded a short demo of how to add type constraints to method definitions: https://t.co/bw1HyL7TF1 30 0 2 3.3k 254 .
Oct 21 Joel and I have recently focused on our runtime typing approach for Ruby. Last week, we finally cracked the nut on adding types to method signatures in a way that feels beautiful and native to Ruby. Joel walks thru our thought process and aesthetics: https://t.co/95wKIcdV4c 31 2 8 3.1k 274 .
Sep 17 I love what @calebporzio is doing w/ Flux UI, and the new pillboxes component is 😍. I enjoy trying to build components without an ounce of JS anywhere to be found. Mine requires keyboard nav with TAB, but is otherwise basically identical: https://t.co/nmUzGIK6i6 #StylishHTML https://t.co/ISfnuMMHCW 13 1 1 2.9k 300 .
Sep 11 If you want to learn more about building web applications with SQLite, I made a course with the inimitable @aarondfrancis on this exact topic. Check it out at https://t.co/47UlyizFX9 41 0 1 4k 182 .
Sep 11 This has some Ruby-specific bits, but primarily covers essential SQLite-only details: https://t.co/N6ijWeJOoB TL;DR * immediate transactions * proper connection config * check busy_timeout doesn't block in your context * use an open-ended connection pool 28 2 1 3k 261 .
Sep 04 And it is open source as of now! Not quite v1, but damn is it featureful and beautiful https://t.co/wD87o9PWsv 60 2 0 3k 110 .
Sep 04 The future of Rails is very very bright, especially for those of us who have already seen the light of the power of SQLite on Rails https://t.co/CA19ob8w3r 97 5 3 4.2k 155 .
Aug 15 I love deterministic avatar image generators, but you don't typically need HTTP requests to get them. Here are three different Stimulus controllers for 3 different algos (shape, face blob, initials): https://t.co/VNvDGEPJP1 https://t.co/X3FAaUhY6h https://t.co/xr0kChtuEd https://t.co/QTyHGlKWJX 35 3 2 3.7k 296 .
Aug 01 It isn’t done and it isn’t perfect, but it is mine and it does work. https://t.co/MN1zjii4fv 59 0 10 3.4k 92 .
Jul 31 Great afternoon of progress! The wood acoustic panels are now up on the exterior. Glue on the corner is setting. Doing a bit of door framing then base board and sound foam on the interior. Onward and upward! https://t.co/bUqR3OvqVd 61 2 7 4.7k 231 .
Jul 29 Day one: frame is up. It is a small little studio, but it will be mine. Made with my (and my Dad’s) own hands. Onto day two! https://t.co/kRDRRBgOM0 53 0 10 2.9k 148 .
Jul 24 Simple fact: HTML is the best component framework out there. It is composable, universal, and grows more featureful by the quarter. 75 2 6 3.5k 131 .
Jun 19 🧪⚡️ Acidic Job Pro offers a suite of battle-tested, elegant, and powerful features to make building complex workflows a breeze. You can gate running a step with a one-time check, a repeated check, or a delay; you can compensate for errors; you can also iterate over a collection. https://t.co/IWLphKYInr 41 9 3 2.6k 303 .
Jun 11 A new version of Solid Errors (v0.7.0) is out now! This is another release driven by the community, with PRs from 5 different contributors going into this release. Checkout the CHANGELOG for more details https://t.co/JxT5aq0j6n 79 4 8 3.9k 228 .
Jun 03 v0.13.0 of the Litestream gem is now out with half a dozen improvements *all from the community*! Check out the CHANGELOG for details: https://t.co/ACtrKFW6vX 32 1 0 2.6k 158 .
May 30 ActiveJob::Continuation is a truly wonderful addition to Rails. So many apps need resumable, multi-step workflows in a single job. The fact that “durable executions” will come out of the box in Rails is another example of how good we have it. And it’s great for AcidicJob! 78 3 3 4.8k 272 .
Apr 18 This was an epic surprise entry for the closing keynote at #RubyKaigi2025 from @yukihiro_matz. Just amazing to see it live in person 67 6 1 4.2k 132 .
Apr 16 Marco is one of the very best devs I have ever met, and he is channeling so much of his immense talent and energy for the betterment of the Ruby community. This is such a great tool that can be the foundation for so many amazing new things. Congrats! 78 4 1 4.6k 250 .
Apr 11 Joel Drapper is kicking off #WrocloveRB https://t.co/FuSO8Vy4x7 23 0 1 2.7k 63 .
Apr 01 Did another quick sprint on this and made some great progress. We can 💯 percent have a beautiful and accessible JSON viewer with nothing both HTML and CSS https://t.co/SrbpQlD2Ho 48 0 5 3.1k 178 .
Feb 21 I find the article a bit generic, but the basic point is reasonable. My stance is simply that many apps simply won’t ever grow beyond SQLite’s sweet spot. For those apps, you definitely win simplicity, speed, and cost by just leveraging SQLite on a single machine. 32 0 5 3.6k 264 .
Feb 20 I know plenty of people who follow me are already seasoned Rails engineers, and you might not think there is much to gain from the "High Leverage Rails" course released yesterday. But! There are some advanced features in the back part of the course. Something for everyone! https://t.co/AxK50TW8SL 45 5 4 3k 297 .
Feb 15 Starter kits and AI are nice, but they are insufficient for building quality software that you can own and evolve. My "High Leverage Rails" course (link below) recognizes that responsibility require understanding. Set yourself up for longterm success by mastering your tools. https://t.co/h0fM3GGnNt 9 3 1 4k 299 .
Feb 06 “Your proposal for RubyKaigi 2025 has been accepted.” 😳🙏🇯🇵 #rubykaigi I’m only kinda stressed now 😅 76 2 4 2.7k 101 .
Jan 29 I see developers despairing over AI, but I don’t get it. At all. Perhaps the age of the coder is coming to an end, but the age of the programmer will remain. Builders and artisans will always need to instruct computational systems to build useful programs. 🧵 49 5 5 3.5k 259 .
Jan 22 Awesome new Ruby gem(s) alert! 🚨🚨 This week Joel Drapper and I wrapped up the awesome Difftastic tool into a gem with precompiled binaries. Difftastic gives you AST-driven diffs instead of simple text-driven diffs by leveraging the power of Tree Sitter. 76 7 2 3.6k 254 .
Jan 16 That feeling when your 100% Ruby, 100% compatible SQL parser for SQLite's dialect is running 37k tests successfully 🎉🎉🎉 Right now it only parses CREATE TABLE fully, but it parses it *fully*. Every possible encantation that SQLite accepts, this will parse into an AST! https://t.co/IuX24TGFLj 83 4 5 3.6k 292 .
Jan 13 Today my wife became a German citizen! https://t.co/mGgZSbFnAD 72 0 5 3.2k 62 .
Dec 28 While this isn't a primary focus at the moment, I did complete a successful experiment to convert Ruby expressions to the structured Ruby format that can then be parsed into SQL expressions thanks to `RubyVM::AbstractSyntaxTree.of(block)`, e.g.: https://t.co/A9GGME15J0 11 1 3 3.8k 269 .
Dec 27 Defining my interface for CREATE TABLE statements now... https://t.co/AApQ1XMAQ7 13 0 3 2.5k 80 .
Dec 26 Working on statement structures now. Here is the example I am working with currently, the SQL statement to find all tables rows where the json array column contains any of the passed in values. I personally find this hash-y structure very legible. WDYT? https://t.co/jZTmtuIR8N 19 1 8 3k 277 .
Dec 18 This opens up many new intriguing possibilities for #SQLiteOnRails applications, but the primary one is a smooth transition from vertical to horizontal scaling. I look forward to playing with this more soon. 43 7 1 4.5k 207 .
Dec 02 I see people in tech complaining about estimations all of the time. Understandably so. Estimations don't work and mean next to nothing. These two images (one from @dave_stewart and one from @basecamp) beautifully capture the true reality of understanding work 🧵 https://t.co/QvXLXbLblM 44 16 2 3.1k 285 .
Nov 17 Which feather do you prefer? A or B? https://t.co/LHT00WDgi4 10 0 30 4.2k 60 .
Nov 08 In preparing my @rubyconf talk, a new gem sprouted into existence. Use 👾 Chaotic Job to help you test your background jobs for reliability and resilience. https://t.co/oj2MKkqCwq 🧵 53 3 4 3.2k 182 .
Oct 30 Love the new PlanetScale site: https://t.co/AxcWF152Pj This aesthetic is just so lovely. No frills. Just quality and clear value propositions. 27 0 2 3.2k 143 .
Oct 21 Elvinas for the win! In all honesty, connecting with so many amazing people online has been a highlight of my career. I know that Twitter kinda sucks in some key ways, but as a place to meet amazing people, it is still unrivaled. 14 0 1 2.6k 231 .
Oct 21 Odds are I’ll reach 3k followers today 🤯 What a wild ride it has been the last couple years. I have so enjoyed actually getting active and involved in the Rails community. https://t.co/cthkpNHYiU 66 0 6 4.5k 197 .
Oct 20 Rails 8 is the first web framework that provides a production-ready SQLite experience out-of-the-box. Plus, with the suite of Solid gems, Rails 8 + SQLite make the `rails new` command production-ready. This combo of conceptual and operational compression enables #noPAAS. https://t.co/3TGkGhnauE 76 4 2 4.6k 295 .
Oct 19 Yes, I love SQLite on Rails as an application architecture. And yes, I truly believe that you should try it for your next project. But, it isn't a silver bullet and it isn't the right fit for everyone. Plus, even if it is a good fit, there are considerations to be aware of. https://t.co/WJJPizLILp 20 2 2 3.1k 299 .
Oct 19 Yippee is Joel and I’s vision for how to build web apps today, and at the center of that vision is giving devs the ability to expand and contract complexity (how intertwined things are) as needed across the codebase. Split files as needed where needed. 19 1 4 4.7k 252 .
Oct 17 You can't truly understand why #SQLite is the way that it is until you understand this reality: https://t.co/LfeiqBDJTy 31 0 1 2.6k 119 .
Oct 16 Up to 2k views within the first 24 hours! It warms my heart to know that this talk is interesting and resonates with people. It is the best talk I have ever given on a topic I am so passionate about. I want #SQLiteOnRails to be the goto tool for starting new web apps. https://t.co/xT5LT9SZ6R 76 3 4 4.5k 292 .
Oct 16 I have had a wild 2024 (and end of 2023). I've gotten to visit so many amazing places (Taipei, Nairobi, Toronto, and so many more), talk with so many amazing Rubyists, and preach the gospel of #SQLiteOnRails! Plus, I have 3 more talks still waiting to be released to YouTube 😅 https://t.co/1UgTbrS9Lp 37 1 4 2.7k 301 .
Oct 16 My #RailsWorld talk is doing very well today, the first to 1,000+ views. If you haven't seen it yet, I am confident that you will love it. I poured every ounce of knowledge and passion that I have for this topic into this presentation. https://t.co/HxhrQYldf5 86 9 6 4.9k 259 .
Oct 10 This pitch from @swyx (for Temporal) articulates well why Acidic Job is essential for Rails applications. Indeed, the most valuable, mission-critical workloads are long-running and tie together multiple services. You *must* make these both resilient and well-modeled. https://t.co/h3PfzZPFW1 10 2 2 3.3k 291 .
Oct 09 These two posts come directly out of my current work to get to a beta version of Acidic Job (https://t.co/UL1gf4iGc9). You might not know it yet, but you *need* Acidic Job. 🧵 https://t.co/QYP6sPjFSs https://t.co/Trq2GNT4aB 19 5 2 3.6k 224 .
Oct 09 I found myself wondering today what the fastest and simplest way to normalize a Hash was. Since I care about simplicity, I benchmarked only `stringify_keys!` and `symbolize_keys!` to see which was faster (benchmark script here: https://t.co/fUQ7q2UY0E). Here are the results: https://t.co/oMx4kPJg9H 3 0 1 4.4k 299 .
Oct 06 There are two types of programmers: All programmers are excited by solving problems. The difference is *how*. Some programmers are most excited by solving a problem with the highest degree of leverage; others are excited by solving a problem with maximal perfection. 🧵 35 3 3 4.9k 270 .
Oct 02 I’m later than most, but I too had a magical time at #RailsWorld this year. I loved the opportunity to speak on what is now possible with Rails 8 and SQLite. I loved the conversations I got to have with so many #RubyFriends. It was a special time with a special community. https://t.co/t2H8c1RhAB 70 3 6 3.8k 296 .
Sep 27 About to present my vision for the best one person framework experience in web development. I truly believe that SQLite and Rails 8 offer the indie hacker, the bootstrapper, the builder the best possible developer experience. Exited to share more soon! #RailsWorld https://t.co/JmBsa3IPzw 133 5 8 4.8k 288 .
Sep 26 Progress is our path, Complexity builds the bridge, Simplicity waits — @dhh at #RailsWorld A haiku to encapsulate the core philosophy of Rails and its continual evolution. 45 7 1 2.5k 173 .
Sep 12 Up next, @joeldrapper shiwed everyone how to build beautiful view in Ruby with Phlex. Checkout https://t.co/Q74P8eyEbI. The alpha of v2 was released today! https://t.co/TboMr0KGRD 26 1 0 2.6k 179 .
Sep 10 I have built a powerful & flexible Rails template script for #SQLiteOnRails apps. It can scaffold new apps or upgrade existing apps. It works with Rails 7 and 8. It is controllable and customizable. You will pay [1] for access to the source code or [2] for my time to help you. 5 1 6 3.9k 281 .
Sep 03 Working on my #RailsWorld talk debunking the myth that single-machine, SQLite-only apps can't handle production workloads. Do you have a prod app built w/ Rails & SQLite to showcase? If so, what are details around traffic, response times, etc. that demonstrate it runs smoothly? 38 5 3 3.5k 282 .
Jul 26 What you will be able to do with nothing but Rails 8 and SQLite will be absolutely astounding. The compression of complexity is so dense, Rails 8 is basically creating a complexity blackhole 🕳️ 72 4 0 4k 193 .
Jul 26 Enjoying my first day at #RubyConfAfrica2024! https://t.co/GzaEAVEbU1 63 4 5 3.3k 69 .