Can I vibecode Swell AI?
price $17/moyou'd save $204/yrbuild time multi-daycategory podcastingreplaced by 0 people
YES
MOATinfrastructure scaleexecution polish
The core loop is small enough for a capable coding agent to produce a useful local version in one sitting. For Swell AI, generate show notes, articles, social posts, and transcripts from uploaded episodes. The hard boundary is templates, integrations, hosted processing, and content history, plus audio infrastructure, distribution, and production polish.
In-List Ad$79/30 days
promote your product in the vibecoded listThe Build Prompt
copy it and go buildready to paste · 2,732 chars
Build a personal replacement for Swell AI in an empty repository.
Use Python 3.12, FastAPI, ffmpeg (via python-ffmpeg), SQLite, HTMX, and Tailwind CSS; do not offer alternative stacks.
DATA MODEL:
- `Episode`: id, original_filename, original_filepath, status (uploading, processing, ready, failed), created_at
- `Transcript`: id, episode_id, raw_json, formatted_text, srt_content, vtt_content, created_at
- `ContentItem`: id, episode_id, item_type (show_notes, blog_post, twitter_thread, linkedin_post), content, created_at
- `Clip`: id, episode_id, start_time_ms, end_time_ms, text, status
USER JOURNEYS & SCREENS:
1. **Dashboard (`/`)**: A clean grid showing all uploaded `Episodes`. Include a drag-and-drop zone at the top for uploading new audio/video files (MP3, WAV, MP4). Use a progress bar for active uploads.
2. **Episode Detail (`/episode/{id}`)**: A split-screen interface. Left side: Audio player with a generated waveform (use wavesurfer.js) and the interactive transcript (clicking text seeks audio). Right side: Tabs for 'Content', 'Clips', and 'Export'.
3. **Content Generation (`/episode/{id}/content`)**: Buttons to trigger generation of Show Notes, Blog Posts, and Social Threads. Display the generated text in editable textareas.
4. **Clip Editor (`/episode/{id}/clips`)**: An interface to highlight text in the transcript and click "Create Clip", which defines a start/end time. Display a list of saved clips.
TECHNICAL SPECIFICATIONS:
- Audio Processing: Use `ffmpeg` to extract audio from video and normalize loudness to -16 LUFS. Implement silence trimming and fades.
- Transcription: Integrate with OpenAI's Whisper API (`whisper-1` model) via the official Python SDK. Request word-level timestamps (`timestamp_granularities=["word"]`).
- Content Generation: Use Anthropic's Claude 3.5 Sonnet API for text generation. Prompt it with the full transcript to generate highly accurate show notes, blog posts, and viral tweets.
- Background Jobs: Since transcription and generation take time, use Python's `asyncio` and `BackgroundTasks` in FastAPI, updating the UI via HTMX polling (`hx-trigger="every 2s"`).
- Storage: Save uploaded media in a local `./media/uploads/` directory. Save exports in `./media/exports/`.
Make the first run work locally with one documented command.
Store all user data locally by default.
Put API keys (OPENAI_API_KEY, ANTHROPIC_API_KEY) in .env, ship .env.example.
Include clear empty, loading, success, and recoverable error states (e.g., API failures).
Write focused tests for the core processing pipeline and one end-to-end happy path.
Create a README with setup, architecture, and backup steps.
Do not add accounts, billing, telemetry, analytics, or a hosted control plane.In-List Ad$79/30 days
promote your product in the vibecoded listWhat you lose
- ✕Hosted infrastructure and managed operations from Swell AI
- ✕The original service's mature integrations and ecosystem
Prior art / alternatives
Why it still works
🏗️ infrastructure scale · 💅 execution polish
In-List Ad$79/30 days
promote your product in the vibecoded list