A walkthrough of the new redesign of Web-Crunch.com. Follow along as I discuss the transition from the old design to the new one and the steps along the way.
Hi, My name is Andy Leverenz and I work as a Product Designer at Dribbble. For fun I design, code, and write. Check out my blog called Web-Crunch https://web-crunch.com where I publish design and development tutorials with the occasional vlog.
========================
▶️ You are watching: PART 2 of 6
Download the source code:
⚙️ https://github.com/justalever/book_library
========================
Welcome to my eleventh Let's Build series featuring Ruby on Rails. This installment, once again, focuses on accepting payments using Ruby on Rails as a web application framework. We partner Ruby on Rails with Stripe to create a subscription based SaaS model for a book library application.
What's new in this build?
========================
* Rails 5.2 makes an appearance
* We use ActiveStorage which comes new with Rails 5.2. No longer do we require third-party gems like PaperClip or Carrierwave.
* New encrypted secrets which make managing any environment variables or keys way easier. You can commit these to version control without fear thanks to the encrypted quality
* Stripe Billing - Stripe recently released a new model around their subscription products. Within Stripe Billing you can define overlying products which have associated plans. It's a nicer way to bundle whatever it is you sell but still be able to sell things in different manners i.e. Flat rates, Multiple Plans, Per seat, Usage-based, and Flat rate + overage.
The Book Library application
=========================
The application is a simple book application that allows a user to add and remove books from their library. These books can be downloaded for reading once a user is subscribed. Accessing a library is only possible if a user is subscribed. This app differs than previous apps where a user must pay before making an account.
A user is presented with buttons for adding a book to their library. As you can guess, to do this action a user first needs an account. Upon clicking the "add to library" button a public facing user (someone with no account) is redirected to a signup page of which we implement using the Devise gem.
A nice callback function from Devise allows us to redirect a user upon successfully signing up. In this case, we redirect a user to a pricing page which features three plans to choose from. Each plan has its own parameters associated with it. Upon clicking the "subscribe" button on any of the tiers, the user is redirected to a payment page carrying over the necessary parameters to hook into Stripe with.
What seems like a simple app carries some logic and weight to cover all our tracks. The application is far from complete but you can, however, extend this to be much more however you like.
I ran out of time but one obvious area to extend this app is to save what plan a user has subscribed to. This can be done at the time they create a subscription. From there you can query different places in your app to show and hide specific features based on their plan type.
========================
??Help me keep going. Become a patreon or buy me a coffee:
https://www.patreon.com/webcrunch
☕️ https://www.buymeacoffee.com/webcrunch
? Previously published at:
https://web-crunch.com/lets-build-ruby-on-rails-book-library-stripe-subscription-payments
? Check out the blog:
https://web-crunch.com
? ? Check out my agency:
https://coupleofcreatives.com
? Check out my personal site:
https://justalever.com
? Links:
Weekly Newsletter: https://web-crunch.com/subscribe
Twitter: https://twitter.com/webcrunchblog
Twitter(Personal Account): https://twitter.com/justalever
Facebook: https://facebook.com/webcrunchblog
Dribbble: https://dribbble.com/justalever
Github: https://github.com/justalever
Medium: https://medium.com/the-web-crunch-publication
?Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/books/luxd
? Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/books/ptt
? Need awesome web hosting? Check out cloudways. They allow me to use a variety of hosting providers and build apps with ease:
http://bit.ly/webcrunchhosting
? Need more advanced hosting for Rails, PHP, Node, or other projects? Digital Ocean has you covered.
https://m.do.co/c/ee243ee15648
...
https://www.youtube.com/watch?v=JG1whaC_8i8
In Ruby on Rails, naming models is more than just a convention. It's about clarity, efficiency, and ensuring your app is easy to manage. Here's a guide to help you name your models like the pros.
P.S. I created a handy guide at https://web-crunch.com/naming-models. Bookmark it if you need a refresher every once in a while!
Timestamps:
00:00 - Intro and find the new guide
01:42 - Singular and Capitalized
02:53 - Keep it descriptive and clear
03:28 - Organize with namespaces
03:59 - Intuitive Associations
04:22 - Acronyms and Initialisms
04:48 - Avoid Reserved Words
05:02 - Context-Specific Naming
05:22 - Avoid Ambiguity
06:11 - Composite Names
06:47 - Polymorphic versatility
07:43 - Single Table Inheritance
08:45 - Wrapping up
View the guide here: https://web-crunch.com/naming-models
Read the blog post here: https://web-crunch.com/posts/best-practices-for-naming-models-in-ruby-on-rails
======
? I'm Andy Leverenz, a passionate product designer and developer. I love creating and sharing my knowledge through design, coding, and writing. Join me on my journey by checking out my blog, Web-Crunch (https://web-crunch.com), where I publish tutorials, articles, and the occasional vlog about design and development.
? Never miss an update! Click here to subscribe: https://www.youtube.com/user/webcrunch?sub_confirmation=1
? Read the written version:
https://web-crunch.com/posts/best-practices-for-naming-models-in-ruby-on-rails
? New to Ruby on Rails? Enroll in my course HELLO RAILS:
https://hellorails.io
? The Blog (my source of truth): https://web-crunch.com
Additional Links:
? Bring life to Rails projects with Rails UI: https://railsui.com.
?? Hire me: Visit: https://railsui.com/custom
? https://twitter.com/webcrunchblog.
⚙️ https://github.com/justalever.
P.S. This stuff takes a long time to make but I love to do it. To help me keep at it consider supporting me. If not monetarily, then subscribe to the channel or share it with someone!
✨ https://github.com/sponsors/justalever
☕️ https://www.buymeacoffee.com/webcrunch
...
https://www.youtube.com/watch?v=I3qyHJUNLn8
Hi, My name is Andy Leverenz and I work as a Product Designer at Dribbble. For fun I design, code, and write. Check out my blog called Web-Crunch https://web-crunch.com where I publish design and development tutorials with the occasional vlog.
========================
▶️ You are watching: PART 6 of 6
Download the source code:
⚙️ https://github.com/justalever/book_library
========================
Welcome to my eleventh Let's Build series featuring Ruby on Rails. This installment, once again, focuses on accepting payments using Ruby on Rails as a web application framework. We partner Ruby on Rails with Stripe to create a subscription based SaaS model for a book library application.
What's new in this build?
========================
* Rails 5.2 makes an appearance
* We use ActiveStorage which comes new with Rails 5.2. No longer do we require third-party gems like PaperClip or Carrierwave.
* New encrypted secrets which make managing any environment variables or keys way easier. You can commit these to version control without fear thanks to the encrypted quality
* Stripe Billing - Stripe recently released a new model around their subscription products. Within Stripe Billing you can define overlying products which have associated plans. It's a nicer way to bundle whatever it is you sell but still be able to sell things in different manners i.e. Flat rates, Multiple Plans, Per seat, Usage-based, and Flat rate + overage.
The Book Library application
=========================
The application is a simple book application that allows a user to add and remove books from their library. These books can be downloaded for reading once a user is subscribed. Accessing a library is only possible if a user is subscribed. This app differs than previous apps where a user must pay before making an account.
A user is presented with buttons for adding a book to their library. As you can guess, to do this action a user first needs an account. Upon clicking the "add to library" button a public facing user (someone with no account) is redirected to a signup page of which we implement using the Devise gem.
A nice callback function from Devise allows us to redirect a user upon successfully signing up. In this case, we redirect a user to a pricing page which features three plans to choose from. Each plan has its own parameters associated with it. Upon clicking the "subscribe" button on any of the tiers, the user is redirected to a payment page carrying over the necessary parameters to hook into Stripe with.
What seems like a simple app carries some logic and weight to cover all our tracks. The application is far from complete but you can, however, extend this to be much more however you like.
I ran out of time but one obvious area to extend this app is to save what plan a user has subscribed to. This can be done at the time they create a subscription. From there you can query different places in your app to show and hide specific features based on their plan type.
========================
??Help me keep going. Become a patreon or buy me a coffee:
https://www.patreon.com/webcrunch
☕️ https://www.buymeacoffee.com/webcrunch
? Previously published at:
https://web-crunch.com/lets-build-ruby-on-rails-book-library-stripe-subscription-payments
? Check out the blog:
https://web-crunch.com
? ? Check out my agency:
https://coupleofcreatives.com
? Check out my personal site:
https://justalever.com
? Links:
Weekly Newsletter: https://web-crunch.com/subscribe
Twitter: https://twitter.com/webcrunchblog
Twitter(Personal Account): https://twitter.com/justalever
Facebook: https://facebook.com/webcrunchblog
Dribbble: https://dribbble.com/justalever
Github: https://github.com/justalever
Medium: https://medium.com/the-web-crunch-publication
?Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/books/luxd
? Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/books/ptt
? Need awesome web hosting? Check out cloudways. They allow me to use a variety of hosting providers and build apps with ease:
http://bit.ly/webcrunchhosting
? Need more advanced hosting for Rails, PHP, Node, or other projects? Digital Ocean has you covered.
https://m.do.co/c/ee243ee15648
...
https://www.youtube.com/watch?v=cSKEFco7HdA
Hi, My name is Andy Leverenz. I design, code, and am an author of things. Check out my agency called Couple of Creatives https://coupleofcreatives.com and my blog Web-Crunch https://web-crunch.com??
======
In part 24 of my Let's Build series I walk you through the initial phases of coding the About page design. We leave the home page for now but will revisit again when it comes time to make the design more responsive.
### The About Page Design
The designs you see in this series started from a style tile. The final style tile actually did not match the design but it did allow me to process the direction I wanted to head. In our own specific case, I am playing both the designer and developer role. If I were to hand off this design to a developer or team of developers I would be sure to revisit my style tile and update the designs and it to reflect. This, in the end, keeps both the code and the design consistent thus producing a richer experience throughout. This is especially true for both the performance side and the user experience side.
### Style Tiles / Atomic Design
I firmly believe modern designers should be versed in how websites are built from the ground up. You don't have to know how to code per say but you do need to understand the benefits of writing DRY code that is both semantic and efficient in terms of performance. An example here would be to give elements certain namespaces to avoid conflicts as websites and applications scale over time.
Enter atomic design and you are already setting yourself up for better success. Even before designing higher fidelity concepts you should start by creating smaller components or modules. This helps capture the look and feel of the website/app as well as define elements developers can begin working from at scale.
Once you have a solid atomic approach will you be able to start piece those components into higher fidelity designs.
? Previously published at:
https://web-crunch.com/lets-build-consultancy-website-part-24/
? Check out the blog:
https://web-crunch.com
? ? Check out my agency:
https://coupleofcreatives.com
? Links:
Weekly Newsletter: https://web-crunch.com/subscribe
Twitter: https://twitter.com/webcrunchblog
Twitter(Personal Account): https://twitter.com/justalever
Facebook: https://facebook.com/webcrunchblog
Dribbble: https://dribbble.com/justalever
Github: https://github.com/justalever
Medium: https://medium.com/the-web-crunch-publication
?Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/books/luxd
? Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/books/ptt
?Recommended Stuff I Use to Shoot Video:
Canon EOS Rebel SL1 - http://amzn.to/2m3EZDH
Linco Lighting Set - http://amzn.to/2mF8Shs
Logitech HD Pro Webcam C920 - http://amzn.to/2mpqzBk
Rode NT-USB Condenser Microphone - http://amzn.to/2mFhaG9
? Need awesome web hosting? Check out cloudways. They allow me to use a variety of hosting providers and build apps with ease:
http://bit.ly/webcrunchhosting
...
https://www.youtube.com/watch?v=iyW03LymzEk
Hi, My name is Andy Leverenz and I work as a product designer and developer. For fun, I design, code, and write. Check out my blog called Web-Crunch https://web-crunch.com where I publish design and development tutorials with the occasional vlog.
====================
In part 10 of my Let's build for Ruby and Rails developers series I begin adding new job details fields on our new job form.
Much of the work in this part is foundational to get the necessary data from a given employer to the app itself. We'll add fields related to the job in this part and continue adding more fields related to the company in part 11.
This entire form is built with Vue.js which I'll use AJAX to push new data to the Ruby on Rails app behind the scenes.
View the full series: https://web-crunch.com/collections/lets-build-for-ruby-and-rails-developers
====================
☕️ Keep me awake. Buy me a coffee
https://www.buymeacoffee.com/webcrunch
? One-Click Subscribe:
https://www.youtube.com/user/webcrunchblog?sub_confirmation=1
? Previously published at:
https://web-crunch.com/lets-build-for-ruby-and-rails-developers-part-10
? Latest course: HELLO RAILS
https://hellorails.io
? Check out the blog:
https://web-crunch.com
? Check out my personal site:
https://justalever.com
? Links:
Weekly Newsletter: https://digest.web-crunch.com/
Twitter: https://twitter.com/webcrunchblog
Github: https://github.com/justalever
?Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/products/luxd
? Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/proucts/ptt
? Ruby on Rails devs, Try HatchBox.io. You'll save upwards of 50% compared to Heroku. I use it and love it!
https://hatchbox.io/?via=andy
? Need awesome web hosting? Check out cloudways. They allow me to use a variety of hosting providers and build apps with ease:
http://bit.ly/webcrunchhosting
? Need more advanced hosting for Rails, PHP, Node, or other projects? Digital Ocean has you covered.
https://m.do.co/c/ee243ee15648
...
https://www.youtube.com/watch?v=tPx9XDExDV4
Inspired by Jorge Manrubia’s talk from Railsworld (https://www.youtube.com/watch?v=m97UsXa6HFg&t=4s) I wanted to try out Morphing which is coming to Turbo 8 very soon. This is a really great new feature to Ruby on rails that I'm excited to use.
On October 9th, 2023 Jorge published a blog post (https://dev.37signals.com/a-happier-happy-path-in-turbo-with-morphing/) that was a precursor to the talk. I recommend giving it a read.
The gist of the blog post and talk is that Turbo frames and streams are useful but often cumbersome to integrate since they are highly focused containers of logic.
They won’t be going away but might be more of a _special-use_ tool coming up with the introduction of morphing which could be a more convenient and useful “default” much like the standard full-page reloads of historical Rails apps.
### Discovering the problem
The Basecamp team has been working on integrating a calendar into their HEY product. In building the new feature, they quickly spotted the constraints of turbo frames and streams. Having to broadcast and update many items on a given page is problematic and overly complex, so they looked for a better approach, one much closer to the default Rails full-page reload conventions.
## What is morphing?
No, this doesn’t relate to Power Rangers, though one could wish!
Morphing is the process of merging one DOM into another without too many side effects. It’s not necessarily natural but the perception our eyes see makes it feel as such.
Morphing isn’t new, but it is to Turbo 8. The Basecamp team chose idiomorph (https://github.com/bigskysoftware/idiomorph) as a library to help with the new features. It's a JavaScript library for morphing from one DOM tree to another.
**The TL;DR;**
Morphing provides smoother updates everywhere rather than selective updates like turbo streams and turbo frames.
? Putting it into practice: https://web-crunch.com/posts/turbo-morphing-ruby-on-rails
⚙️ Source code: https://github.com/justalever/blogmorphing
Timestamps:
00:00 - Intro and inspiration
01:00 - Why Morphing is necessary for the Basecamp team
03:12 - Create a new app
04:09 - Add Tailwind CSS Rails gem
04:17 - Run tailwindcss-rails installer
04:45 - Boot and preview app locally
05:05 - Install beta versions of Turbo
06:23 - Scaffold out Post and User models
07:39 - Create new user using the Rails console
08:37 - Setup modeling
08:50 - Update posts index and show views and routes
10:38 - Add morph meta tags to the application layout
12:30 - Add broadcasts_refreshes to post model
12:46 - Stream updates for show view
13:29 - Streaming updates to posts as a collection
15:46 - Previewing our work and seeing morphing in action
======
? I'm Andy Leverenz, a passionate product designer and developer. I love creating and sharing my knowledge through design, coding, and writing. Join me on my journey by checking out my blog, Web-Crunch (https://web-crunch.com), where I publish tutorials, articles, and the occasional vlog about design and development.
? Never miss an update! Click here to subscribe: https://www.youtube.com/user/webcrunch?sub_confirmation=1
? Read the written version:
https://web-crunch.com/posts/turbo-morphing-ruby-on-rails
? New to Ruby on Rails? Enroll in my course HELLO RAILS:
https://hellorails.io
? The Blog (my source of truth): https://web-crunch.com
Additional Links:
? Bring life to Rails projects with Rails UI: https://railsui.com.
?? Hire me: Visit: https://railsui.com/custom
? https://twitter.com/webcrunchblog.
⚙️ https://github.com/justalever.
P.S. This stuff takes a long time to make but I love to do it. To help me keep at it consider supporting me. If not monetarily, then subscribe to the channel or share it with someone!
✨ https://github.com/sponsors/justalever
☕️ https://www.buymeacoffee.com/webcrunch
...
https://www.youtube.com/watch?v=wURcezOECD0
Hi, My name is Andy Leverenz. I design, code, and am an author of things. Check out my agency called Couple of Creatives (https://coupleofcreatives.com) and my blog Web-Crunch (https://web-crunch.com)??
=====
In a given week I make use of many design apps including Affinity Designer, Affinity Photo, Adobe Photoshop, Adobe Illustrator, and Sketch.
Chances are if you're reading this you might be asking yourself "Why would you do such a thing, Andy?"
Well, my not so easy answer is because I have to.
My choice in an application for design work varies based on the work to be performed. It also depends on deliverables.
For instance, Sketch is a Mac only application. I can't just send a Sketch file to a developer or product team in hopes they too have Macs. If they do then that's awesome but sometimes (pretty often for me) they don't.
How to fix this issue? Sadly, but also happily, I adapt to my client's needs and use all of the design apps necessary. If you work a lot on a contract basis you probably work with a variety of people. This is both exciting an challenging as people come from all walks of life. Many are experienced with tech whereas others haven't touched a computer in their life.
This video is an open discussion about modern design applications and how I personally make use of them in my workflow. As time goes on I'm sure new applications will ship and/or evolve into something more and my opinions will change. My hope is to adapt to those evolutionary periods and scale my experience as a designer.
What applications do you make the most use of and why? I'd love to hear about it in the comments.
Originally published at:
https://web-crunch.com/design-apps/
Check out the blog:
https://web-crunch.com
Check out my agency:
https://coupleofcreatives.com
Links:
Twitter: https://twitter.com/webcrunchblog
Twitter(Personal Account): https://twitter.com/justalever
Facebook: https://facebook.com/webcrunchblog
Dribbble: https://dribbble.com/justalever
Github: https://github.com/justalever
Check out my book UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/books/luxd
Check out my book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/books/ptt
...
https://www.youtube.com/watch?v=xA0mBCovSbw
Hi, My name is Andy Leverenz and I work as a product designer and developer. For fun, I design, code, and write. Check out my blog called Web-Crunch https://web-crunch.com where I publish design and development tutorials with the occasional vlog.
====================
Callbacks are methods that get called at certain moments of an object's life cycle. We can use callbacks as a means to manipulate objects further with built-in functionality that Ruby on Rails ships with.
This guide is an overview of Active Record Callbacks and how they can enhance your Ruby on Rails app with seemingly little effort.
To learn even more about Active Record Callbacks I recommend you visit and review the documentation around it.
Continue reading: https://web-crunch.com/posts/understanding-active-record-callbacks
====================
? One-Click Subscribe:
https://www.youtube.com/user/webcrunchblog?sub_confirmation=1
?? Latest course: HELLO RAILS
https://hellorails.io
? Previously published at:
https://web-crunch.com/posts/understanding-active-record-callbacks
? Check out the blog:
https://web-crunch.com
? Check out my personal site:
https://justalever.com
? Links:
Weekly Newsletter: https://digest.web-crunch.com
Twitter: https://twitter.com/webcrunchblog
Twitter(Personal Account): https://twitter.com/justalever
Facebook: https://facebook.com/webcrunchblog
Dribbble: https://dribbble.com/justalever
Github: https://github.com/justalever
?Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/products/luxd
? Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/proucts/ptt
? Need awesome web hosting? Check out cloudways. They allow me to use a variety of hosting providers and build apps with ease:
http://bit.ly/webcrunchhosting
? Need more advanced hosting for Rails, PHP, Node, or other projects? Digital Ocean has you covered.
https://m.do.co/c/ee243ee15648
? Ruby on Rails devs, Try HatchBox.io. You'll save upwards of 50% compared to Heroku. I use it and love it!
https://hatchbox.io/?via=andy
☕️ Keep me awake. Buy me a coffee
https://www.buymeacoffee.com/webcrunch
...
https://www.youtube.com/watch?v=1-31AlGv96Y
Welcome to part 15 of my Let's Build for Ruby and Rails developers series. In this part I'll continue building the checkout experience on our multi-step job form built with Ruby on Rails on the back end and Vue.js on the front end.
We'll start to wrap up the form by integrating Stripe into the checkout experience and establishing some pricing patterns. My plan is to enable some upsells during the construction of a job as well so look for that in upcoming parts. We're narrowing in on this massive form endeavor and I'm excited to get a prototype built and ready to roll. I think after this phase I'll keep cranking on the design of the app a bit as well as tackle some transactional emails for those that do post a job.
We need to think about the expiration of a job since it should expire after a set period of time in my opinion. Should this be a one-time fee or should I enabled subscriptions by default so that when you post a job it's essentially setting up a new subscription with Stripe and billing monthly until the job either expires or is canceled by the employer. All these decisions still need to be made but I feel I'm laying a good foundation for making that process easier for the end-user who is posting the job, to begin with. I'm excited to wrap up the job board soon so we can tackle more of the community and profile features. My short term goal is to get an MVP of the job board live on railsdevs.com and then keep adding features as I go.
Thanks for your attention so far if you've been following along. My goal is to be as transparent as I can with this. Any feedback, pointers, or ideas for features are welcomed!
======
Hi, My name is Andy Leverenz and I work as a product designer and developer. For fun, I design, code, and write. Check out my blog called Web-Crunch https://web-crunch.com where I publish design and development tutorials with the occasional vlog.
♥️ Sponsor me on GitHub
https://github.com/sponsors/justalever
☕️ Keep me awake. Buy me a coffee
https://www.buymeacoffee.com/webcrunch
? One-Click Subscribe:
https://www.youtube.com/user/webcrunchblog?sub_confirmation=1
? Previously published at:
https://web-crunch.com/posts/lets-build-for-ruby-and-rails-developers-part-15
? Latest Course: HELLO HTML & CSS (coming soon)?
https://hellohtmlcss.com
?Ruby on Rails Course: HELLO RAILS
https://hellorails.io
? Check out the blog:
https://web-crunch.com
? Check out my personal site:
https://justalever.com
? Links:
Weekly Newsletter: https://digest.web-crunch.com/
Twitter: https://twitter.com/webcrunchblog
Github: https://github.com/justalever
?Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/products/luxd
? Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/products/ptt
...
https://www.youtube.com/watch?v=0LlqrBnoe1s