Campus content was coordinated in group chats and spreadsheets: a designer would export an asset to Drive, someone would paste a caption into a chat, and whoever had the account password would post it — usually late. Nobody could answer what was scheduled for next week without asking three people. The fix had to respect how the team already worked, which meant importing assets from the Google Drive they already used rather than demanding a new upload habit, and it had to enforce who may publish versus who may only draft.
We built a NestJS 11 and Bun API with a React 19 and Vite dashboard. Posts are authored once, categorised, attached to media, and scheduled — a queue picks them up at the scheduled time, so nothing depends on a person being awake. The media library imports directly from Google Drive, keeping the team's existing workflow intact. Role-based access separates drafting from publishing, and Socket.IO pushes real-time notifications when a scheduled item goes out or fails. A calendar view answers the 'what's going out this week' question without a single message.
Queue-backed publishing across platforms
Google Drive import into the media library
Designed & engineered by Manggala Code