SupeRails
SupeRails
  • Видео 222
  • Просмотров 512 389
Ruby on Rails #167 Build a PWA
Let's turn an existing app into a PWA by adding a valid Webmanifest and Service Worker.
You can simply add the files to the /public folder, OR you can do it the Rails 8 way and add manifest.json and service-worker.js to ActionView!
Episode source code: github.com/yshmarov/insta2blog.com/commit/6bdcd957865ecaed5dc7802b5086ad98f6851ab0
Based on this blogpost: blog.corsego.com/rails-8-pwa
0:00 PWA on MacOS
2:38 Webmanifest
7:56 Service Worker
10:05 The Rails 8 Way
Просмотров: 561

Видео

Ruby on Rails #166 PWA (Progressive Web Apps) in Rails 8
Просмотров 1,1 тыс.21 час назад
Make your Rails website behave like an installable app by turning it into a PWA. All new Rails apps will have a webmanifest by default, meaning your app will be a Progressive Web App out of the box! In this episode we will explore how PWAs work. Based on this blogpost: blog.corsego.com/rails-8-pwa
Friendly S2E8 Radoslav Stankov does not need Hotwire
Просмотров 24814 дней назад
One more cool cat from BalkanRuby! This time we talk to Rado ex-producthunt, building his own product - AngryBuilding. He is the only developer and has a team of non-devs doing business stuff. He kindly reminds me that you don't always need "reactivity", and full-page reloads are good. Enough for many B2B cases! You can learn a lot from Rado about building businesses with Rails. His new startup...
Friendly S2E7 Nick Sutterer - Trailblazer daddy, ViewComponents grandpa, heart of the party
Просмотров 19121 день назад
Nick is one of the most fun exciting people to be around! He has a few superpowers: 1. Developing unique Ruby tools way ahead of their time He created Trailblazer as a better way to structure business logic in Rails apps than Services. Way ahead of DDD! github.com/trailblazer/trailblazer He created Cells that inspired ViewComponent github.com/trailblazer/cells 2. Presenting on stage. So far he ...
Friendly S2E6 Meet Balkan Ruby organiser Genadi Samokovarov 🇧🇬
Просмотров 14321 день назад
Since the first moment I met Genadi I felt “this guy is great to be around“! In this episode he talks about the 🇧🇬 ruby community, organising conferences, his current work and open source history. Find Genadi gsamokovarov.com/ Balkan Ruby balkanruby.com/ Join Sofia local ruby meetup rubybanitsa.com/
Friendly S2E5 Balkan Ruby! 👽 Irina Nazarova. Making $ on Dev tools 🤑🤑🤑
Просмотров 26921 день назад
This week we are visiting Balkan Ruby in Sofia, Bulgaria. We met a lot of people who impact our community. In this episode we discuss Sustainable Open Source with Irina Nazarova, CEO of very very @evil.martians balkanruby.com/
#165 Manage active sessions. Log out from another device remotely. Important security feature!
Просмотров 648Месяц назад
In some cases to enhance security of your application you will want to allow users to see all the devices/browsers they are logged in with. You would also provided a button to sign out of a device/browser. Here's how you can do it! Episode source code: github.com/corsego/165-security-manage-active-sessions/commit/028064768ecb033dc19d7f3179bb52d963a734f4 Based on this blogpost: blog.corsego.com/...
#164 The illegal loophole to scaffold Tables in Rails 7
Просмотров 1,6 тыс.Месяц назад
Since Rails 7 you can not scaffold tables in the index view any more. Instead you have a list of cards. Here's how you can bring back tables to your scaffolds. DHH hates this one simple trick! Episode source code: github.com/corsego/164-scaffold-erb-tables/commit/bbcd2d880824dfb838564b86024a8dd902028cf1 Based on this blogpost: blog.corsego.com/custom-scaffold-templates Resources: - www.reddit.c...
#163 Instant page loads with Turbo 8 prefetch (aka InstantClick)
Просмотров 971Месяц назад
Turbo 8 has been released! One of the core new features - hover-click preload acceleration (ala InstantClick). InstantClick makes an assumption about potential user behaviour: now whenever you hover on a link, it will fire a GET request to retrieve that page. So when you actually click on the link, it will load faster. Remarkable how effective it is for perceived performance. It can save hundre...
Friendly S2E4 Ufuk says there is definitely NO consipracy around RailsConf 2024 in Detroit!
Просмотров 1692 месяца назад
Audio version: www.friendly.show/2278525/14689994-why-detroit-meet-ufuk-the-secret-organizer-behind-rails-conf-2024 RailsConf is happening on 7-9 of May! And Ufuk is the lead organizer! He recently joined the Ruby Central board of directors. He is on the Shopify infrastructure team, working on making Ruby on Rails a better ecosystem 💪 We discuss: - What makes RailsConf 2024 special? - What is "...
Rails #162 Gem Ferrum - Generate PDF and PNG with Headless Chrome API. No Puppeteer, no NodeJS
Просмотров 8192 месяца назад
Thanks to URLBOX for sponsoring today's video! Convert URL to PNG/PDF with UrlBox: urlbox.com/screenshot-api?ref=sr Urlbox also helps to block Ads & Popups, Bypass Captchas, Auto-Accept Cookies Ferrum is Headless Chrome Ruby API. Ferrum lets you open a headless chrome browser and perform different actions: - visit web page - HTTP authenticate - find element by css/id - click link - fill in inpu...
Rails #161 Import ICS Calendar events with Gem iCalendar
Просмотров 3562 месяца назад
I love building calendars! ICS is the default format for a calendar file. Today we'll learn to read an ICS file and import it into our app. Recently 37signals released "Import ICS events" as a new feature in Hey Calendar. You can do it too! Episode source code: github.com/corsego/161-import-ics-calendar-events/commit/0e3704fc5728af60df6bc24f38062f46abfda4ba Based on this blogpost: blog.corsego....
Friendly S2E3 Meet SQLite Jesus, Stephen Margheim
Просмотров 2632 месяца назад
Steven is on a mission to make SQLite good enough for production. We talked about: - SQLite and Litestack - contributing to open source - being "the guy" in a niche, creating your own luck
Rails #160 Meta Tags. Open Graph, SEO, social sharing previews
Просмотров 5252 месяца назад
Rails #160 Meta Tags. Open Graph, SEO, social sharing previews
Rails #159 Access localhost anywhere with Ngrok
Просмотров 6403 месяца назад
Rails #159 Access localhost anywhere with Ngrok
Rails #158 Build a Calendar from zero. No external dependencies!
Просмотров 1,8 тыс.3 месяца назад
Rails #158 Build a Calendar from zero. No external dependencies!
Friendly S2E2 Amanda Perino. RailsWorld 2024. CFP open. How to become a speaker?
Просмотров 1923 месяца назад
Friendly S2E2 Amanda Perino. RailsWorld 2024. CFP open. How to become a speaker?
Friendly S2E1 Andy Croll - CTO at CoverageBook, Brighton Ruby, RailsConf
Просмотров 913 месяца назад
Friendly S2E1 Andy Croll - CTO at CoverageBook, Brighton Ruby, RailsConf
#155 Bonus: Is DocRaptor worth it? Puppeteer vs DocRaptor vs WeasyPrint
Просмотров 2973 месяца назад
#155 Bonus: Is DocRaptor worth it? Puppeteer vs DocRaptor vs WeasyPrint
Rails #157 Calendar Search with gem Pagy
Просмотров 6603 месяца назад
Rails #157 Calendar Search with gem Pagy
Friendly S1E10 Finale. 2023 summary, 2024 plans. What's coming to Rails 8?
Просмотров 1764 месяца назад
Friendly S1E10 Finale. 2023 summary, 2024 plans. What's coming to Rails 8?
Rails #156 Turbo 8 Morphing in real life
Просмотров 3,7 тыс.4 месяца назад
Rails #156 Turbo 8 Morphing in real life
Friendly S1E9 Mariusz Koziel - Ruby community in Poland, how to become CTO and CEO
Просмотров 2745 месяцев назад
Friendly S1E9 Mariusz Koziel - Ruby community in Poland, how to become CTO and CEO
#155 Generate, store, email PDF invoices. DocRaptor API, HTML to PDF, ActiveStorage, ActionMailer
Просмотров 9085 месяцев назад
#155 Generate, store, email PDF invoices. DocRaptor API, HTML to PDF, ActiveStorage, ActionMailer
Rails #154 Avo 3 upgrade
Просмотров 6855 месяцев назад
Rails #154 Avo 3 upgrade
Rails #153 Refactoring Hotwire Modals
Просмотров 1,6 тыс.5 месяцев назад
Rails #153 Refactoring Hotwire Modals
Ruby on Rails #152 Custom Turbo Streams. How to redirect from a form that is inside a turbo frame?
Просмотров 1,2 тыс.6 месяцев назад
Ruby on Rails #152 Custom Turbo Streams. How to redirect from a form that is inside a turbo frame?
Friendly E8 Andrea Rocca, Hotwire Cookbook, Rails UI, and flying foxes
Просмотров 1656 месяцев назад
Friendly E8 Andrea Rocca, Hotwire Cookbook, Rails UI, and flying foxes
Ruby on Rails #151 Advanced Hotwire modals
Просмотров 1,9 тыс.6 месяцев назад
Ruby on Rails #151 Advanced Hotwire modals
Ruby on Rails #150 Global Search
Просмотров 1,1 тыс.6 месяцев назад
Ruby on Rails #150 Global Search

