Implementation and maintenance
Source inventory and coverage
Trace documentation and captures to the audited TeachKit baseline.
On this page
Baseline
The audit records revision d8cf23d0a329b822a8aa4e16831adc1683f78283 and 113 component, hook, creator-route, utility, type, server-contract and style/configuration files. Each file has a SHA-256 hash. The source working tree is compared before and after rendering.
Audited sources
| File | Exported functions (static scan) |
|---|---|
| src/app/globals.css | No function declaration matched by scanner |
| src/app/make-class/[classId]/basic-info/page.tsx | BasicInfoPage |
| src/app/make-class/[classId]/cta/page.tsx | CTAPage |
| src/app/make-class/[classId]/email/page.tsx | EmailPage |
| src/app/make-class/[classId]/instructions/page.tsx | InstructionsPage |
| src/app/make-class/[classId]/payments/page.tsx | PaymentsPage |
| src/app/make-class/[classId]/registration/page.tsx | RegistrationPage |
| src/app/make-class/[classId]/video-lessons/page.tsx | VideoLessonsPage |
| src/app/make-class/layout.tsx | MakeClassLayout |
| src/app/make-class/page.tsx | StatsPage |
| src/components/AdminSubnav.tsx | AdminSubnav |
| src/components/AssetImage.tsx | AssetImage |
| src/components/BecomeTeacherCard.tsx | BecomeTeacherCard |
| src/components/ClientGrid.tsx | ClientGrid |
| src/components/ClientLayout.tsx | ClientLayout |
| src/components/ClientOnlyIcon.tsx | ClientOnlyIcon |
| src/components/CountdownTimer.tsx | CountdownTimer |
| src/components/CourseCard.tsx | CourseCard |
| src/components/CourseCardGrid.tsx | CourseCardGrid |
| src/components/CourseListItem.tsx | CourseListItem |
| src/components/CoursePublicLink.tsx | CoursePublicLink |
| src/components/courses-public/index.ts | No function declaration matched by scanner |
| src/components/courses-public/logged-in/ActionChecklist.tsx | ActionChecklist |
| src/components/courses-public/logged-in/CourseInformationTabs.tsx | CourseTabs |
| src/components/courses-public/logged-in/DownloadsList.tsx | DownloadsList |
| src/components/courses-public/logged-in/LinksList.tsx | LinksList |
| src/components/courses-public/logged-in/PrivateCourseView.tsx | PrivateCourseView |
| src/components/courses-public/logged-in/VideoHeader.tsx | VideoHeader |
| src/components/courses-public/logged-out/CourseAbout.tsx | CourseAbout |
| src/components/courses-public/logged-out/CourseHeader.tsx | CourseHeader |
| src/components/courses-public/logged-out/PublicCourseView.tsx | PublicCourseView |
| src/components/courses-public/logged-out/SignupSidebar.tsx | SignupSidebar |
| src/components/courses-public/shared/LessonList.tsx | LessonList |
| src/components/CourseSearchBox.tsx | CourseSearchBox |
| src/components/DeleteClassButton.tsx | DeleteClassButton |
| src/components/EmptyState.tsx | EmptyState |
| src/components/ExternalConnection.tsx | ExternalConnection |
| src/components/FeedbackForm.tsx | FeedbackForm |
| src/components/Footer.tsx | Footer |
| src/components/forms/FormField.tsx | FormField |
| src/components/forms/TextareaField.tsx | TextareaField |
| src/components/layouts/CourseEditLayout.tsx | CourseEditLayout |
| src/components/LessonItem.tsx | LessonItem |
| src/components/LoadingSpinner.tsx | LoadingSpinner |
| src/components/MainNav.tsx | MainNav |
| src/components/MessageBar.tsx | MessageBar |
| src/components/onboarding/CompletionBar.tsx | CompletionBar |
| src/components/onboarding/OnboardingStep.tsx | OnboardingStep |
| src/components/OnboardingBar.tsx | OnboardingBar |
| src/components/PageHeading.tsx | PageHeading |
| src/components/reviews/CourseReviewShowcase.tsx | CourseReviewShowcase |
| src/components/reviews/ReviewAvatar.tsx | ReviewAvatar |
| src/components/reviews/ReviewCard.tsx | ReviewCard |
| src/components/reviews/ReviewDetailModal.tsx | ReviewDetailModal |
| src/components/reviews/ReviewStars.tsx | ReviewStars |
| src/components/SaveButton.tsx | SaveButton |
| src/components/SidebarLayout.tsx | SidebarLayout |
| src/components/SidebarNav.tsx | SidebarNav |
| src/components/SidebarNavDropdown.tsx | SidebarNavDropdown |
| src/components/SortableLesson.tsx | SortableLesson |
| src/components/TeacherGuard.tsx | TeacherGuard |
| src/components/ToggleField.tsx | ToggleField |
| src/components/TrixEditor.tsx | TrixEditor |
| src/components/TrixEditorWrapper.tsx | TrixEditor |
| src/components/UserListItem.tsx | UserListItem |
| src/components/UserSidebarCard.tsx | UserSidebarCard |
| src/components/VideoSearchBox.tsx | VideoSearchBox |
| src/constants/onboarding.ts | No function declaration matched by scanner |
| src/constants/pricing.ts | No function declaration matched by scanner |
| src/constants/referrals.ts | No function declaration matched by scanner |
| src/constants/sidebars.tsx | resolveCourseSidebar, resolveManageSidebar |
| src/constants/topics.ts | No function declaration matched by scanner |
| src/hooks/useAutoSaveCourse.ts | useAutoSaveCourse |
| src/hooks/useCourseEditor.ts | useCourseEditor |
| src/hooks/useCourseRedirect.ts | useCourseRedirect |
| src/hooks/useHasActiveSubscription.ts | useSubscriptionAccess, useHasActiveSubscription |
| src/hooks/useIsClient.ts | useIsClient |
| src/hooks/useOnboardingProgress.ts | slugify, useOnboardingProgress |
| src/hooks/useOrigin.ts | useOrigin |
| src/hooks/useRequireCourseOwner.ts | useRequireCourseOwner |
| src/hooks/useSproutVideos.ts | useSproutVideos |
| src/hooks/useTiktokVideos.ts | useTiktokVideos |
| src/hooks/useVimeoVideos.ts | useVimeoVideos |
| src/hooks/useYoutubeVideos.ts | useYoutubeVideos |
| src/lib/server/courses.ts | mapCourseRow, findCourseById, findCourseByLegacySlug, findCourseForOwner, createCourse, updateCourseById, deleteCourseById, deleteCoursesForUser, listOwnedCourses, listCoursesByIds, listPublishedCourses, listLatestApprovedCourses, listApprovedCoursesByTopic, listMarketingApprovedCourses, listTeacherPublicCourses, listAdminCourses, addLesson, updateLesson, deleteLesson, reorderLessons, findLessonById, replaceLessonDownloads, incrementCourseViews |
| src/lib/server/postgres.ts | getSql, query, queryOne, toDateOnly |
| src/lib/server/referrals.ts | ensureReferralCode, resolveReferralCookieDomain, resolveMarketingSiteUrl, incrementReferralLinkMetrics, findReferralCode, recordReferralSignup, activateReferralForSubscriber, prepareReferralDiscountForCheckout, getWalletBalance, creditEligibleReferrals, getRecentReferrals, getReferralDiscountStatusForUser, parseReferralCookie, buildReferralCookie, countPendingReferralCredits |
| src/lib/server/reviews.ts | mapReviewRow, findReviewByCourseAndUser, findReviewById, upsertCourseReview, updateReviewLandingVisibility, listTeacherReviews, listLandingPageReviews |
| src/lib/server/stats.ts | incrementStats, listStats, setStats, pruneStats, findStat |
| src/lib/server/subscription.ts | getStripeSubscription, getStripeSubscriptionTier, clearStripeSubscriptionCache, refreshStripeSubscription |
| src/lib/server/tokens.ts | findTokenByHash, createToken, deleteTokensForUser, deleteExpiredTokens |
| src/lib/server/users.ts | mapUserRow, findUserById, findUserByEmail, findUserByUsername, findUsersByIds, listUsers, createUser, updateUser, deleteUser, addUserCourse, removeUserCourse, removeCourseFromStudents, findStudentsForCourses, countStudentsForCourses, getCompletedLessonIds, toggleCompletedLesson, getCompletedActionItems, toggleCompletedActionItem, setLastLesson |
| src/styles/trix-content.css | No function declaration matched by scanner |
| src/types/backblaze-b2.d.ts | No function declaration matched by scanner |
| src/types/course.ts | No function declaration matched by scanner |
| src/types/global.d.ts | No function declaration matched by scanner |
| src/types/next-auth.d.ts | No function declaration matched by scanner |
| src/types/review.ts | No function declaration matched by scanner |
| src/types/teacher.ts | No function declaration matched by scanner |
| src/types/trix-module.d.ts | No function declaration matched by scanner |
| src/types/trix.d.ts | No function declaration matched by scanner |
| src/types/user.ts | No function declaration matched by scanner |
| src/utils/asset-url.ts | ensureAssetHost |
| src/utils/buildCourseFormData.ts | buildCourseFormData |
| src/utils/buildUserFormData.ts | buildUserFormData |
| src/utils/formatDate.ts | formatDate, formatDateTime |
| src/utils/formatDuration.ts | formatDuration |
| src/utils/formatMarkdown.ts | formatMarkdown |
| src/utils/parseDateWithTimezone.ts | parseDateWithTimezone |
| src/utils/sanitizeReviewText.ts | sanitizeReviewText |
| src/utils/slugify.ts | slugify |
| src/utils/truncateHtmlContent.ts | truncateHtmlContent |
| tailwind.config.js | No function declaration matched by scanner |
Coverage
Component families group related implementations rather than asserting that every file is a fully specified public component. Creator captures use actual routes, with only their server auth layout replaced in the temporary copy. Library and learner/public captures compose actual components. Admin/student management, live billing, full authentication, review records and uploads are not verified applied demos.
Drift review
- Compare revision and per-file hashes before reusing an old capture.
- A screenshot proves appearance with its fixture, not backend correctness.
- A code-inspected accessibility feature is not a manual assistive-technology pass.
- Refresh affected documentation when props, source CSS or workflow behavior changes.
Reference downloads
Related topics
Source audit: 2026-10-07 · Revision d8cf23d0a329 · Documentation v0.1