Yaroslav Shmarov
banner
yarotheslav.bsky.social
Yaroslav Shmarov
@yarotheslav.bsky.social
Learn Hotwire Native & Launch your Rails app on mobile ➡️ https://superails.com/playlists/turbo-native
Deployed my first app via fly.io !

The estimated cost of web service + postgres + object storage (AWS S3 via @tigrisdata.com ) is ~$6/mo.

Great CLI experience: "fly deploy" feels as good as "git push heroku master"
November 29, 2025 at 11:24 AM
www.rubyevents.org is my new favorite website to discover ruby conferences

💟 @adrienpoly.com @marcoroth.dev
November 29, 2025 at 9:03 AM
moneygun.fly.dev - added a playground for my Rails SaaS boilerplate!

Try creating an organization & subscribing to the paid plan to access the paywalled page.
November 28, 2025 at 6:55 PM
Rails tip: Use draw to break your routes into logical, modular files.
November 28, 2025 at 6:02 PM
‼️Right now, go and uncomment this line in app/jobs/application_job.rb
November 25, 2025 at 9:54 AM
good reminder that I ought to disable it globally. many experiences in the app are broken if prefetch is on
November 25, 2025 at 9:12 AM
I do not like gem "rubocop-rails-omakase".
I am not a fan of "gem "standard".

I prefer sticking as much as possible to rubocop defaults.
Rubocop teaches me new, better syntax.

It takes max 30 minutes to configure cops from 0 based on your preferences & you learn a lot while doing so.
November 24, 2025 at 11:17 AM
It's been many years since I last used gem "simple_form", but I kinda miss it.

You define all the input type styling in a simple_form.rb file, and with minimal markup you can render consistently styled forms
November 23, 2025 at 11:37 AM
I started using localtunnel today instead of ngrok.

For a free tool, It's really good.

theboroer.github.io/localtunnel-...
November 12, 2025 at 11:06 PM
TIL Ireland is in the EU, but not in Schengen
October 4, 2025 at 6:35 PM
I've recently implemented vector search in a Rails app.

It's great for searching by meaning, not keywords.

See 🖼️ how I search:
- "retreat", and the 1st (closest) result is a weekend trip
- "tshirt" -> tee
- "coach" -> "training sessions"

Super easy to implement!
October 1, 2025 at 10:21 AM
Pagy (the fastest ruby pagination gem) is one of my favorite gems that I have in all my apps.
It just received a massive update: ddnexus.github.io/pagy-pre/

Do You use pagy?
September 11, 2025 at 3:29 PM
September 9, 2025 at 8:49 PM
DOWNLOAD CAMPFIRE FOR FREE:
github.com/basecamp/onc...
September 4, 2025 at 8:33 AM
I love when brands make it easy to work with their brand assets!
August 24, 2025 at 4:16 PM
Recording a good one-shot screencast can take a few takes.

v1 - 18 minutes, some hiccups
v2 - better
v2 - 12 minutes, same info, smooth fast delivery

DaisyUI video coming soon!
August 24, 2025 at 11:40 AM
I like how Linear uses bottom of sidebar for announcements
August 21, 2025 at 5:14 PM
Structure of a sales page:

- Navbar with CTA (Call to action)
- Hero image
- Features
- Testimonials
- Pricing, CTA
- FAQ
- Final CTA
- Footer
July 21, 2025 at 9:25 PM
🚨 If you don't watch this, AI will take your job 🚨

www.rubyevents.org/talks/stayin...
June 26, 2025 at 4:00 PM
damn, bluesky did not process the GIF that I tried to upload.

Like this on mobile:
June 19, 2025 at 10:18 AM
What a dope domain name!
June 16, 2025 at 12:12 PM
🚀 Big update: Moneygun SaaS boilerplate v1.1

Before: Only Private orgs (for invite-only B2B apps)

Now: Added Restricted (apply to join) & Public (anyone can join) orgs 🎉

You can now build not just B2B tools—but also communities like Discord, Skool, Circle

The release: github.com/yshmarov/mon...
June 13, 2025 at 1:44 PM
Responsive tables that turn into cards on mobile.
Love it or hate it?
June 12, 2025 at 12:57 PM
Interesting problem:

-> I have authenticated layout (application)
-> and unauthenticated layout (static)
-> application has overflow-hidden
-> logout, head is cached
-> static layout not scrollable until reload

Solution:
<meta name="turbo-visit-control" content="reload">
June 9, 2025 at 10:24 AM
What Admin tooling is my app missing?
June 7, 2025 at 12:09 PM