<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: nicho1991</title>
    <description>The latest articles on Forem by nicho1991 (@nicho1991).</description>
    <link>https://forem.com/nicho1991</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F860503%2Fd710ebc0-775c-4817-93ac-7361625da6fd.jpeg</url>
      <title>Forem: nicho1991</title>
      <link>https://forem.com/nicho1991</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nicho1991"/>
    <language>en</language>
    <item>
      <title>Why I Built a Game Where You Pay to Exist</title>
      <dc:creator>nicho1991</dc:creator>
      <pubDate>Fri, 18 Apr 2025 19:05:20 +0000</pubDate>
      <link>https://forem.com/nicho1991/why-i-built-a-game-where-you-pay-to-exist-5c5h</link>
      <guid>https://forem.com/nicho1991/why-i-built-a-game-where-you-pay-to-exist-5c5h</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;We’re surrounded by gamification.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Steps walked. Tasks checked. Duolingo owls. Productivity streaks. Fitness rings.&lt;/p&gt;

&lt;p&gt;So I built the dumbest one I could think of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A leaderboard where you pay daily to stay alive.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No rewards. No second chances. If you miss a day, you die. That’s it.&lt;br&gt;&lt;br&gt;
You get moved to a public &lt;strong&gt;RIP Wall&lt;/strong&gt;. Everyone can see you didn’t make it.&lt;/p&gt;

&lt;p&gt;It’s called &lt;a href="https://paytostay.app" rel="noopener noreferrer"&gt;&lt;strong&gt;PayToStay&lt;/strong&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
And yes, it’s real.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Why?
&lt;/h2&gt;

&lt;p&gt;Part of it was the absurdity.&lt;/p&gt;

&lt;p&gt;I wanted to parody the obsession with streaks, dark UX, and the meaningless pressure of being “active” online.&lt;/p&gt;

&lt;p&gt;But the deeper reason?&lt;/p&gt;

&lt;p&gt;I wanted to learn how to take a product &lt;strong&gt;from start to finish&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That meant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building with the &lt;strong&gt;latest Rails tech stack&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Learning how to ship fast, mobile-friendly layouts&lt;/li&gt;
&lt;li&gt;Setting up proper &lt;strong&gt;SEO&lt;/strong&gt;, performance tuning, and hosting&lt;/li&gt;
&lt;li&gt;Gaining confidence in &lt;strong&gt;paid features&lt;/strong&gt; like Stripe integration&lt;/li&gt;
&lt;li&gt;Running something in &lt;strong&gt;production over time&lt;/strong&gt; — and keeping it alive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PayToStay is minimalist on the surface, but behind it is a full-stack learning ground disguised as an existential joke.&lt;/p&gt;

&lt;p&gt;Sometimes the best way to learn is to build something weird — and see if it survives.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔨 How It Works
&lt;/h2&gt;

&lt;p&gt;You choose a username.&lt;br&gt;&lt;br&gt;
You pay to summon yourself into existence.&lt;br&gt;&lt;br&gt;
And every day, your existence is extended — or it isn’t.&lt;/p&gt;

&lt;p&gt;Payments are available in &lt;strong&gt;bundles&lt;/strong&gt; (7, 14, 30 days).&lt;br&gt;&lt;br&gt;
But here’s the catch: &lt;strong&gt;the longer you pay for, the more expensive each day becomes&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No discounts. Just escalation.&lt;br&gt;&lt;br&gt;
Absurdity by design.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everyone else can see your streak.&lt;br&gt;&lt;br&gt;
The top survivors are honored (mocked?) on the leaderboard.&lt;br&gt;&lt;br&gt;
The dead? Remembered forever on the RIP wall.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧱 Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ruby on Rails 8
&lt;/li&gt;
&lt;li&gt;Stripe (live mode)
&lt;/li&gt;
&lt;li&gt;Bootstrap 5 (dark mode)
&lt;/li&gt;
&lt;li&gt;Cronjob executioner 💀
&lt;/li&gt;
&lt;li&gt;No frontend frameworks. Just speed and existential pressure.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 What's Next?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;PayToStay&lt;/strong&gt; will remain minimal and pure.&lt;br&gt;&lt;br&gt;
It’s meant to feel like a joke, a ritual, and a little bit of digital art.&lt;/p&gt;

