Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions app/src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { GA4Provider } from './context/GA4'
import { ConcrntThemeProvider } from './context/Theme'
import AuthorizePage from './pages/Authorize'
import { SnackbarProvider } from 'notistack'
import { PrivacyPolicy } from './pages/PrivacyPolicy'

const AppPage = lazy(() => import('./App'))
const Welcome = lazy(() => import('./pages/Welcome'))
Expand Down Expand Up @@ -66,6 +67,15 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
</GA4Provider>
}
/>
<Route
path="/privacy-policy"
element={
<GA4Provider tag={tag}>
<PrivacyPolicy />
</GA4Provider>
}
/>

<Route
path="/authorize"
element={
Expand Down
192 changes: 192 additions & 0 deletions app/src/pages/PrivacyPolicy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
import { useTranslation } from 'react-i18next'
import { GuestBase } from '../components/GuestBase'
import { Button } from '@mui/material'
import { Helmet } from 'react-helmet-async'
import { Link } from 'react-router-dom'
import GfmRenderer from '../components/ui/GfmRenderer'

export const PrivacyPolicy = () => {
const { t } = useTranslation('', { keyPrefix: 'welcome' })

return (
<GuestBase
header
sx={{
display: 'flex',
gap: { xs: '50px', sm: '100px', md: '100px' },
width: '100%',
maxWidth: '1280px',
margin: 'auto',
flexDirection: 'column',
color: 'text.primary',
backgroundColor: 'background.paper',
padding: { xs: '20px', sm: '30px', md: '40px' }
}}
additionalButton={
<>
<Button
variant="text"
component={Link}
to="https://square.concrnt.net/general/world/"
target="_blank"
rel="noopener noreferrer"
sx={{
color: 'primary.contrastText'
}}
>
{t('guide')}
</Button>
<Button
variant="text"
component={Link}
to="/import"
sx={{
color: 'primary.contrastText'
}}
>
{t('import')}
</Button>
</>
}
>
<Helmet>
<title>{t('pageTitle')}</title>
<meta name="description" content={t('metaDescription')} />
</Helmet>

<GfmRenderer
messagebody={`
# プライバシーポリシー
発行日: 2026年5月4日

本プライバシーポリシーは、Concrnt クライアントアプリ「コンカレ」(以下「本アプリ」といいます)に適用されます。

1. 基本方針

本アプリは、分散型 SNS である Concrnt に接続するためのクライアントアプリです。

本アプリの開発者は、本アプリを通じて、ユーザーの Concrnt アカウントを作成、管理、保持しません。また、本アプリの開発者は、通常の利用において、ユーザーの投稿、プロフィール、フォロー関係、メディア、メッセージ、認証情報その他の個人情報を、開発者が管理するサーバーに収集または保存しません。

ユーザーは、自身が選択した Concrnt サーバーまたはドメインにログインして本アプリを利用します。ユーザーがログインした Concrnt サーバーに送信される情報は、そのサーバーの運営者、プライバシーポリシー、利用規約、管理方針の対象となります。本アプリの開発者は、第三者が運営する Concrnt サーバー上のデータを管理しません。

2. 第三者の Concrnt サーバーについて

Concrnt は分散型のネットワークであり、ユーザーのアカウント、投稿、プロフィール、メディア、その他の情報は、ユーザーが利用する Concrnt サーバーによって処理、保存、配信される場合があります。

各 Concrnt サーバーは、本アプリとは独立して運営されています。各サーバーは、それぞれ独自のプライバシーポリシー、利用規約、データ保持方針、モデレーション方針を定めている場合があります。ユーザーは、自身が利用するサーバーのポリシーを確認してください。

本アプリの開発者は、第三者の Concrnt サーバーによるデータの収集、保存、利用、共有、削除、モデレーション、停止、障害、漏えいその他の取り扱いについて責任を負いません。

3. 本アプリが端末内に保存する情報

本アプリは、アプリの機能提供、ログイン状態の維持、表示速度の改善、ユーザー体験の向上のため、以下の情報をユーザーの端末内に保存する場合があります。

- ログイン中の Concrnt サーバー情報
- アカウント識別子
- 認証トークンまたはログイン状態を維持するための情報
- アプリ設定
- 表示済みのタイムライン、投稿、プロフィール、画像等のキャッシュ
- 下書き、表示設定、ミュート・ブロック等のローカル設定

これらの情報は、原則としてユーザーの端末内に保存されます。本アプリの開発者は、これらの端末内データへアクセスしません。

端末内に保存されたデータは、アプリ内のログアウト機能、端末のアプリ設定からのストレージ削除、または本アプリのアンインストールによって削除できます。

ただし、ユーザーが Concrnt サーバーに送信した投稿、プロフィール、画像、その他の情報は、端末内データとは別に、利用中の Concrnt サーバーまたは連合先のサーバーに保存されている場合があります。これらのサーバー上のデータを削除するには、各サーバーの機能、設定画面、管理者への問い合わせ、または当該サーバーのポリシーに従う必要があります。

4. カメラの利用

本アプリは、Concrnt へのログインに必要な QR コードを読み取るため、ユーザーの操作に基づいてカメラにアクセスする場合があります。

カメラ映像は、QR コードを解析する目的で端末内においてのみ使用されます。本アプリの開発者は、カメラ映像、写真、動画を収集、保存、送信しません。

カメラ権限は、QR コードログイン機能を利用する場合にのみ必要です。ユーザーは、端末の設定からいつでもカメラ権限を変更できます。

5. 通知機能について

現在、本アプリは、開発者が管理するサーバーを用いたプッシュ通知機能を提供していません。将来、プッシュ通知機能を追加する場合には、通知配信に必要な情報の取り扱いを本プライバシーポリシーに追記します。

6. 画像・動画・ファイルの投稿

本アプリは、ユーザーが投稿に画像、動画、その他のファイルを添付できる機能を提供する場合があります。

ユーザーが画像、動画、ファイルを投稿した場合、それらのデータは、ユーザーが利用する Concrnt サーバー、またはユーザーが選択したアップロード先サービスに送信される場合があります。これらのサーバーまたはサービスは、本アプリとは独立して運営されており、それぞれ独自のプライバシーポリシーおよび利用規約を有する場合があります。

本アプリの開発者が管理するサーバーを経由しない限り、本アプリの開発者は、ユーザーがアップロードした画像、動画、ファイルを保存または管理しません。

7. Concrnt サーバーに見える情報

ユーザーが Concrnt サーバーに接続する場合、接続先サーバーは、通信の性質上、ユーザーの IP アドレス、接続時刻、利用しているアカウント識別子、リクエスト内容、投稿、リアクション、フォロー関係、プロフィール情報、メディア、その他ユーザーが送信または取得する情報を取得できる場合があります。

また、分散型ネットワークの性質上、投稿やプロフィール等の情報は、他の Concrnt サーバー、クライアント、検索サービス、第三者のアーカイブ、または他のユーザーによって保存、複製、再配信される場合があります。

プライバシーを高めたい場合、ユーザーは、信頼できるサーバーを選択し、公開範囲、投稿内容、プロフィール情報、添付メディア、接続環境等に注意してください。

8. 投稿内容の公開性と永続性

Concrnt は分散型 SNS であり、ユーザーが公開した情報は、他のユーザー、サーバー、クライアント、検索サービス等から閲覧、保存、共有、複製される可能性があります。

ユーザーが一度公開した投稿、プロフィール、画像、動画、その他の情報については、後から削除または編集した場合であっても、すべての複製、キャッシュ、引用、スクリーンショット、外部保存データが完全に削除されることを保証できません。

ユーザーは、Concrnt 上に公開する情報が長期間または恒久的に残る可能性があることを理解したうえで、本アプリを利用してください。

9. アカウントの管理と削除

本アプリの開発者は、ユーザーの Concrnt アカウントを作成、管理、保持しません。そのため、本アプリの開発者は、ユーザーの Concrnt アカウント自体を削除することはできません。

Concrnt アカウントの削除、投稿データの削除、プロフィール情報の削除、データのエクスポート、その他サーバー上のデータに関する請求については、ユーザーがアカウントを作成または利用している Concrnt サーバーの設定画面、管理者、プライバシーポリシー、利用規約を確認してください。

本アプリの端末内データについては、アプリ内のログアウト機能、端末のアプリ設定からのストレージ削除、または本アプリのアンインストールにより削除できます。

10. アプリ審査用アカウントについて

本アプリの開発者は、Google Play 等のアプリ審査のため、審査機関に対してレビュー専用の Concrnt テストアカウント、ログイン用 QR コード、またはその他の審査用アクセス手段を提供する場合があります。

これらの審査用アカウントまたはアクセス手段は、アプリ審査の目的に限定して提供されるものであり、一般ユーザーのアカウント、投稿、プロフィール、メディア、その他の個人情報とは関係ありません。

11. 子どものプライバシー

本アプリの開発者は、本アプリを通じて、子どもから個人情報を意図的に収集しません。

ただし、本アプリは分散型 SNS クライアントであり、ユーザーが接続する Concrnt サーバーや、そこで表示されるコンテンツを本アプリの開発者が完全に管理するものではありません。未成年者による利用については、保護者の判断および各 Concrnt サーバーの利用規約、年齢制限、地域の法令に従ってください。

Google Play で配信されるバージョンについては、Google Play の年齢区分、コンテンツレーティング、保護者向け管理機能等が適用される場合があります。

12. 禁止コンテンツおよび利用上の注意

Google Play から入手した本アプリを利用する場合、ユーザーは、違法なコンテンツ、性的に露骨なコンテンツ、児童の性的搾取または虐待に関連するコンテンツ、暴力的または脅迫的なコンテンツ、名誉毀損的なコンテンツ、差別的または嫌がらせに該当するコンテンツ、第三者の権利を侵害するコンテンツ、詐欺的なコンテンツ、違法または規制対象の商品・サービスを促進するコンテンツ、その他法令または Google Play のポリシーに違反するコンテンツを投稿、送信、共有してはなりません。

本アプリの開発者は、ユーザーが接続する各 Concrnt サーバー上のすべてのコンテンツを事前に監視または管理するものではありません。ただし、本アプリは、ブロック、ミュート、通報、表示制限等の機能を提供する場合があります。

13. セキュリティ

本アプリは、ユーザーの認証情報および端末内データを保護するため、合理的な範囲で安全な保存方法および通信方法を用います。

ただし、インターネット通信、端末環境、第三者サーバー、分散型ネットワークには固有のリスクがあります。本アプリの開発者は、すべての通信、保存、配信、第三者サーバー上のデータについて完全な安全性を保証するものではありません。

ユーザーは、信頼できるサーバーを選択し、端末の画面ロック、OS の更新、アプリの更新、不要な権限の無効化等により、自身のアカウントおよびデータを保護してください。

14. 広告およびトラッキング

本アプリは、ユーザーの行動を広告目的で追跡しません。また、本アプリの開発者は、ユーザーの個人情報を販売しません。

将来、本アプリが分析、クラッシュレポート、広告、その他の第三者 SDK を導入する場合、本プライバシーポリシーを更新し、必要に応じて Google Play の Data Safety 表示を更新します。

15. 本ポリシーの変更

本アプリの開発者は、必要に応じて本プライバシーポリシーを変更することがあります。

変更後のプライバシーポリシーは、本アプリ内、配布ページ、または開発者が指定するウェブサイトに掲載された時点で効力を生じます。重要な変更がある場合には、合理的な方法でユーザーに通知する場合があります。

16. お問い合わせ

本アプリまたは本プライバシーポリシーに関するお問い合わせは、以下の連絡先までご連絡ください。

開発者名: totegamma
メールアドレス: concrnt@gammalab.net
ウェブサイト: https://gammalab.net
`}
/>
</GuestBase>
)
}
Loading