Публікація

Крок назад та роздуми що подобається та ні в стеку для клона Reddit

Дивлюся що подобається або ні у виборі попередніх технологій для створення статичної версії Reddit

Що подобається в тих ідеях, що я озвучував в попередніх постах:

  • JSON Feed стрічки з оновленнями від користувача;
  • JSON Feed стрічки-дзеркала (мастхев: Telegram, YouTube, SoundCloud);
  • JSON Feed загальні стрічки з фіксованими темами (теми такі самі як на Reddit);
  • Користувач має список підписок та кожна стрічка-підписка завантажується користувачем окремо. Сайт не контролює список стрічок-підписок кожного користувача, лише зберігає список;
  • Кешування стрічок через WebWorker.

Що сумнівно:

  • IndexedDB, не певен що ця БД потрібна. Можно розглядати як запасний варіант, якщо WebWorker виявиться не ефективним;
  • Складання коментарів, реакцій в статику. Це більш динамічні дані, тому, здається що буде більш ефективніше класти їх в якусь реляційну БД з АПІ, накшталт Supabase.

Взагалі сама Supabase може бути непоганим рішенням як головний Source of Truth та авторизація. Потенційно які відповідальності бере на себе Supabase:

  • Утримання списка оновлень (пост, репост, коментар, реакція, підписка) в проіндексованому стані;
  • Утримання підписок користувача;
  • Авторизація через соціальні мережі;
  • Відправка сповіщень.

Тоді як Cloudflare бере на себе відповідальності:

  • Вичитування оновлень з Supabase за поточний день та створення стрічок для користувачів в статиці;
  • Утримування зображень, відео, аудіо в R2.

Клієнт (браузер) користувача відповідальний за:

  • Утримання токену авторизації користувача;
  • Зчитування підписок користувача;
  • Зчитування і показ стрічок на котрі підписан користувач.
Публікація захищена ліцензією CC BY 4.0 .