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
1.2k
「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
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
RailsConf 2023
tenderlove
30
1.1k
The Invisible Side of Design
smashingmag
301
51k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Music & Morning Musume
bryan
46
6.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
We Have a Design System, Now What?
morganepeng
53
7.7k
Building an army of robots
kneath
306
45k
Fireside Chat
paigeccino
37
3.5k
Into the Great Unknown - MozCon
thekraken
39
1.9k
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
再掲: このトークのねらい • 「やるぞ!!」 という気持ちを(特に以下の方々 に)持ち帰ってもらう ◦ サービスをこれから作る/作っていて、ローンチ を目指している人 ◦
久々に個人開発したいけれど、作る勢いがま だつかない人
(ポッドキャストでの )いつもの言葉
もし面白いと思ったら、 チャンネル登録・高評価 よろしくお願いします
ありがとうございました