Preskočiť na obsah
Späť na projekty

copyStaq

Natívny správca schránky pre macOS s prehľadávateľnou históriou textov a obrázkov, inteligentnými filtrami a rýchlym vkladaním. Súčasťou projektu je produktový web, licenčný backend a distribúcia aktualizácií.

Vývoj macOS aplikácie, produktového webu, backendu, licencií a distribúcie aktualizácií.

  • Swift
  • SwiftUI
  • AppKit
  • SQLite
  • Nuxt
  • TypeScript
  • PostgreSQL
  • Prisma
  • Docker
Aplikácia copyStaq na macOS s históriou schránky, vyhľadávaním, filtrami a tagmi

Zadanie a prístup

Prepojiť každodennú prácu so schránkou s nástrojom, ktorý ovládaš klávesnicou. Projekt zahŕňa natívnu macOS aplikáciu aj webové zázemie pre distribúciu a licencie.

História, vyhľadávanie a Quick Paste

Aplikácia uchováva text, RTF a HTML formátovanie aj obrázky. SQLite s fulltextovým indexom podporuje vyhľadávanie; filtre podľa aplikácie, typu, dátumu, tagov či poznámok sa dajú uložiť. Quick Paste otvorí históriu globálnou skratkou a vloží vybraný obsah do aktívnej aplikácie.

Lokálne dáta a natívne rozhranie

SwiftUI a AppKit prepájajú hlavné okno, menu bar a panel Quick Paste. História zostáva na Macu. Pravidlá zachytávania umožňujú vylúčiť vybrané aplikácie a správcov hesiel; dôležité položky možno pripnúť, označiť tagmi a doplniť poznámkou.

Produktový web copyStaq s predstavením aplikácie a ukážkou okna Quick Paste
Produktový web s predstavením aplikácie a odkazom na stiahnutie.

Produktový web a licenčný backend

Viacjazyčný web v Nuxt, Vue a TypeScript dopĺňa PostgreSQL s Prisma. Integrácia Lemon Squeezy zabezpečuje checkout a licencie; zákaznícky účet používa prihlásenie e-mailovým odkazom cez Resend. Backend spravuje aktivácie a vydáva podpísané licenčné oprávnenia, ktoré aplikácia overuje lokálne.

Distribúcia a aktualizácie

Aplikácia sa distribuuje ako DMG a aktualizácie zabezpečuje Sparkle s Ed25519 podpismi. Publikovanie overuje balík aj appcast a sprístupní aktualizačný feed až po nahratí súborov. Webové zázemie beží v Docker kontajneroch za Nginx a Traefik.