// Merchant app: refresh the order list the moment an order changesconst channel = supabase.channel(`orders:${storeId}`) .on('postgres_changes', { event: '*', table: 'orders' }, () => queryClient.invalidateQueries({ queryKey: ['orders', storeId] }) ) .subscribe()// Notify the rider assigned to the orderawait notify(rider.id, { title: 'New delivery job', priority: true })プロセス
アイデアから公開、そしてその先までの6ステップ
ステップを選ぶと、行う内容と成果物をご覧いただけます。
Step 1 of 6
ヒアリング
まず事業を理解することから始めます。ユーザーは誰か、成功とはどのような状態か、公開日までに何を満たしている必要があるか。お客様が当社に求められる、書面の作業範囲をお渡しします。
お渡しするもの
- 目標と成功の指標
- ユーザーの役割と主要な動線
- 書面による作業範囲とマイルストーン
エンジニアリングの実践
プロダクトを健全に保つ習慣
企業サイトから複数アプリのマーケットプレイスまで、当社が手がけるすべてのプロジェクトで、同じ実践を貫いています。
すべての変更でコードレビュー
すべての作業はGitで行います。変更はプルリクエストとして提案され、マージの前にレビューされます。
環境の分離
開発環境と本番環境は別のプロジェクトで運用するため、新しい作業は、実際のユーザーに影響する前に検証されます。
データ層でのセキュリティ
行レベルセキュリティとロールベースのアクセス制御は、アプリだけでなく、データベースでも適用されます。
機密情報をコードに含めない
キーや認証情報は、管理された環境設定に保管し、リポジトリには置きません。
リリース後の監視
Sentryによるクラッシュとエラーの報告で、問題を素早く把握し、修正を迅速にリリースします。
高速でアクセシブル
最適化された画像、遅延読み込み、アクセシブルなマークアップを、デスクトップだけでなくスマートフォンでも確認します。
テクノロジー
モダンで実績のある技術スタック
現在、本番環境で使っているツールです。流行ではなく、お客様のプロダクトに合ったものを選びます。
モバイル
- React Native
- Expo
- TypeScript
- TanStack Query
- Zustand
- React Native Maps
ウェブ
- React
- Next.js
- Vite
- Tailwind CSS
- Material UI
- Framer Motion
バックエンドとデータ
- Supabase
- PostgreSQL
- Laravel
- Node.js
- Prisma
- エッジ関数
クラウドとデリバリー
- Vercel
- Laravel Cloud
- GitHub
- App Store Connect
- Google Play Console
連携
- Firebase
- Sentry
- Stripe
- GCashとMaya(PayMongo)
- グラフとレポート
ご一緒するにあたって
お約束すること
良いソフトウェアは、良い協力関係から生まれます。初日から、状況を共有し続ける方法をご紹介します。
窓口は1名
プロジェクトを把握し、ご質問にお答えする専任のリードが付きます。
動くソフトウェアを早い段階で
最後だけでなく、プロジェクトの途中でも実際のビルドをお試しいただけます。
決定事項は書面で
作業範囲、優先順位、変更内容は、書面に残して合意します。
お客様のアカウントで、お客様のプロダクトに
ストア掲載、ドメイン、クラウドプロジェクトは、お客様ご自身の会社アカウントで設定できます。
ご検討中のプロダクトはありますか?一緒につくりましょう。
Tell us what you want to build. We will reply with next steps, a suggested approach and a timeline.