Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「1ヶ月でWebサービスを作る会」で出会った rails new, そして今に至る rails...
Search
kiryuanzu
June 28, 2025
1
2.9k
「1ヶ月でWebサービスを作る会」で出会った rails new, そして今に至る rails new
2025/06/28 関西Ruby会議08の登壇資料です。
https://regional.rubykaigi.org/kansai08/presentations/kiryuanzu
kiryuanzu
June 28, 2025
Tweet
Share
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Code Reviewing Like a Champion
maltzj
525
40k
Site-Speed That Sticks
csswizardry
10
790
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Designing for humans not robots
tammielis
253
25k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Done Done
chrislema
185
16k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
Transcript
桐生あんず / id: kiryuanzu 「1ヶ月でWebサービスを作る会」 で出会った rails new そして
今に至る rails new
こんにちは
• 桐生あんず / kiryuanzu(@anzu_mmm) • Classi株式会社のエンジニア • 神奈川の南側の地域rb「三浦半島.rb」を
やってます • 趣味はポッドキャストと同人誌制作 自己紹介
Classiのメンバーも参加しています kozy4324 akinko1918 nekobitsdreams nkc_yuppy r_tommy1038 1momor1
三浦半島.rb (発足の「機運」を作ってくださった 東京Ruby会議12実行委員のみなさん ありがとうございます !!)
桐生あんず / id: kiryuanzu 「1ヶ月でWebサービスを作る会」 で出会った rails new そして
今に至る rails new
このトークで話すこと • 生活の一部で rails new したくなった人間の体 験談 • 自作のWebサービスを開発する上で「どうしたら ローンチまで辿り着けるのか
」の深掘り
このトークのねらい • 「やるぞ!!」 という気持ちを(特に以下の方々 に)持ち帰ってもらう ◦ サービスをこれから作る/作っていて、ローンチ を目指している人 ◦ 久々に個人開発したいけれど、作る勢いがま
だつかない人
導入
1ヶ月でWebサービスを作る勉強会
学生時代に参加した 初めての勉強会
RailsGirls Kyoto 7th の存在を 教えてもらった (Rubyコミュニティを初 めて知る)
上記を経て 個人サービス開発が趣味となって エンジニアのキャリアにたどり着いた
しかしここ数年の様子 • あまり個人開発に触れない日々 • 学生当時より技術知識は増えたはずなのに 中々ローンチまで辿り着かない
一念発起
やはり手持ちのサービスがほしい !
趣味のポッドキャストをテーマに個 人サービスを作ってみることにした
ポッドキャストとは 出典リンク : https://ja.wikipedia.org/wiki/ポッドキャスト
大まかにいえばネットラジオです
> Webサーバ上にマルチメディア・データファ イル(音声データ・動画データなど )をアップ ロードし、RSSを通してWWW上に公開する ことである
RSS(Rich Site Summary) • ニュースやブログなどウェブサイトの更新情報 を配信するための文書フォーマットの総称 (XML形式で記述) ◦ RSSフィードとも呼ばれる ◦
ポッドキャストの主な規格はRSS 2.0 ◦ RSSリーダーを使って対象サイトの更新情報 をチェックすることができる ◦
(衰退の一途という説もあるけれど ……?)
ポッドキャストを複数プラットフォーム で配信したい時に便利 • Spotify • Apple Podcast • YouTube Music
• etc… Amazon Music のポッドキャスト追加管理画面
ポッドキャスト界隈ではまだまだ使 われている
ポッドキャストの RSSフィードの主な 構成情報 • ポッドキャストについての説明 • 各エピソードの詳細情報 ◦ カバー画像、説明、更新日時 •
各エピソードの音声データ • 一意で識別するためのuid
これ、自分でも作れるかも? テキストと音声ファイルのデータを登録し、RSS フィードの形式で出力できたらOK
自前で作る意味とは? Spotify等のプラットフォーム上でRSSフィードは発 行可能
そこにロマンを感じたので
先駆者たちの存在 Kaigi on Rails 2023 / mktakuyaさん(ゆるふわポッドキャストさん )の発表
Rails製の事例が複数ある yaslab さんのブログ
ゴール決定 • ポッドキャストの RSSフィード発行 APIを 作る • まずはこれだけを見据えてやってみる
やっていく
まずはやること整理から
Chat GPT を 補助線の役割 として使う
その上で自分でまとめる
最低限の機能をおさえる 1. 管理者用のユーザーを作成・認証画面でログイン ◦ ユーザー情報はコンソールで作成 (他ユーザー作る機会なさそうと判断 ) 2. 管理画面でポッドキャストのエピソードを投稿 3.
管理画面でポッドキャストのエピソード一覧・編集画面 を表示 4. エピソード情報をRSSフィードで発行
最終的なroutes.rbはこんな感じ
主に必要だったところ
音声・画像ファイルを保存 →配信 • ActiveStorageで音声ファイル・エピソードのカバー画像をS3(ク ラウドストレージ )にアップロードする • S3で管理する画像・音声ファイルは CloudFront でCDN配信
Active Storage S3のファイルを CloudFront でCDN 配信 Amazon S3 Amazon CloudFront ActiveStorage で S3にアップロード
RSSフィードを発行 respond_to で format.rss を指定 コントローラー(Episode::RssController)内の定義は以下のみ
Builder テンプレートを使う Railsガイド Action View の概要より参照 フィード用のXMLを組み立てていく / 記述量は100行いかないくらい
インフラのはなし
VPS(Amazon Lightsail)を選択
判断基準: できるだけ AWS のサービスに 寄せるかとなった • PaaS (Heroku や render.com、Fly.io
等)の選択肢も浮 かんではいた • オブジェクトストレージ、CDN、ドメイン全てAWSだなあ となったので • 業務でAWS が一番身近だったのでできるだけ AWS に 寄せることにした
せっかくなので Rails8のデフォルトに 乗っかってみる
Kamal2 • config/deploy.yml で以下のセットアップをしたら kamal deploy一発でデプロイできる、便利 ◦ ssh接続・パブリックIP・ホストの指定 ◦ Docker Hub
の認証情報・サービスのシークレットの設定 • VPSと相性はよさそう
SQLite を本番DBに使う • デフォルト設定そのままで使っている • Rails8 で大幅強化という話もあるが、自サービスではあまり検 証できていないのが実情 ◦ 今回のサービスでは同時書き込みが発生するタイミングが
ないというのもある • DBサーバを別で用意しなくて良いのはうれしい ◦ VPSのコストだけを気にしたら良いので
(結果的に) あまり手間なく本番環境の構築・デ プロイができた
あとは RSSフィードの精度を 上げていくのみ • Spotify で作った元のフィードと比較していく • Chat GPT にも比較をお願いしたけど割と漏れがあった
Cast Feed Validator という 検証サイトにお世話になった
指摘された箇所を修正していく
全部通った 👏
Spotify に自作の RSSフィードの リンクを設定
(デモ)Spotify で再生
ローンチできた 🎉
どうしたらサービスをローンチまで 持っていけるか
1. 小さく作って出す • まずはRSSフィードの発行 を目標とした • その上で最低限必要な機能を確認し実装 ◦ 3週間かけて運用開始まで到達
2. 様子を実況する プロポーザル提出後にまだ半分もサービスができてなかった時のツイート
3. 自分が最初のユーザーであること • 自分がまず「あったらいいな」と思えるサービス • ポッドキャストを週1くらいで更新するのでその度に使う ことになる
この3つの行動を意識していた
思い返すと昔作ったサービスも この条件を満たしていた
一例: 布教箱 布教してほしいお題を投稿してみ んなで布教するサービス
我ながら良い発想だな〜と思う ……
だがしかし
続いていないのである
サービスを続けるのって難しい
なぜ?
金 • インフラ費用が気を抜くと3000円前後ぐらいになってい た ◦ 構成をがんばって ALB でリクエストをさばくとかやっ ていた •
使わないまま数千円を払うのはちょっと気持ちとして辛 い
ユーザー不在 • 使われるタイミングがないと続ける意思が消えていく • ある程度の「承認」がないとモチベが続かない……
外部要因 • デプロイ先のプラットフォーム・外部APIの仕様変更 • 例: Heroku の有料化、 Twitter API の仕様変更
◦ モチベーションがあれば代替できていたかもだが、そこ までには至れず
上記を意識しつつ運用継続中 • ポッドキャストを定期的にアップロードするために 必要不可欠なツール • Amazon Lightsail は月額固定制 ◦ 3ヶ月無料/月1000円以下のプラン
• いろいろ追加したくなるが、最低限の機能を動かし続けるこ とを実践
まずは無理しないレベルで 続けてみる
再考「どうしたら個人サービスを ローンチまで辿り着けるのか」
まずは「作ろう」までに至る機運 好きなこと・趣味をたくさん持つこと • 身の回りの習慣やコミュニティのための「道具」を自作する • 作ろうと思うきっかけがないと意外と始まらない ポッドキャスト活動がまさにそれだった (やんちゃクラブ Advent Calender
2024 ってやつに感謝だ)
それでもまだ至れなかったら?
コミュニティで他の人の勢いを知る Kaigi on Rails 2024 での kotatsu さん・asonasさんの発表
「自分のサービス、やっぱり欲しい ……!」
そして今に至る rails new
再掲: このトークのねらい • 「やるぞ!!」 という気持ちを(特に以下の方々 に)持ち帰ってもらう ◦ サービスをこれから作る/作っていて、ローンチ を目指している人 ◦
久々に個人開発したいけれど、作る勢いがま だつかない人
(ポッドキャストでの )いつもの言葉
もし面白いと思ったら、 チャンネル登録・高評価 よろしくお願いします
ありがとうございました