Комментарии

  • @komradkookoo
    @komradkookoo День назад

    Thank you for this

  • @mikopiko
    @mikopiko День назад

    Cool

  • @BrianVoelker
    @BrianVoelker 5 дней назад

    You named the exactly reason why I created slim-select so long ago. I wanted to get off of jquery and no one else had a non jquery dropdown select library.

    • @SupeRails
      @SupeRails 5 дней назад

      wow Brian, so nice to see you here! 🥰🥰🥰 Thanks so much for your great work!

  • @juliakanzaki
    @juliakanzaki 5 дней назад

    thanks for the video, its reeeeally helpful

  • @sadiqmmm
    @sadiqmmm 6 дней назад

    This is amazing. Thank you for the hard work and research on pwa with Rails. Looking forward to more videos as the new updates come on the Rails 8.

  • @vinicioswentz
    @vinicioswentz 6 дней назад

    It creates different users for each provider, right? there's a way to not have this behavior?

    • @SupeRails
      @SupeRails 6 дней назад

      hi Vinicio! this is actually a great idea for a next video. I actually have this implemented in saas.corsego.com/ - you can try it there TLDR: user has_many :identities identity = User::Identity.find_by(provider: auth.provider, uid: auth.uid) user = User.find_by(email: auth.info.email)

  • @komradkookoo
    @komradkookoo 8 дней назад

    Thank you for this

  • @SupeRails
    @SupeRails 8 дней назад

    Follow up PRs: 1. Upgrade to Rails main and use it's built-in PWA Controller (github.com/yshmarov/insta2blog.com/commit/e96afcf0531850d239bac50872762b657b74f1d7) 2. Import images from assets, not /public folder (github.com/yshmarov/insta2blog.com/commit/0c8579ffcd160a77d4648548f014c1daa16b8d4c)

  • @hsxn_sports
    @hsxn_sports 8 дней назад

    Do you know if it is possible to add additional information in the form select search? For example first name, last name and email. <%= form.select :tag_ids, User.pluck(concat(:first_name, ' ', :last_name, '-', :email), :id), {}, {multiple: true, data: {controller: 'slim'}}%> I tried adding def full_name "#{first_name} + ' ' #{last_name}" end in the User model but I am getting unknow column full_name Thank you.

    • @SupeRails
      @SupeRails 8 дней назад

      Try “map”. Something like User.all.map { |u| [u.id, u.full_name] }

    • @hsxn_sports
      @hsxn_sports 8 дней назад

      @@SupeRails Thank you for the quick response. I tried <%= form.select :user_ids, User.all.map{|u| u.id, u.full_name}, {}, {multiple: true, data: {controller: 'slim'}}%> and I got a syntax error. syntax error, unexpected '}', expecting '.' or &. or :: or '['

    • @hsxn_sports
      @hsxn_sports 8 дней назад

      Sorry I found my silly error. <%= form.select :user_ids, User.all.map{|u| [u.full_name, u.id] }, {}, {multiple: true, data: {controller: 'slim'}}%>. Works great now. Thank you so much! Love your videos

    • @SupeRails
      @SupeRails 8 дней назад

      @@hsxn_sports maybe User.all.map { |u| [u.id, u.full_name] }

  • @ManWhoChoseFreedom
    @ManWhoChoseFreedom 9 дней назад

    Great content!

  • @rickbacker1
    @rickbacker1 9 дней назад

    Thank you for the video!

  • @tomasvalent3876
    @tomasvalent3876 9 дней назад

    PWA 💪

  • @mengyan3214
    @mengyan3214 9 дней назад

    Quite informative, thank you.

  • @odinapprentice
    @odinapprentice 11 дней назад

    I just found your page and gave this video a watch. You helped me so much, thank you!

  • @joseluismoreyrajr.7598
    @joseluismoreyrajr.7598 13 дней назад

    great video like always! I am currently trying to add pagination to a turbo frame that is update by a turbo stream that makes a call to an external API. The problem is doing this without a model, since I don't want to save this to a database (the external api makes calls to the MLS so lots of data is being sent). I am deciding between using the pagy js with stimulus or making my own stimulus controller and making API calls if the user presses next and cache so when the user presses previous it goes back and doesnt make another call (rate limits). Would be cool if you can make a video using pagy with js.

  • @softtech2295
    @softtech2295 14 дней назад

    It doesnt work during bundle install though.

  • @mycode0
    @mycode0 14 дней назад

    Rado is a gem, thank you for this talk

  • @mengyan3214
    @mengyan3214 15 дней назад

    Marvelous tutorial, it blows my mind. Thank you.

  • @mr.movies7910
    @mr.movies7910 15 дней назад

    I have completed the practice of video in the two days but i have learn a lot man. great

  • @cocoarecords
    @cocoarecords 16 дней назад

    Finally a rails channel🎉

  • @mengyan3214
    @mengyan3214 17 дней назад

    thank you, very informative.

  • @RichardWigley1
    @RichardWigley1 17 дней назад

    If we are using the Array type does this mean it's Postgres only?

  • @mr.movies7910
    @mr.movies7910 17 дней назад

    I have parctice all in 5 hours learn a lot from you man.

  • @andyc5630
    @andyc5630 18 дней назад

    Hey guys, I just listened to this episode. Are the videos available for your presentations from RailsSaas? I can't seem to find them.

    • @SupeRails
      @SupeRails 18 дней назад

      Hi Andy! It's been a year since the conference. I think @railssaas will never release the videos. Reason unknown. The camera crew looked very professional during the event. Maybe $omething went wrong...

    • @andyc5630
      @andyc5630 18 дней назад

      @@SupeRails oh that's a real shame, especially since they sound like they would've been very polished. I'm particularly interested in your (impromptu) talk on the questions you get asked most often. Any chance you have something similar up somewhere? Thanks for the quick reply!

  • @kostiantynfedorenko1704
    @kostiantynfedorenko1704 19 дней назад

    Героям слава) Дякую за туторіал

  • @SupeRails
    @SupeRails 21 день назад

    Adding Embedded Stripe Checkout is a very niche problem, but if you have it, this video should save you some time!

  • @andyaerials
    @andyaerials 23 дня назад

    do you normally code straight into the application.html? not through partials? cheers

  • @MaksymNenashev
    @MaksymNenashev 23 дня назад

    Thanks!

    • @SupeRails
      @SupeRails 21 день назад

      You are welcome Max!

  • @haroldpepete
    @haroldpepete 23 дня назад

    awesome video, it will be really helpful if after the subscription the user id was updated using a broadcast from the backend and the user wouldn't have to refresh manually

  • @rapfan353
    @rapfan353 23 дня назад

    How do you handle stripe coupons or discounts. Thank you for this video im building my first app with stripe in rails

    • @SupeRails
      @SupeRails 21 день назад

      Easy! Inside "Stripe::Checkout::Session.create" add this line: allow_promotion_codes: true,

  • @haroldpepete
    @haroldpepete 24 дня назад

    nice

  • @haroldpepete
    @haroldpepete 24 дня назад

    quite interesting, are you going to upload the entire session?

    • @SupeRails
      @SupeRails 23 дня назад

      The full talks were recorded by the @railssaas conference team. It's been a year since the conference. I think that, unfortunately, they will never be released.

  • @aldomarquez6560
    @aldomarquez6560 25 дней назад

    thanks for the tutorial, can you do a tutorial to use font awesome pro pls?

    • @SupeRails
      @SupeRails 23 дня назад

      Hi Aldo! I think that the only change in your codebase will be to add a script like <script src="kit.fontawesome.com/your-unique-id.js" crossorigin="anonymous"></script> and you will be able to use pro icons and upload your own to a "fontawesome kit"

  • @joseluismoreyrajr.7598
    @joseluismoreyrajr.7598 29 дней назад

    What keyboard do you use in this video? I love the sound. Also great video!

    • @SupeRails
      @SupeRails 23 дня назад

      oh its a regular external white apple keyboard

  • @et_matrix
    @et_matrix Месяц назад

    Thanks for the video. I asked members in Telegram Ruby on Rails group and no answer. But if you use rails for api only app those data should be stored in JWT table in my opinion

  • @ledockol
    @ledockol Месяц назад

    Ярослав, як завжди, все концетровано, дуже корисно. Лайк та у збережені) Додав би ще проміжну таблицю LoginSessions для збереження всіх сесій користувача. Це дозволило б моніторити, чи входив хтось в його аккаунт з чужого пристрою. Поточна реалізація просто видаляє стару сесію і ці дані не зберігаються. Можно паморочитися реалізацію дозволених користувачем пристроїв, з яких можно входити в його аккаунт. Дякую. Співчуваю за Чернігів!

  • @gauravrewaliya3269
    @gauravrewaliya3269 Месяц назад

    Great video👍😁 But i am thinking the best approach to save last time of that device is used So it become easy to delete too old session like what'sapp , telegram etc As there are lots of simple approach , but i want the effective apprach , as its not good to update db for every request Suggestions from anyone is appreciable

    • @SupeRails
      @SupeRails Месяц назад

      With my approach we read the db with each request to check if this session is valid (has not been logged out remotely); Writing to updated_at on each request is not perfect indeed. Alternatively you might have to do some Redis shenanigans 🤪 It's like here's an approach to see "users online" with timestamps: blog.corsego.com/set-user-status-online, and here's a Redis approach: blog.corsego.com/action-cable-broadcast-users-online

  • @mrpolarbear420
    @mrpolarbear420 Месяц назад

    Good video. Thanks for the resource!

  • @ternggio6563
    @ternggio6563 Месяц назад

    Awesome!

  • @yaroslavbozhak9107
    @yaroslavbozhak9107 Месяц назад

    Thanks for the new video. Great job.

    • @SupeRails
      @SupeRails Месяц назад

      Thank for watching Yaro!

  • @kerlq3713
    @kerlq3713 Месяц назад

    12:42 did it for me! Thank you very much

  • @jessicavillegas4654
    @jessicavillegas4654 Месяц назад

    Mil gracias!! Justo lo que necesitaba y explicado paso por paso!

  • @ravidhyani8881
    @ravidhyani8881 Месяц назад

    Can you share figma as well so that we can check table and screen simultaneously.

    • @SupeRails
      @SupeRails 23 дня назад

      Sorry, I can’t share the Figma file

  • @cmthimmaiah
    @cmthimmaiah Месяц назад

    Would be good to do a walkthru of how to receive emails from AWS / SES and use the ActionMailbox. Looking forward to that

  • @priyankamanna5878
    @priyankamanna5878 Месяц назад

    This is really a simplified explanation. Great one 😊

  • @lsampson1974
    @lsampson1974 Месяц назад

    I know this video is a year old, but I want to thank you anyway. You saved me a lot of time and frustration.

    • @SupeRails
      @SupeRails Месяц назад

      Hi! I’m glad you found this video useful☺️ I think it will be relevant for a few more years. Currently there is no better approach with rails/hotwire

  • @georgesimei
    @georgesimei Месяц назад

    First of all, thank you for the excellent videos; I'm learning so much from them! However, I have a question and would greatly appreciate your help. I've followed all the steps mentioned, but a question has arisen: If I need to add another modal to the same page, such as an additional form, is it possible to do this using the same turbo_frame in the application? Or do I need to code a separate turbo_frame_tag in the index for each modal, each with different IDs? Thanks for your attention.

    • @SupeRails
      @SupeRails 23 дня назад

      UI rule #1 - do not display more than one modal at a time on a page.

  • @brzdogz
    @brzdogz Месяц назад

    This saved me, after hours trying to figure out how to render an image on the email view, you've finally saved me with this tutorial! Ty :)