Git Product home page Git Product logo

callstack's Introduction

callstack

callstack

pnpm + turborepoで構成されたモノリポ構成のボイラープレート

GitHub stars GitHub forks GitHub issues GitHub license GitHub commit GitHub code size in bytes GitHub repo size

コンテンツ内容

概要

このプロジェクトは、pnpm と turbo を用いて構成されたボイラープレートです。
現在開発途上です。

モノリポ構成とは

モノリポ構成とは、複数のプロジェクトを一つのリポジトリで管理する構成のことです。

全体構成

このリポジトリは、バックエンドを graphql で、フロントエンドを react で実装した Web アプリケーションをモノリポ構成で管理しています。

技術スタック

バックエンド

  • graphql-yoga
    graphql サーバの立ち上げに使用しています。
  • tsx
    開発環境のビルドツールとして利用しています。
  • swc 本番環境のビルドツールとして利用しています。
  • prisma
    データベースへのアクセスに使用しています。
  • grpahql-scalars
    日付型や JSON 型などのスカラー型を graphql-yoga へ追加するために使用しています。
  • graphql-codegen
    graphql スキーマから、resolver や型定義を生成するために使用しています。
  • @envelop/useAuth0
    後述する Logto との連携に使用しています。
  • @envelop/useGenericAuth
    認可処理や権限管理に使用しています。
    これを用いて graphql の@auth ディレクティブを実装しています。
  • graphql-armor
    様々なセキュリティ対策に使用しています。
  • @envelop/disable-introspection
    GraphQL のイントロスペクションを無効化するために使用しています。
  • jsonwebtoken
    JWT 認証処理に利用しています。
  • jimp
    画像のリサイズ処理に使用しています。
  • minio-js
    後述する minio にリサイズ画像をアップロードするために使用しています。

フロントエンド

  • react
    フロントエンドのフレームワークとして使用しています。
  • vite
    ビルドツールとして使用しています。
  • @tanstack/react-router ルーティングに使用しています。
  • nextui
    tailwind 対応のコンポーネントライブラリとして使用しています。
  • tailwindcss
    CSS フレームワークとして使用しています。
  • storybook
    コンポーネントの管理に使用しています。
  • urql
    graphql クライアントとして使用しています。
  • @urql/exchange-auth 後述する Logto との認証連携に使用しています。
  • graphql-codegen
    graphql スキーマから、型定義を生成するために使用しています。
  • logto-js
    後述する Logto を用いた認証処理に使用しています。

開発環境整備

  • pnpm
    パッケージマネージャとして使用しています。
  • turborepo
    モノリポ構成の管理に使用しています。
  • prettier
    コードのフォーマットに使用しています。
  • husky
    git のフックに使用しています。
  • commitlint
    コミットメッセージのフォーマットをチェックするために使用しています。
  • changesets
    バージョン管理とリリース管理に使用しています。

インフラ環境(開発環境)

  • devcontainer
    開発環境の立ち上げに使用しています。
    ベースとなるアプリケーションコンテナに加えて、PostgreSQL のデータベースコンテナと minio を立ち上げています。
  • minio
    AWS S3 互換のオブジェクトストレージです。

インフラ環境(本番環境)

  • docker compose
    本番環境の立ち上げに使用しています。
  • Logto
    Auth0 互換の認証サービスです。
  • minio
    AWS S3 互換のオブジェクトストレージです。
  • nginx
    フロントエンドの HTML ファイルの配信を行っています。
    nginx のコンテナ内でフロントエンドのビルドを行い、そのビルド済みのファイルを配信しています。
  • traefik リバースプロキシとして使用しています。

CI/CD 環境

  • Github Actions
    ここで、型チェックを行っています。
    現時点では型チェックのみですが、今後はテストコードの実行も行う予定です。

ライセンス

MIT License

Copyright (c) 2023 calloc134

callstack's People

Contributors

calloc134 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.