Engineering
dev avatar

dev

Development and maintenance of the PWAFire library: build PWA API modules, handle feature detection, manage testing, and contribute to codebase following strict sync/async patterns and error handling requirements.

Introduction

The dev skill is designed for maintaining the PWAFire utilities library, a comprehensive collection of modern PWA APIs. It provides technical guidance for developers contributing to the library, ensuring that all modules—such as badging, clipboard, notifications, and screen sharing—adhere to the project's core architectural standards. This includes implementing the catch-and-return error handling pattern, where all exceptions are caught internally and returned as consistent { ok: boolean, message: string } objects, ensuring the consuming application never crashes.

  • Implements precise sync versus async logic: matching underlying browser APIs (e.g., navigator.onLine for sync, clipboard.writeText for async).
  • Manages experimental browser APIs using the required unknown and as any casting to handle TypeScript limitations while maintaining functionality.
  • Enforces strict naming conventions: camelCase for functions, kebab-case for files, and SCREAMING_SNAKE_CASE for constants.
  • Supports the development lifecycle of the monorepo, including running build commands (CJS, ESM, DTS generation) and utilizing the PWAFire console for real-time API testing and feature detection validation.
  • Facilitates PR creation following standard commit formats: <type>(<scope>) - <description>.

Use this skill when developing new PWA capabilities, fixing existing modules, or performing general library maintenance. It ensures code quality by enforcing a 'no code comments' policy, advocating for self-documenting code, and maintaining the separation between primary features and feature detection utilities. Typical inputs involve repository-specific source files in packages/pwafire/src, while the outputs are production-ready, testable modules that satisfy project linting and build requirements. Keep project constraints in mind: minimal abstractions, KISS (Keep It Simple, Stupid) design, and avoiding hardcoded feature lists in favor of dynamic generation.

Repository Stats

Stars
208
Forks
66
Open Issues
0
Language
TypeScript
Default Branch
main
Sync Status
Idle
Last Synced
May 3, 2026, 02:27 AM
View on GitHub