<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng" -->

---
title: Build and Deploy a Full Stack Learning Platform | Search...
description: A long-form build-along video walks through creating Vertex, a full-stack learning platform with plain-English video search that jumps to the exact timestamp...
canonical: https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Build and Deploy a Full Stack Learning Platform | Search Any Video, Jump to the Exact Second | daily.dev
og:description: A long-form build-along video walks through creating Vertex, a full-stack learning platform with plain-English video search that jumps to the exact timestamp...
og:url: https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng
og:image: https://api.daily.dev/og/posts/G9ImZF7NG.png
og:image:alt: Build and Deploy a Full Stack Learning Platform | Search Any Video, Jump to the Exact Second
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Build and Deploy a Full Stack Learning Platform | Search Any Video, Jump to the Exact Second

**[JavaScript Mastery](https://daily.dev/sources/javascriptmastery)** · 164 min read · 4 upvotes · 0 comments

## Summary

A long-form build-along video walks through creating Vertex, a full-stack learning platform with plain-English video search that jumps to the exact timestamp where a topic is taught. The workflow centers on using AI coding agents systematically: installing agent skills for tools like Sanity and Clerk, writing a detailed agents.md project context file, and having the AI draft implementation prompts for review before coding. The stack includes Next.js, TypeScript, Tailwind, Sanity (as CMS/admin studio), Clerk (auth), PostHog (analytics), and CodeRabbit (automated security/PR review). Steps covered include project scaffolding, design system implementation from AI-generated mockups, homepage build, Clerk authentication setup, and initial Sanity content modeling for courses, modules, lessons, instructors, and categories. The video promotes a paid course for a deeper, production-grade version of this agentic workflow.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=8DfvwZ812dM>

## Questions this post answers

### How can I make video content searchable down to the exact timestamp where a topic is discussed?

Structured video documents are stored with chapter markers and transcript chunks, each tagged with a start second and a reference back to its lesson. An offline ingestion script fetches captions and chapter data per video, splits transcripts into roughly 45-second, 350-character chunks without breaking mid-sentence, and stores them so a search query can resolve to a real seekable moment rather than scanning raw transcripts live.

_Developers building timestamp-accurate video search can find implementation patterns like this through daily.dev._

### What security risks does an AI-powered search API that calls an LLM with tool access introduce?

A public search endpoint that spins up an OpenAI call with an MCP tool loop on every request has no inherent rate limit, concurrency cap, or budget guard, so a simple scripted attack can turn cheap HTTP requests into an expensive night of model billing. A separate risk arises when an analytics reverse proxy shares the same origin as the app, causing browsers to attach session cookies (like Clerk's) to analytics traffic and cross a trust boundary.

_Teams shipping AI-backed endpoints track this class of cost and cookie-leak vulnerability via daily.dev before it hits production._

### Why did Next.js rename middleware to proxy starting in a recent version?

Next.js renamed the middleware convention to proxy starting with Next.js 16 to better reflect its actual purpose: reading the session cookie, verifying the JWT, running the authentication handshake when a token is missing or expired, and attaching resolved auth state to the request so downstream server components can read it without reverifying, rather than acting as a security gate itself.

_Developers upgrading Next.js apps track naming and behavior changes like this on daily.dev before code breaks._

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#nextjs](https://daily.dev/tags/nextjs)

[View this post on daily.dev](https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Build and Deploy a Full Stack Learning Platform | Search Any Video, Jump to the Exact Second","url":"https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng"},"datePublished":"2026-08-21T12:12:38.099Z","dateModified":"2026-09-13T20:10:15.429Z","description":"A long-form build-along video walks through creating Vertex, a full-stack learning platform with plain-English video search that jumps to the exact timestamp...","image":"https://i.ytimg.com/vi/8DfvwZ812dM/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/8DfvwZ812dM/sddefault.jpg","isAccessibleForFree":true,"articleSection":"JavaScript Mastery","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"JavaScript Mastery","logo":"https://media.daily.dev/image/upload/s--i6Ls5Q5_--/f_auto/v1724338715/logos/javascriptmastery","url":"https://daily.dev/sources/javascriptmastery"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,nextjs","timeRequired":"PT164M","video":{"@type":"VideoObject","name":"Build and Deploy a Full Stack Learning Platform | Search Any Video, Jump to the Exact Second","description":"A long-form build-along video walks through creating Vertex, a full-stack learning platform with plain-English video search that jumps to the exact timestamp...","thumbnailUrl":"https://i.ytimg.com/vi/8DfvwZ812dM/sddefault.jpg","uploadDate":"2026-08-21T12:12:38.099Z","duration":"PT164M","url":"https://api.daily.dev/r/G9ImZF7NG","embedUrl":"https://www.youtube.com/embed/8DfvwZ812dM"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"JavaScript Mastery","item":"https://daily.dev/sources/javascriptmastery"},{"@type":"ListItem","position":3,"name":"Build and Deploy a Full Stack Learning Platform | Search Any Video, Jump to the Exact Second"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/build-and-deploy-a-full-stack-learning-platform-search-any-video-jump-to-the-exact-second-g9imzf7ng#faq","mainEntity":[{"@type":"Question","name":"How can I make video content searchable down to the exact timestamp where a topic is discussed?","acceptedAnswer":{"@type":"Answer","text":"Structured video documents are stored with chapter markers and transcript chunks, each tagged with a start second and a reference back to its lesson. An offline ingestion script fetches captions and chapter data per video, splits transcripts into roughly 45-second, 350-character chunks without breaking mid-sentence, and stores them so a search query can resolve to a real seekable moment rather than scanning raw transcripts live. Developers building timestamp-accurate video search can find implementation patterns like this through daily.dev."}},{"@type":"Question","name":"What security risks does an AI-powered search API that calls an LLM with tool access introduce?","acceptedAnswer":{"@type":"Answer","text":"A public search endpoint that spins up an OpenAI call with an MCP tool loop on every request has no inherent rate limit, concurrency cap, or budget guard, so a simple scripted attack can turn cheap HTTP requests into an expensive night of model billing. A separate risk arises when an analytics reverse proxy shares the same origin as the app, causing browsers to attach session cookies (like Clerk's) to analytics traffic and cross a trust boundary. Teams shipping AI-backed endpoints track this class of cost and cookie-leak vulnerability via daily.dev before it hits production."}},{"@type":"Question","name":"Why did Next.js rename middleware to proxy starting in a recent version?","acceptedAnswer":{"@type":"Answer","text":"Next.js renamed the middleware convention to proxy starting with Next.js 16 to better reflect its actual purpose: reading the session cookie, verifying the JWT, running the authentication handshake when a token is missing or expired, and attaching resolved auth state to the request so downstream server components can read it without reverifying, rather than acting as a security gate itself. Developers upgrading Next.js apps track naming and behavior changes like this on daily.dev before code breaks."}}]}
```

