Logo Logo

/GET/ENTRIES/WORKS/px-5matod

Storift preview

term: 2025.11

role: 企画・実装

member: 1名

link: https://storift.f5.si/

gh-repo: https://github.com/shiki-01/Storift

tags

systemdesignplan

skills

FigmaSvelteTypeScript

Storift

小説・シナリオ制作を支援する Web アプリケーション「Storift」を個人開発しました。

開発の背景

小説やビジュアルノベルを書く際、キャラクター・プロット・章・シーン・世界観設定といった情報が散在して管理しきれなくなる問題を解決するため、創作に必要な要素をひとつのプロジェクトとして統合管理できるツールとして開発しました。

実装内容

SvelteKit + TypeScript + Firebase で構築し、Cloudflare Pages へデプロイしています。 データモデルは Project を頂点に、ChapterSceneCharacterPlotWorldbuilding といった型をそれぞれ独立して設計し、創作に必要な情報を構造的に管理できるようにしました。

バックエンドは Firestore をメインのデータストアとして採用し、sync.service.tsでオフライン対応・競合解決・差分同期を実装しています。 編集履歴のバージョン管理は version.service.ts で行い、export.service.tsimport.service.ts では JSON/Markdown などの複数フォーマットへの書き出し・読み込みにも対応しています。 また search.service.ts によるプロジェクト横断検索や、notification.service.ts によるユーザー通知機能も備えています。

設計のこだわり

ローカルの IndexedDB と Firestore の二層構造を取ることで、オフライン時でも編集を継続できる設計にしました。 Firestore のセキュリティルールも firestore.rules で独自に整備しており、認証ユーザーごとにデータアクセスを制御しています。