Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
3.3 KiB
3.3 KiB
Teknav — Festival Submission Manifest
A curated subset of the Teknav source tree, chosen to demonstrate the project's
custom engineering rather than boilerplate. Original directory structure is
preserved so each file reads in context. No original files were modified — these
are copies. A mandatory security pass found no hardcoded secrets; all
credentials in the live code are read from process.env (nothing required
redaction).
Note: the repository has no top-level
README.md, so none is included.
Included files
| # | File | Description | Presentation topic |
|---|---|---|---|
| 1 | backend/src/lib/embeddings.ts |
Semantic-search core: stores normalized vectors into the ArticleEmbedding table and runs nearest-neighbor lookup using pgvector's cosine-distance operator <=> via raw SQL. |
AI / pgvector search |
| 2 | backend/src/routes/rag-gateway.ts |
RAG gateway. GET /api/v1/rag/:slug serves clean LLM-ready Markdown (custom HTML→Markdown stripper), and POST /api/v1/search/semantic exposes the vector search with rate limiting. |
RAG gateway |
| 3 | backend/prisma/schema.prisma |
Single source of truth for the data model, including the ArticleEmbedding model with the vector(1536) pgvector column and the article relation that enables semantic search. |
AI / pgvector search (schema) |
| 4 | scripts/generate-article-pages.mjs |
Build-time SEO generator. Injects a crawlable static-HTML fallback and a JSON-LD graph (NewsArticle/TechArticle + author sameAs E-E-A-T signals) into each article page — the engine behind the Zero-CDN static output. |
Zero-CDN SEO |
| 5 | teknav-app.jsx |
Custom client-side router built on React Context + the History API (pushState/popstate) — no React Router dependency. Central route dispatch for every page type. |
Custom router |
| 6 | teknav-admin.jsx |
Custom CMS / admin article editor: raw-textarea HTML editor with tag/snippet injection and Base64 image upload, role-aware controls, revisions and presence. | Custom CMS editor |
| 7 | package.json |
Frontend manifest — shows the deliberately lightweight, dependency-minimal philosophy (Vite + React, no heavy UI frameworks). | Dependency philosophy (all topics) |
| 8 | backend/package.json |
Backend manifest — Fastify + Prisma + Redis; lean server stack with no bloat. | Dependency philosophy (all topics) |
Topic → file map
- AI / pgvector semantic search:
backend/src/lib/embeddings.ts,backend/prisma/schema.prisma - RAG gateway (Markdown for LLMs):
backend/src/routes/rag-gateway.ts - Zero-CDN build-time SEO + JSON-LD:
scripts/generate-article-pages.mjs - Custom React-Context + History API router:
teknav-app.jsx - Custom CMS / admin article editor:
teknav-admin.jsx - Lightweight dependency philosophy:
package.json,backend/package.json
Security pass
- Scanned all 8 copied files for API keys, tokens, passwords, connection strings, private keys, and credential-bearing URLs.
- Result: clean. Matches found (
passwordHash,unsubscribeToken,doubleOptInToken) were Prisma column definitions, not values. - No
.envfiles, credentials, certificates,node_modules,dist,build, or.gitcontent was copied.