{"id":1756,"date":"2026-01-20T13:21:10","date_gmt":"2026-01-20T11:21:10","guid":{"rendered":"https:\/\/pecodesoftware.com\/blog\/?p=1756"},"modified":"2026-01-20T13:40:02","modified_gmt":"2026-01-20T11:40:02","slug":"case-study-saas-platform-for-distraction-free-educational-video-sharing","status":"publish","type":"post","link":"https:\/\/pecodesoftware.com\/blog\/case-study-saas-platform-for-distraction-free-educational-video-sharing\/","title":{"rendered":"Case Study: \u2028Modestly Platform"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Project summary<\/h2>\n\n\n\n<p>Modestly is a web-based platform designed to help educators, schools, and parents share educational video content in a safe, branded, and distraction-free environment \u2014 eliminating YouTube recommendations, comments, autoplay, and ads.<\/p>\n\n\n\n<p>It consists of two complementary products:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mdst-central<\/strong> \u2014 a fully featured multi-tenant platform for schools and organizations, with user role management, content control, and analytics.<br><\/li>\n\n\n\n<li><strong>mdst-individual<\/strong> \u2014 a simplified solution for personal users, allowing them to generate branded, clutter-free video pages without creating an organization.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-11-1024x539.png\" alt=\"modestly platform\" class=\"wp-image-1750\" srcset=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-11-1024x539.png 1024w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-11-300x158.png 300w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-11-768x404.png 768w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-11-1536x809.png 1536w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-11-2048x1078.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem it Solves<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>YouTube isn\u2019t built for classrooms \u2014 ads, comment sections, and related videos distract students.<br><\/li>\n\n\n\n<li>No access control on shared links \u2014 making it hard to limit who sees what.<br><\/li>\n\n\n\n<li>Schools and educators lack control over video experiences they send to students.<\/li>\n<\/ul>\n\n\n\n<p>Modestly addresses these with a secure, customizable platform that allows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Safe, branded video links<br><\/li>\n\n\n\n<li>Access control with blacklist\/whitelist logic<br><\/li>\n\n\n\n<li>Admin dashboards and organizational management<br><\/li>\n\n\n\n<li>Rich analytics on views and usage<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Responsibilities<\/h2>\n\n\n\n<p>As part of the development team, I worked on both <strong>mdst-central<\/strong> and <strong>mdst-individual<\/strong>, focusing on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Frontend polishing and bug fixes to stabilize the production-ready MVP<br><\/li>\n\n\n\n<li>Legacy code refactoring to streamline maintenance and scalability<br><\/li>\n\n\n\n<li>Performance optimization by reducing unnecessary requests and speeding up load times<br><\/li>\n\n\n\n<li>Implementation of blacklist and CAPTCHA logic for access control and abuse prevention<br><\/li>\n\n\n\n<li>Unifying UI components and layout to ensure consistency across the entire platform<br><\/li>\n\n\n\n<li>Setting up feature flag logic and secure guard mechanisms to manage rollout and access<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-8-1024x539.png\" alt=\"\" class=\"wp-image-1747\" srcset=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-8-1024x539.png 1024w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-8-300x158.png 300w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-8-768x404.png 768w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-8-1536x809.png 1536w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-8-2048x1078.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Features Delivered<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Access Control &amp; Roles<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Organization admins can invite users, assign roles, and manage access<br><\/li>\n\n\n\n<li>Guard logic enforces tenant-level permissions and blacklists<br><\/li>\n\n\n\n<li>Google OAuth login and Cloudflare CAPTCHA for secure onboarding<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Branded Video Sharing<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each link has a branded landing page with school logo, theme, and custom legal text<br><\/li>\n\n\n\n<li>Videos are embedded without comments, recommendations, or autoplay<br><\/li>\n\n\n\n<li>Links can be password-protected and limited by time or usage<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Video Library &amp; Management<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Users can save and categorize video content into a searchable resource library<br><\/li>\n\n\n\n<li>Filtering, tagging, and metadata tools simplify content organization<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Analytics &amp; Dashboards<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Master admin dashboard to oversee platform-wide usage<br><\/li>\n\n\n\n<li>Tenant-level insights on video views, engagement, user activity, and more<br><\/li>\n\n\n\n<li>Mixpanel used for granular event tracking and insight generation<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Admin Panel &amp; System Tools<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Feature flags system allows selective rollout of platform features<br><\/li>\n\n\n\n<li>Blacklist manager to restrict users or video links<br><\/li>\n\n\n\n<li>Centralized user and tenant management interface<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-12-1024x539.png\" alt=\"modestly platform\" class=\"wp-image-1749\" srcset=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-12-1024x539.png 1024w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-12-300x158.png 300w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-12-768x404.png 768w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-12-1536x809.png 1536w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-12-2048x1078.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technical Challenges &amp; Solutions<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Multi-Tenant Architecture<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Implemented clear separation between master and tenant scopes<br><\/li>\n\n\n\n<li>Context-aware routing and permissions<br><\/li>\n\n\n\n<li>Synced Supabase types and schemas between frontend and backend to avoid drift<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Secure Video Sharing<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Built CAPTCHA logic and rate limiting for protection<br><\/li>\n\n\n\n<li>Password-based link control and user-level access restriction<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Performance Optimization<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Used React Query for efficient caching and background updates<br><\/li>\n\n\n\n<li>Applied lazy loading and modular data fetching for speed improvements<br><\/li>\n\n\n\n<li>Reduced frontend\/API noise and optimized initial load<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Architecture Evolution<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Refactored boilerplate into a modular, scalable SaaS structure<br><\/li>\n\n\n\n<li>Introduced clean domain modeling and layered type definitions for Supabase entities<br><\/li>\n\n\n\n<li>Synchronized DB types with frontend models to prevent runtime bugs<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-9-1024x539.png\" alt=\"modestly platform\" class=\"wp-image-1748\" srcset=\"https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-9-1024x539.png 1024w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-9-300x158.png 300w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-9-768x404.png 768w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-9-1536x809.png 1536w, https:\/\/pecodesoftware.com\/blog\/wp-content\/uploads\/2026\/01\/Modestly-platform-visual-9-2048x1078.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tech Stack<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>React<\/strong><\/li>\n\n\n\n<li><strong>Tailwind CSS<\/strong><\/li>\n\n\n\n<li><strong>shadcn\/ui<\/strong><\/li>\n\n\n\n<li><strong>Supabase (PostgreSQL + Edge Functions)<\/strong><\/li>\n\n\n\n<li><strong>React Query<\/strong><\/li>\n\n\n\n<li><strong>Google OAuth 2.0<\/strong><\/li>\n\n\n\n<li><strong>Cloudflare CAPTCHA<\/strong><\/li>\n\n\n\n<li><strong>Mixpanel<\/strong><\/li>\n\n\n\n<li><strong>Vite<\/strong><\/li>\n\n\n\n<li><strong>TypeScript<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Results<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Delivered a production-ready SaaS product for both organizational and individual users<br><\/li>\n\n\n\n<li>Built a flexible multi-tenant system with branded video experiences<br><\/li>\n\n\n\n<li>Provided strong access control, secure link sharing, and real-time analytics<br><\/li>\n\n\n\n<li>Created a scalable foundation with optimized performance and clean architecture<br><\/li>\n\n\n\n<li>Enabled schools and educators to control their digital classroom environment with confidence<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Project summary Modestly is a web-based platform designed to help educators, schools, and parents share educational video content in a safe, branded, and distraction-free environment \u2014 eliminating YouTube recommendations, comments, autoplay, and ads. It consists of two complementary products: Problem it Solves Modestly addresses these with a secure, customizable platform that allows: Responsibilities As part [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1746,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[11,24,23],"tags":[],"class_list":["post-1756","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-studies","category-ux-ui","category-web"],"acf":[],"_links":{"self":[{"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1756"}],"collection":[{"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=1756"}],"version-history":[{"count":6,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1756\/revisions"}],"predecessor-version":[{"id":1766,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1756\/revisions\/1766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/media\/1746"}],"wp:attachment":[{"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=1756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=1756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pecodesoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=1756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}