Jeweler

https://github.com/K-Kizuku/jeweler

Go

TypeScript

React

AWS

Terraform

topa'zに投稿されたプロダクトのLPを自動生成してくれるよ

Kizuku

推しアイデア

ハッカソンで作ったプロダクトのLP作ってる人がいいていいなと思ったから

作った背景

サブドメインの払い出しを実装してみたかった hono + HTMXのスタックを試してみたかった

推し技術

supabase edge function + Hono + HTMX CloudFront + API Gateway + S3 + Lambda@Edge React + Rspack + tailwind + shadcn/ui + gsap

プロジェクト詳細

Jeweler

何ができる?

topa'zのリンクとプロダクト名を入力すると、自動でLPを作ってくれるよ サブドメインでURLが発行されるよ LPがあるとテンションが上がるね

使用技術

  • 入力画面
    • supabase edge function + Hono + HTMX
  • LP
    • React + Rspack + tailwind + shadcn/ui + gsap
  • フロントエンドインフラ
    • CloudFront + API Gateway + S3 + Lambda@Edge

サブドメインについて

まずユーザーごとにユニークなサブドメインを設定し、リクエストが来た際にそのサブドメインを解析します。Amazon Route 53を用いて、ワイルドカードDNSエントリを設定し、すべてのサブドメインが同一のAPI Gatewayにルーティングされるようにします。CloudFrontをAPI Gatewayの前に配置し、キャッシュを利用して高速なコンテンツ配信を行います。API Gatewayはリクエストを受け取り、Lambda@Edgeを介してS3バケット内の適切な静的コンテンツ(reactのビルド済みファイル)を取得します。Lambda@Edgeでキャッシュ制御を行い、効率的なコンテンツ配信を実現します。この仕組みにより、ユーザーごとに異なるコンテンツを、グローバルに分散したエッジロケーションから高速に提供できます。

技術構成図

image

開発後追記

できたこと

  • サブドメ払い出し
  • 動的にreactのプロジェクトをビルド→S3にアップロード
  • ドメイン(kizuku-hackathon.work)
  • supabase edge functions + firebase functionsでのHTML配信
  • ファビコン・ロゴ作成
  • フロントエンドインフラ(terraform)
    • CloudFront
    • API Gateway
    • Lamdba
    • S3

Kizuku

@Kizuku