開発の背景:既存タイマーの課題解決
在宅ワークやハイブリッドワークが普及する中で、PC、スマートフォン、タブレットといった複数のデバイスを使い分けることが一般的になりました。しかし、タイマーアプリの多くは端末ごとに独立して動作しており、「PCで開始したタイマーをスマホで止める」「別の端末で残り時間を確認する」といった操作は困難でした。
既存のオープンソースタイマーアプリの多くは、単一端末での利用や「終わった記録」の同期にとどまっており、「いま動いているタイマー」を端末をまたいでリアルタイムに同期させる機能は限られていました。

DeviceTickは、このような背景から、タイマー同期エンジンとそのWebクライアントのセットとして設計されました。
DeviceTickの独自性
DeviceTickは、以下の5つの点で独自の価値を提供します。
-
端末間で時計がズレない仕組み
タイマーの進行状況はサーバー側で一元管理され、その情報が全端末に配信されます。これにより、各端末の時計のわずかなズレやスリープからの復帰後も、表示される残り時間は常に正確に同期されます。ポモドーロの集中と休憩の切り替えもサーバーが判定するため、端末ごとのズレが生じることはありません。 -
リンク一本で参加完了
ルームを作成すると発行される短いIDのURLを共有するだけで、他の端末や参加者が同じセッションに即座に参加できます。アカウント登録やメール認証、アプリのインストールは一切不要です。 -
カウントダウンとポモドーロをひとつのアプリで
シンプルなカウントダウンタイマーと、ポモドーロタイマー(集中と休憩のサイクル)の両方を、同じアプリと操作感で利用できます。モードを切り替えるために別のアプリを使う必要はありません。 -
他開発者が連携アプリを作成可能な開かれた仕様
DeviceTickはAPI仕様(リクエスト・レスポンス形式、配信イベント形式)を公開ドキュメントとして提供しています。これにより、第三者が独自のCLIツール、デスクトップアプリ、Raspberry Piなどを使った物理タイマーとの連携、社内ツールへの組み込みなどを、DeviceTick本体のソースコードを読むことなく開発できます。これは、この同期モデルを共通基盤として広めることを意図した設計です。 -
自分のサーバーで動かせる超軽量設計
データベースの構築や複雑なセットアップは不要で、1コマンドでWeb画面とAPIサーバーを起動できます。個人VPS、社内サーバー、Raspberry Piクラスのハードウェアでも運用が可能であり、タイマー共有のためにクラウドサービスへの依存を増やす必要がありません。
差別化マトリクス
DeviceTickは、リアルタイム同期、アカウント不要、公開仕様、セルフホストの容易さにおいて、既存のソリューションと比較して優位性を持つことが示されています。

利用シーンの例
-
個人のマルチデバイス併用:デスクのPCで作業しながら、手元のスマートフォンで残り時間を確認・操作できます。
-
リモートチームの集中ブロック共有:離れた場所にいるチームメンバーと同じ25分のポモドーロタイマーを共有し、集中作業を同期できます。
-
オンライン授業・勉強会・ワークショップ:講師がチャットにURLを貼るだけで、受講者全員の画面のタイマーが揃います。
-
試験運用・ペアプログラミング・モブプログラミング:立会人や進行役が操作し、参加者全員の画面に同じ残り時間が表示されます。
-
物理ハードウェア連携(将来):公開仕様を通じて、物理ポモドーロタイマーを同じセッションに接続できる可能性があります。
オープンソースとしての公開理由
DeviceTickは、特定のクラウドサービスやアプリに限定されず、「複数端末でタイマーを揃える」体験そのものをオープンソースとして提供することを目指しています。API仕様を先行公開しているのは、DeviceTickの実装が普及すること以上に、この同期モデルと仕様が共通基盤として広く活用されることを意図しています。
MITライセンスのもと、個人、チーム、組織は自由に利用、改変、再配布が可能であり、独自クライアントの実装や社内システムへの組み込み、商用サービスでの利用も許容されています。
今後の展望(v0.2以降)
DeviceTickは今後、さらなる機能拡充を計画しています。
-
ルームPINによるアクセス制限
-
「全員が操作可能」と「特定の端末のみが操作可能」モードの切り替え
-
PWA対応とモバイルブラウザでのバックグラウンド復帰強化
-
デスクトップクライアント
-
公開デモ環境の提供
-
物理ポモドーロタイマーとの無線連携
技術的特徴(開発者・技術系メディア向け)
より技術的な観点からの補足情報です。
アーキテクチャ概要
-
サーバー権威型モデル:タイマー状態はAPIサーバーが「単一の真実の源」として保持し、すべてのスナップショットにサーバー時刻を含めて配信します。クライアントはこの情報を基準に時刻オフセットを補正して描画します。
-
共通ステートマシン:idle → running → paused → running → completed の状態遷移上で、カウントダウンとポモドーロの両モードを扱います。
-
配信モデル:RESTで状態変更を受け付け、成功した変更をWebSocketで接続中の全クライアントにsession.updatedイベントとしてプッシュ配信します。
技術スタック

公開API(抜粋)

スナップショットの完全な型定義は、リポジトリ内の protocol/session.schema.json を参照してください。
株式会社NITI Technologyについて
株式会社NITI Technologyは、最先端のAI技術を駆使し、企業のビジネスプロセスを革新するテクノロジーカンパニーです。「面白さ」を追求しながら社会の課題を解決し、新しい価値を創造することをミッションに掲げ、エッジAIや小規模言語モデル開発に取り組んでいます。ユニークなアイデアをプロダクトとして形にし、より良い社会の実現を目指しています。
-
社名:株式会社NITI Technology
-
事業内容:AI製品の開発・販売、企業のDX支援、AI受託開発
