Skip to content

feat: PWA support (manifest + service worker)#83

Open
opensecretsauce wants to merge 2 commits intosorosave-protocol:mainfrom
opensecretsauce:feat/pwa
Open

feat: PWA support (manifest + service worker)#83
opensecretsauce wants to merge 2 commits intosorosave-protocol:mainfrom
opensecretsauce:feat/pwa

Conversation

@opensecretsauce
Copy link

Closes #42

Changes

  • Add public/manifest.json — name, icons, shortcuts (Groups, Create Group), theme color
  • Add public/sw.js — cache-first for static assets, network-first for API, offline fallback to /
  • Register service worker in layout.tsx on page load
  • Apple mobile web app meta tags for iOS homescreen install
  • Works offline after first load

Build

pnpm build

- Add WalletAdapter interface (src/lib/wallets/index.ts)
- Add FreighterAdapter, xBullAdapter, AlbedoAdapter
- Refactor providers.tsx to support multiple wallets + localStorage persistence
- Update ConnectWallet.tsx with wallet selection modal
- Create src/lib/sdk.ts as local stub for @sorosave/sdk
- Create src/lib/wallet.ts with multi-wallet signTransaction routing
- Fix all @sorosave/sdk missing module errors — build passes clean
…ocol#42)

- Add public/manifest.json (name, icons, shortcuts, theme color #16a34a)
- Add public/sw.js (cache-first for static assets, network-first for APIs)
- Register service worker on load in layout.tsx
- Apple mobile web app meta tags for iOS install
- Offline fallback to cached /
@opensecretsauce
Copy link
Author

⚠️ Dependency note: This PR should be reviewed after #81 merges. PR #81 introduces the foundational infrastructure (wallet adapters, local SDK stub, import fixes) that this feature builds on. Once #81 is merged, I will rebase this branch and the diff will only show the feature-specific changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add PWA support (Progressive Web App)

1 participant