← Back to portfolio

Project

pingme.help

Privacy-first safety check-ins · PWA experience · Node.js + TypeScript + encrypted SQLite

pingme.help was built for one core need: give people a lightweight way to share readiness and wellbeing status with trusted followers, without turning that process into a social network, surveillance workflow, or data-hungry platform.

Status model

I’m OK

Fast reassurance updates for followers.

I’m not OK

Escalation path with one-read burn-message support.

Rationale

Many check-in tools are either too complex for urgent moments or too broad in scope. pingme.help keeps the model intentionally focused: update status, allow trusted follow-up via codewords, and keep friction low for both sender and checker.

Design and user flow

Public flows

  • Send a Ping
  • Register / Login
  • Check a Ping (username + codeword)
  • Installable PWA shell for quick repeat access

User/admin operations

  • User dashboard for status, codewords, follows, and account controls
  • Admin dashboard for SMTP setup, invite workflows, and 2FA settings
  • Email-based verification, reset, and optional 2FA challenges
  • One-read burn-message reveal for sensitive updates

Implementation and security posture

Architecture

Server-rendered shell plus browser-side SPA behaviour, with TypeScript modules for app, security helpers, and persistence.

Data protection

Encrypted SQLite storage, password hashing, timing-safe comparisons, sanitisation, and hardened response headers.

Abuse controls

Turnstile support for public actions, lockout/backoff controls, bounded payload sizes, and cautious error responses.

Node.js
TypeScript
Encrypted SQLite
PWA