Open3
ウェブサイトのスクリーンショットを生成するサービスをつくる過程
指定したURLのスクリーンショットを生成する。
ブラウザでの直接ダウンロードやAPIでの指定も検討。
どこにでもあるサービスだが、学習のために作ってみる。
Frontend:Next.js(ダッシュボード)
Backend:Laravel(認証、APIキー、レートリミット)
ScreenShot Server:hono(ヘッドレスブラウザ)
Storage:Cloudflare R2(生成した画像の一時的な保存先)
Laravel側にはGoogleとGithub認証を用意。
ユーザー登録時にAPI用のaccessKeyを生成し、Laravelとキャプチャ用サーバー間のリクエストには別途secretKeyを設定して外部から無料乗りされないようにした。