Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
5.4 KiB
5.4 KiB
Teknav Growth Plan: Phase 15 (Viewership & Top-of-Funnel Scaling)
This document outlines the detailed architectural and implementation plan for massively scaling Teknav's viewer base and organic reach. This plan strictly adheres to the core constraints: Zero CDNs, Persian-first RTL, and native Linux deployments.
1. Google Web Stories Integration
Web Stories are full-screen, tappable visual narratives indexed by Google Discover and Search. They are extremely effective for driving mobile traffic.
1.1 Backend: Automated Story Generation
scripts/generate-web-stories.mjs: Create a new build script that iterates through published articles inteknav-data.js(or database) and generates static AMP HTML files for each story.- Content Chunking: Utilize the existing article structure to break content into 4-7 "slides" per article:
- Slide 1: Cover (High-res
og:image, Article Title, Author, "Swipe up to read"). - Slide 2-N: Key headings and brief summaries.
- Final Slide: "Read the full technical deep-dive on Teknav", with a call-to-action link to the canonical article.
- Slide 1: Cover (High-res
- AMP Validation: The generated HTML must strictly follow the
<html amp>specification, using valid<amp-story>tags and local, non-CDN assets.
1.2 Frontend & SEO Artifacts
- Sitemap Integration: Update
scripts/generate-seo.mjsto include a new<urlset>specifically for/stories/*in the mainsitemap.xml. - Article Linkage: In
generate-article-pages.mjs, inject<link rel="amphtml" href="https://www.teknav.ir/stories/:slug">into the<head>of the standard article HTML so Google knows a story version exists. - Local Assets Check: Ensure all swipe animations and video/image assets used in the stories are served from
/public/images/storiesand bypass external CDNs.
2. Social Virality & Embeddable Widgets
We want to empower readers to share snippets visually, and allow other websites to easily embed Teknav data.
2.1 Auto-Generated Quote Cards
- UI Component (
QuoteSharer.jsx): A new React component that appears as a tooltip when a user highlights text on an article page (similar to Medium). - Client-Side Rendering (Canvas): When the user clicks "Share Quote", utilize the native HTML5
<canvas>API to draw a branded quote card.- Background: Teknav dark-mode gradient.
- Text: The highlighted text in Persian (RTL).
- Footer: Teknav logo, Article Title, and a QR code/shortlink.
- Export: The user can instantly download the image (
.png) or share it directly via the Web Share API.
2.2 Embeddable Teknav Widgets
- Widget Route (
/embed/*): Create a standalone React entry point (embed.html->embed.jsx) that strips away the header, footer, and sidebars, leaving only pure data presentation. - Supported Widget Types:
/embed/glossary/:slug: Displays a definition card for a tech term./embed/company/:slug: Displays a company profile card with verification badges./embed/article-card/:slug: Displays a mini-preview of an article.
- Cross-Origin Configuration: Update the Nginx configuration (
/etc/nginx/sites-available/teknav) to explicitly allowX-Frame-Optionsfor/embed/*paths, while keeping the rest of the site protected against clickjacking. - Branding & Backlinks: Every widget must contain a non-removable
<a href="https://www.teknav.ir..." target="_blank">link back to the canonical Teknav page to drive SEO value from embedded domains.
3. Programmatic SEO & Data Hubs
Leveraging the existing Tech Directory and Glossary models to generate thousands of high-intent search pages.
3.1 Comparison Pages Engine ("X vs Y")
- Data Model: Create a mapping system (either in
teknav-data.jsor via a new PrismaComparisonmodel) that pairs similar glossary terms or companies (e.g., "Next.js vs Remix", "PostgreSQL vs MongoDB"). - Template (
ComparisonPage.jsx): A highly optimized, static layout that dynamically pulls the definitions, pros/cons, and related articles for both entities and displays them side-by-side. - Build Generation (
scripts/generate-comparisons.mjs): Loop through all valid comparison pairs and pre-render them to static HTML (dist/compare/x-vs-y/index.html) to guarantee instant load times and indexability.
3.2 Dynamic "Top Tools" Aggregation
- Category Taxonomy: Ensure
CompanyProfileentries have strict industry tags (e.g., "AI", "Fintech", "Cloud"). - Listicles (
TopicHub.jsxextension): Automatically generate programmatic listicle pages based on tags.- Route example:
/directory/category/artificial-intelligencegenerating the SEO title: "Top Persian Artificial Intelligence Startups & Tools".
- Route example:
- Structured Data: Inject
ItemListandCollectionPageJSON-LD schemas into these programmatic pages so Google parses them as official rankings/lists in search results.
4. Execution Order & Verification
- Phase 15A: Write
scripts/generate-web-stories.mjsand deploy Google Stories to establish a presence in Google Discover. - Phase 15B: Build the
/embed/*routes and Nginx frame allowances, then deploy the Client-Side Quote Card generator. - Phase 15C: Extend static generation scripts for programmatic comparison pages and directory listicles.
- Validation: Run
npm run preflight:prodand ensure no external CDN scripts crept in (especially critical for AMP valid HTML). Test embed iFrames in a blank local HTML file.