&lt;p&gt;But I’m already working on a second project — a much stranger, more expansive game that draws from this one.&lt;/p&gt;

&lt;p&gt;In that game, PayToStay becomes a kind of source. A tether. A heartbeat.&lt;/p&gt;

&lt;p&gt;The longer you survive here, the more power you feed… something else.&lt;/p&gt;

&lt;p&gt;That’s all I’ll say for now.&lt;/p&gt;




&lt;h2&gt;
  
  
  💀 Join In
&lt;/h2&gt;

&lt;p&gt;If you’re into weird web projects, minimalist UX, or existentially gamified nonsense:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://paytostay.app" rel="noopener noreferrer"&gt;&lt;strong&gt;paytostay.app&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll either survive.&lt;br&gt;&lt;br&gt;
Or you won’t.&lt;br&gt;&lt;br&gt;
Either way, the wall is waiting.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>sideprojects</category>
      <category>gamedev</category>
      <category>humor</category>
    </item>
    <item>
      <title>How to - Rails turbo</title>
      <dc:creator>nicho1991</dc:creator>
      <pubDate>Tue, 10 May 2022 19:24:55 +0000</pubDate>
      <link>https://forem.com/nicho1991/how-to-rails-turbo-mn8</link>
      <guid>https://forem.com/nicho1991/how-to-rails-turbo-mn8</guid>
      <description>&lt;h2&gt;
  
  
  Why turbo
&lt;/h2&gt;

&lt;p&gt;NO JS ?!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P8ZwNC10--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozbnpwbn855l42red828.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P8ZwNC10--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozbnpwbn855l42red828.gif" alt="Image description" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When your application needs to be more 'dynamic' than the simple old school 1 request 1 view, you would typically use javascript, or a complete javascript framework like React to turn the page into a Single Page Application, &lt;em&gt;however&lt;/em&gt; this is cumbersome, especially in the rails spirit of the ability to maintain the stack as one developer.&lt;/p&gt;

&lt;p&gt;Turbo reduces the requirements for javascript in your rails application, and makes it more like a single page application ( although, this is by far not a replacement for that ) &lt;/p&gt;

&lt;p&gt;This a quick 'how to' run and use turbo in a rails application&lt;br&gt;
How to use turbo on rails, credit goes to &lt;a href="https://hotwired.dev/"&gt;https://hotwired.dev/&lt;/a&gt;, you can also checkout &lt;a href="https://turbo.hotwired.dev/handbook/introduction"&gt;https://turbo.hotwired.dev/handbook/introduction&lt;/a&gt; for the documentation on turbo&lt;/p&gt;
&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Minimum rails 6 app ( it is installed automatically on a rails 7 app ), to install on rails 6 refer to &lt;a href="https://github.com/hotwired/turbo-rails#:%7E:text=Add%20the%20turbo,Turbo%20Stream%20broadcasting"&gt;https://github.com/hotwired/turbo-rails#:~:text=Add%20the%20turbo,Turbo%20Stream%20broadcasting&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step by step process from scratch in a rails 7 app.
&lt;/h2&gt;

&lt;p&gt;Prerequisites&lt;br&gt;
&lt;code&gt;rails -v                                                                                        &lt;br&gt;
Rails 7.0.2.4&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
and&lt;br&gt;
&lt;code&gt;ruby -v                                                                                         &lt;br&gt;
ruby 3.0.0p0&lt;/code&gt;&lt;br&gt;
Otherwise refer to &lt;a href="https://guides.rubyonrails.org/getting_started.html"&gt;https://guides.rubyonrails.org/getting_started.html&lt;/a&gt; for getting set up with rails on your machine&lt;/p&gt;

&lt;p&gt;run &lt;code&gt;rails new turbo-example&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Make sure it works by &lt;code&gt;cd turbo-example&lt;/code&gt; and running &lt;code&gt;rails s&lt;/code&gt;&lt;br&gt;
You should see something like &lt;code&gt;Listening on http://localhost:3000/items&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Next, let's make a simple model 'item'&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rails g scaffold Item title:string description:text&lt;/code&gt; and &lt;code&gt;rake db:migrate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;navigate browser to &lt;code&gt;http://localhost:3000/items&lt;/code&gt; or whatever url you have, and you should be able to see the very empty item list.&lt;/p&gt;
&lt;h2&gt;
  
  
  Turbo_frame
