Platform Updates

What's new across ktown.team

2026-04-03 / 2026-04-05

Landing Page

  • 0
    Language pills changed from navigation links to inline page translation (10 languages)
  • 0
    Copy rewritten — shorter, idiomatic per language, not word-for-word
  • 0
    CTA shortened to "Visit Website" (translated per language)
  • 0
    Mobile: reduced top padding, fixed language pill alignment, RTL for Arabic/Farsi
  • 0
    CSS inlined for performance, preconnect to cdn.ktown.cloud
  • 0
    SEO: canonical, OG, Twitter card, Organization schema, sitemap.xml, robots.txt updated
  • 0
    Deployed to live

Homepage

  • 0
    Blog featured card background image added with gradient overlay
  • 0
    SEO: canonical, OG tags, og:image, sitemap.xml added
  • 0
    Deployed to live

News New

  • 0
    Built from scratch: FastAPI + SQLite + Jinja2, port 2100
  • 0
    5 collectors: Google Alerts RSS, Brave Search, Brave News, Tavily, Exa
  • 0
    156 stories collected, categorized across 8 categories
  • 0
    Spanish translations for all 156 stories
  • 0
    Briefing dashboard: "Today in Koreatown", content lanes, spotlight, ticker
  • 0
    Category nav: Safety, Housing & Development, Business & Food, Government & Civic, Streets & Transit, Life & Culture, Events, Schools & Youth
  • 0
    Category filter pages
  • 0
    Clean title filter stripping source suffixes
  • 0
    RSS feed (/feed.xml) with XML escaping and clean title filtering
  • 0
    Sitemap (314 URLs, URL-encoded for Unicode slugs)
  • 0
    Dev notice modal ("News page is being developed")
  • 0
    Ticker bar with animated scroll (speed tuned to 80s), golden LATEST label
  • 0
    Content lanes architecture: compact list for Need to Know, card grids for others
  • 0
    Briefing module: lead story + secondaries + category rail
  • 0
    SEO: canonical, OG, NewsArticle schema, robots.txt, cross-subdomain footer
  • 0
    Design iterated from hero-dominant → briefing dashboard based on feedback

Events New

  • 0
    Built from scratch: FastAPI + SQLite + Jinja2, port 4040
  • 0
    16 sample Koreatown events seeded
  • 0
    8 categories: Cultural, Community, Food & Markets, Arts, Education, Wellness, Family, Civic
  • 0
    Homepage: hero, featured grid, weekend strip, upcoming grid
  • 0
    Event detail pages with Event schema
  • 0
    Bilingual EN/ES
  • 0
    Design iterated 3x: mint → borderless → brand-aligned indigo palette
  • 0
    Final palette: 65% neutrals, 25% brand indigo, 10% muted category accents
  • 0
    PM2 managed, port 4040
  • 0
    Project documentation created (doc/README.md)
  • 0
    SEO: canonical, OG, Event schema, sitemap, robots.txt, cross-subdomain footer
  • 0
    Not yet deployed to production

Wiki

  • 0
    Root redirect improved with title, meta description, canonical
  • 0
    Base template: canonical, OG, Twitter card, structured_data block added
  • 0
    Article template: Article schema override added
  • 0
    Build script: canonical_path and page_description passed per page
  • 0
    Build script fix: sqlite3.Row .get() → bracket access for compatibility
  • 0
    420 pages rebuilt and deployed to live

Blog

  • 0
    Base template: canonical tag, BreadcrumbList schema added
  • 0
    Post template: BlogPosting schema added
  • 0
    robots.txt created and deployed
  • 0
    42 pages rebuilt (7 new posts) and deployed to live

Resources

  • 0
    Title updated, meta description, canonical, OG tags added
  • 0
    Cross-subdomain footer links added on live server

Data

  • 0
    Title updated, canonical, OG tags added
  • 0
    WebSite structured data added
  • 0
    Deployed to live

Ask

  • 0
    Canonical, OG tags added to HTML response
  • 0
    /robots.txt and /sitemap.xml routes added
  • 0
    Cross-subdomain footer links added to render_frontend()
  • 0
    Restarted with updates

Q&A

  • 0
    Sitemap expanded from 1 URL to 223 URLs
  • 0
    Deployed to live

Photos

  • 0
    Canonical tag added on live server
  • 0
    robots.txt created

Weather

  • 0
    Title updated, meta description, canonical, OG tags added on live server
  • 0
    robots.txt created
  • 0
    Cross-subdomain footer links added on live server

Presentations

  • 0
    Meta description, canonical, OG tags added on live server
  • 0
    robots.txt created

AI

  • 0
    noindex meta tag added
  • 0
    Deployed to live

Links

  • 0
    noindex meta tag added on live server

updates.ktown.team New

  • 0
    Built from scratch: FastAPI + SQLite, port 4050
  • 0
    Parses CHANGELOG.md into static HTML per language (EN/ES)
  • 0
    HN-style features: upvote/downvote per item, inline comments
  • 0
    API endpoints: /api/items, /api/vote, /api/comment
  • 0
    80 update items seeded from changelog
  • 0
    One vote per fingerprint (toggle/flip), green/red count display
  • 0
    SEO: canonical, OG, WebSite schema, sitemap, robots.txt, cross-subdomain footer
  • 0
    PM2 managed, Cloudflare DNS configured

SEO Project

  • 0
    Created /var/www/seo/ with audit tools and documentation
  • 0
    audit.py — crawler checking robots, sitemap, canonical, OG, schema, cross-links
  • 0
    Baseline audit: 66 issues across 16 subdomains
  • 0
    Pass 2 audit: reduced to ~5 issues
  • 0
    Master plan: strategy, roles, 30/60/90 roadmap
  • 0
    Implementation blueprint: template contracts, fix priorities, multilingual strategy

Infrastructure

  • 0
    Platform directory created: /var/www/platform/home/DIRECTORY.md
  • 0
    Full backup to /media/sero/HelloPassHDD/Backup/cpanel/2026-04-04/ (4GB)
  • 0
    Backup process documented at /media/sero/HelloPassHDD/Backup/docs/cpanel_process.md

og:image

  • 0
    Created og-image.jpg from hero.jpg for ktown.team and preview.ktown.team
  • 0
    Fixed ktown.team og:image reference (was pointing to link redirect)