つくったもの
キャリアの意思決定があつまるサービス「Wellbi(ウェルビ)」をつくりました。
意思決定、入社・退職エントリ、ジョブチェンジ、転職体験談などキャリアに関するものならなんでも投稿できます。よかったら投稿してみてください〜〜><
※PlanetScaleの無料プランの終了により今はトップページしか閲覧できなくなっておりますmm
かかった期間
5ヶ月。
(企画〜デザイン〜開発〜リリース)
つくってみてどうだった?
スポットでエンジニア友達に手伝ってもらったりはしたものの、ベース1人でサービスをつくりきるのは結構大変でした(もはや手伝ってもらった時点で個人開発ではないのかもしれない...)。つけたい機能があったり、UIをリッチにしたいなあと思ったりすることが多々ありますが、持ってるアセット・リソースとの相談なのでミニマムでリリースできるようにすることを心がけました。
どこが大変だった?
フロント・バックエンドを1人で開発していくと自分の足りない技術が見えてくるので、そこのキャッチアップが大変でした。大変ですが「どうやって実装しよう?」と考え、自身の技術力と相談して形にしていくのは実際やってみると結構楽しいです。
使った技術を大公開!
フロント: TypeScript+React+Next.js
特に理由はなかったのですが、せっかくReact使うならNext.jsにするか!くらいなノリです。Next.jsのルーティングは直感的なので結構好きです。あとはせっかくなのでTypeScriptにしました。
CSSフレームワークは最初は慣れていたStyledComponentsでしたが、emotionを経てtailwindに落ち着きました。
バックエンド
サーバーサイド言語: Go
バックエンドは慣れ親しんだ言語で実装しようと決めていました。RubyとGoは書いたことがありRuby暦の方が長いですが、もしスケールさせていきたいとなった時にやっぱり型があった方がいいなと思ったのでGoにしました。あとはGoの文法はシンプルを保ち表記揺れが起きにくく、書き手によってアウトプットに差が出にくいのでもしチーム開発することになっても有利だと思ったのも理由の1つです。
サーバーサイドフレームワーク: echo
フレームワークはechoにしました。実務で使ったことがあったのでechoにしましたが特にこだわりはないです。他のフレームワークだとGinも気になります。
DBライブラリ: GORM
使っていると意図しないSQLが生成されるケースに出くわし「なんでそういう挙動になるんだ?」ってなることがあり、個人的にはちょっと癖がある気がしていますが、なんだかんだ気に入っています。スターも多く、コミットも結構動きあります。
インフラストラクチャー
フロントのホスティング先: Vercel
Vercelは自分のWebサイト(Next.jsアプリ)を公開するときに使用したことがあり、デプロイがとても簡単でびっくりしました。Next.jsを開発しているのもVercel社ということもあり、相性を考えて一旦Vercelにしました。
Hobbyプランは無料なのでお手軽に始められるので便利です。
バックエンド(APIサーバ)のホスティング先: Render
デプロイが簡単で特別な構築も不要なので、開発に集中できます。
Herokuが有料化しましたが、Renderには無料プランがあります。
以下の記事でHerokuとの比較・優位性について書いてありますが相当意識していることが分かりますね...!
データベース: PlanetScale
無料プランもありMySQLもいけます。
RDSだとお金かかっちゃうので選択肢としてPlanetScaleおすすめです。
ファイルストレージ: Amazon S3
記事のヘッダー画像やプロフィール画像をアップロードする必要があり、そこまでコストがかからないS3にしました。
最後に
全部モダンなことやろうとしたり、慣れていない技術をたくさん選ぶとキャッチアップが大変でプロダクトをつくりきることハードルがぐっと上がるので、「1つだけ新しい技術を取り入れてみる」がちょうどいいんじゃないかなあと思います。
あとはつくってみて感じたことは自分自身まだまだ勉強が足りないなあと実感しました。やるぞ〜〜
最後までお読みくださりありがとうございました!!!