&lt;/h2&gt;

&lt;p&gt;go to &lt;code&gt;app/views/items/index.html.erb&lt;/code&gt; and wrap the last line 'new item' to be&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;turbo_frame_tag&lt;/span&gt; &lt;span class="s2"&gt;"new_item"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
  &lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;link_to&lt;/span&gt; &lt;span class="s2"&gt;"New item"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;new_item_path&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;now go to &lt;code&gt;app/views/items/new.html.erb&lt;/code&gt; and wrap the form render like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;turbo_frame_tag&lt;/span&gt; &lt;span class="s2"&gt;"new_item"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
  &lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="s2"&gt;"form"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;item: &lt;/span&gt;&lt;span class="vi"&gt;@item&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We now have a turbo frame on our items list in the index, you can see that the page does not reload on clicking new item, or on create. However, you have to refresh to actually see the new item.&lt;/p&gt;

&lt;p&gt;for that we can use turbo_stream&lt;/p&gt;

&lt;h2&gt;
  
  
  Turbo_stream
&lt;/h2&gt;

&lt;p&gt;go to &lt;code&gt;app/views/items/index.html.erb&lt;/code&gt;&lt;br&gt;
and add &lt;code&gt;&amp;lt;%= turbo_stream_from @items %&amp;gt;&lt;/code&gt; above the items div&lt;br&gt;
so it looks like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Items&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;turbo_stream_from&lt;/span&gt; &lt;span class="vi"&gt;@items&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"items"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="vi"&gt;@items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
    &lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
      &lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;link_to&lt;/span&gt; &lt;span class="s2"&gt;"Show this item"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;


&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;turbo_frame_tag&lt;/span&gt; &lt;span class="s2"&gt;"new_item"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
  &lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;link_to&lt;/span&gt; &lt;span class="s2"&gt;"New item"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;new_item_path&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;next go to &lt;code&gt;app/models/item.rb&lt;/code&gt; and add &lt;code&gt;broadcasts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This lets the model broadcast everything happening to it (create update and delete) Note that this is regardless of any authorization rights, so keep that in mind.&lt;/p&gt;

&lt;p&gt;now go to &lt;code&gt;app/controllers/items_controller.rb#create&lt;/code&gt;&lt;br&gt;
and add &lt;code&gt;format.turbo_stream&lt;/code&gt; to the successful save render&lt;br&gt;
it should look like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create&lt;/span&gt;
    &lt;span class="vi"&gt;@item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item_params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;respond_to&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;turbo_stream&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;redirect_to&lt;/span&gt; &lt;span class="n"&gt;item_url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@item&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="ss"&gt;notice: &lt;/span&gt;&lt;span class="s2"&gt;"Item was successfully created."&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;:show&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :created&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;location: &lt;/span&gt;&lt;span class="vi"&gt;@item&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;:new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :unprocessable_entity&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt; &lt;span class="ss"&gt;json: &lt;/span&gt;&lt;span class="vi"&gt;@item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;status: :unprocessable_entity&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lastly create &lt;code&gt;app/views/items/create.turbo_stream.erb&lt;/code&gt; with the content &lt;code&gt;&amp;lt;%= turbo_stream.prepend "items", @item %&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Notice the form is still the same, we can fix this by adding &lt;br&gt;
&lt;code&gt;&amp;lt;%= turbo_stream.replace "new_item", partial: 'items/form', locals: { item: Item.new } %&amp;gt;&lt;/code&gt;&lt;br&gt;
in the &lt;code&gt;app/views/items/create.turbo_stream.erb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;the file will look like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Refresh preview list --&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;turbo_stream&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prepend&lt;/span&gt; &lt;span class="s2"&gt;"items"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@item&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Reset form --&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;turbo_stream&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt; &lt;span class="s2"&gt;"new_item"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;partial: &lt;/span&gt;&lt;span class="s1"&gt;'items/form'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;locals: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;item: &lt;/span&gt;&lt;span class="no"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can find an example project of this exact step-by-step guide on &lt;a href="https://github.com/nicho1991/turbo-example"&gt;https://github.com/nicho1991/turbo-example&lt;/a&gt;&lt;/p&gt;

</description>
      <category>turbo</category>
      <category>rails</category>
      <category>hotwire</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
