Skip to content

feat: migrate from React/TanStack Start to SvelteKit 5#15

Open
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1779739897-svelte-migration
Open

feat: migrate from React/TanStack Start to SvelteKit 5#15
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1779739897-svelte-migration

Conversation

@devin-ai-integration
Copy link
Copy Markdown

Summary

Full rewrite of the hakapit website from React 19 + TanStack Router/Start to SvelteKit 2 + Svelte 5 (runes).

What changed:

  • Framework: React → Svelte 5 with $state, $derived, $effect, $props runes
  • Meta-framework: TanStack Start → SvelteKit 2 (file-based routing, SSR, API routes)
  • Deployment: @sveltejs/adapter-vercel for Vercel
  • Linting: oxlint → ESLint + Prettier with svelte plugins
  • Build: Vite 8 + React plugin → Vite 6 + SvelteKit plugin

What's preserved:

  • All pages: home (trophies, next match, league standings, chat), podcast feed, episode detail, latest episode
  • Tailwind CSS v4 with identical theme variables per podcast (hakapit/nitk/balcony-albums)
  • RTL Hebrew layout
  • Audio player with Svelte context API (was React context)
  • Floating chat component with Gemini AI
  • Football-data.org API integration (standings, next match, form)
  • RSS feed parsing for episodes
  • Convex client setup (dynamic env)
  • Multi-podcast theme switching

Routes:

Path Description
/ Home page — trophies, next match, league tables, chat
/[podcast] Podcast episodes feed
/[podcast]/episodes/[id] Episode detail
/[podcast]/latest Latest episode
/api/chat Gemini AI chat endpoint

Build status: svelte-check passes with 0 errors, 0 warnings. vite build succeeds.

Review & Testing Checklist for Human

  • Verify Vercel deployment picks up sveltekit framework and env vars are set (HAKAPIT_RSS, NITK_RSS, BALCONY_RSS, FOOTBALL_DATA_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, CONVEX_URL)
  • Test home page loads with trophies, next match, and league standings
  • Navigate between podcast pages (/hakapit, /nitk, /balcony-albums) and confirm theme colors switch
  • Open an episode detail page and verify audio playback works
  • Test the floating chat ("שאל אותי על ליברפול") sends and receives AI responses
  • Confirm RTL layout renders correctly (Hebrew text direction)

Recommended test plan: Deploy to Vercel preview, visit each page, switch between podcasts, play an episode, and try the chat widget.

Notes

  • All environment variables now use $env/dynamic/private so the build doesn't fail when they're missing — they're resolved at runtime
  • The convex/ folder is kept as-is since it's the backend schema
  • Added typecheck script alias that runs svelte-check for CI compatibility
  • Vercel cron paths /api/load and /api/notify are not yet ported (the warning is expected)

Link to Devin session: https://app.devin.ai/sessions/c1478829a40e48049e235f972c8c8c8c
Requested by: @ItamarShDev

- Replace React + TanStack Router/Start with SvelteKit 2 + Svelte 5 (runes)
- Port all pages: home, podcast feed, episode detail, latest episode
- Port all components using Svelte 5 runes ($state, $derived, $effect, $props)
- Keep Tailwind CSS v4 with identical theme variables and styles
- Maintain RTL Hebrew layout and multi-podcast theme switching
- Port audio player using Svelte context API
- Port floating chat component with Gemini AI API
- Port soccer API integration (league standings, next match, form)
- Port RSS feed parsing for podcast episodes
- Port transfers display component
- Port trophies section
- Set up Vercel adapter for deployment
- Add ESLint + Prettier for Svelte
- svelte-check passes with 0 errors and 0 warnings
- Build succeeds

Co-Authored-By: Itamar Sharify <itamarsharify@gmail.com>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@vercel
Copy link
Copy Markdown

vercel Bot commented May 25, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hakapit Ready Ready Preview May 25, 2026 8:24pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant