Skip to content

Latest commit

 

History

History
66 lines (58 loc) · 3.67 KB

TODOs.md

File metadata and controls

66 lines (58 loc) · 3.67 KB

Next up

  • send timing stats to client in ghpreview
  • switch to plausible analytics
  • clean up API routes
  • need to put auth in front of post2md route
  • design stats collection to power billing
  • can I use logflare as Google Analytics (disable console logging only send to log drain)
  • establish the pattern of axios call inside of db.js from client side

Done

  • set up seo, at leset the link card should work in my blog, maybe use next-seo
  • have a correct account page
  • on use preview in db if site hasm't be updated after preview's creation time
  • html to markdown converstion utils
  • My sites page should have a good empty state
  • set up logflare for vercel
  • look into https://github.com/pinojs/pino/blob/master/docs/browser.md; and pino pretty
  • site tabel shouldn't display preview ratio or any other settings
  • in deletion flow need to delete Ghost webhook
  • edit modal's default value need to be reset after update
  • refactor add site vs edit site modal, too much repeated logic
  • undo the refactor; we need to restrict what people can edit
  • edit site modal used the write mutation flow, need to change add site modal to match that
  • add add new site button to dashboard
  • set up firestore access rule for webhook creation
  • add the webhook creation into somewhere in the site registration flow
  • adjust site table to show read only content (stats etc)
  • add delete site button and logic
  • add site edit flow, through a modal

Backlog

  • show some stats/analytics for each site?
  • add site details view, as a modal?
  • display webhook status somewhere
  • add ways to create webhook later
  • test out post.unpublished and post.published event handling
  • log a list of blog topics

Optional

  • try and fix the following fireabase auth error
FirebaseAuthError: Firebase ID token has expired. Get a fresh ID token from your client app and try again (auth/id-token-expired). See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.
    at FirebaseAuthError.FirebaseError [as constructor] (/Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/utils/error.js:44:28)
    at FirebaseAuthError.PrefixedFirebaseError [as constructor] (/Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/utils/error.js:90:28)
    at new FirebaseAuthError (/Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/utils/error.js:149:16)
    at /Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/auth/token-verifier.js:212:39
    at /Users/rding/projects/ghost-utils/node_modules/jsonwebtoken/verify.js:152:16
    at getSecret (/Users/rding/projects/ghost-utils/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/Users/rding/projects/ghost-utils/node_modules/jsonwebtoken/verify.js:94:10)
    at /Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/auth/token-verifier.js:204:17
    at new Promise (<anonymous>)
    at FirebaseTokenVerifier.verifyJwtSignatureWithKey (/Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/auth/token-verifier.js:203:16)
    at /Users/rding/projects/ghost-utils/node_modules/firebase-admin/lib/auth/token-verifier.js:188:30
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  errorInfo: {
    code: 'auth/id-token-expired',
    message: 'Firebase ID token has expired. Get a fresh ID token from your client app and try again (auth/id-token-expired). See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.'
  },
  codePrefix: 'auth'