User
Write something
My Self-Hosted Tool: Vimeo Audio Extractor
What Claude and I built: Vimeo Audio Extractor A web tool that takes any public Vimeo video — either by direct link or by pasting a webpage that has a Vimeo video embedded on it — and downloads the audio as an MP3 file. The problem it solves If you have video content on Vimeo and you want the audio — for a podcast, a transcript, repurposing content — there's no native way to do that. You'd normally need a paid tool, a sketchy website, or a technical workaround. This eliminates all of that. How it works (non-technical) 1. You paste a URL into the tool 2. It detects whether that's a direct Vimeo link or a webpage with a Vimeo video embedded on it 3. If it finds one video, it goes straight to extraction. If it finds multiple, it shows you a list to pick from 4. It pulls the audio track from the video and hands it back to you as a downloadable MP3 How it works (technical) Three layers: - Frontend — a clean single-page HTML app. No frameworks, no dependencies. Just a URL input, smart detection logic, and a download button. - Backend — a Node.js Express server with two endpoints. /api/detect fetches the page HTML and scans it for Vimeo video IDs using pattern matching. /api/extract runs yt-dlp — an open source audio/video extraction tool — converts the output to MP3, and streams it back to the browser. - Infrastructure — deployed on Railway, a cloud hosting platform. The key reason Railway over alternatives: no timeout limit. Extracting audio from a video can take 20–30 seconds, which kills free-tier serverless platforms like Vercel. Railway runs a persistent server with no cutoff. What makes it a micro app It does exactly one thing. No login. No database. No subscription. You paste a link, you get a file. The entire project is five files. The build progression It went through three iterations in one session: 1. First pass — browser-only prototype using a third-party API (Cobalt). Fast to build, fragile to depend on. 2. Second pass — self-hosted Railway version with a real backend. Owned infrastructure, no third-party dependency. 3. Third pass — added smart URL detection so the tool accepts both direct Vimeo links and any webpage with an embedded video. One video auto-extracts, multiple videos shows a picker.
4
0
Two edits made to ResistanceApp.com today
1. The "Anti-Inflation" Math Fix You updated the logic in wins.html to ensure your "days sitting" count actually matches your timestamps. - The Edit: You swapped out four instances of Math.round for Math.floor in the date calculation code. - The Why: You noticed a discrepancy where a win from 36 hours ago would say "1d ago" (thanks to Math.floor), but the daysSittingCount would round up and say it had been sitting for 2 days. You wanted to stop that "inflation of sitting days" so the data feels honest and consistent across the app. 2. Privacy Mode & The "One Thing" Input You also tweaked how Privacy Mode behaves in the Tada section of the app. - The Edit: You modified app.html to add the One Thing input and empty state text to the privacy blur list. - The Why: You realized that while the Arena and Lab sections were blurring correctly, the specific "One Thing" you picked was still visible when Privacy Mode was toggled on. You wanted to make sure that if you’re in a public space (or just want that privacy layer), everything—including your current focus—actually stays hidden. Note on what you kept: You intentionally kept the "9 days sitting" (.resistance-age) and habit meta (.habit-meta) unblurred in the Arena/Lab, as those classes were already excluded from the blur rules.
Two edits made to ResistanceApp.com today
10-Minute Build: YouTube URL Converter
So, one of my workflows involves me needing a specific version of a URL link for YouTube. I got tired of manually doing it, so I created a website where I can just type in the URL, and it will do it automatically. Cost to build: $0 (included in Claude subscription) Cost to run: $0 🟡 Workflow transcribed by my Littlebird AI 👇👇👇 1️⃣ The Build (with Claude) - You jumped into Claude and explained the specific conversion logic you needed: taking a /live/ YouTube URL (like youtube.com/live/[VIDEO_ID]?feature=share) and extracting the video ID to rebuild it as a standard watch?v= URL. - Claude immediately wrote a clean, single-page index.html file for you. - You had Claude bake in SEO and AEO (Answer Engine Optimization), including Open Graph tags, FAQPage schema, and WebApplication schema so AI search engines like Perplexity and ChatGPT would understand the tool. - You also made sure the footer included links to your LinkedIn and your Vibe Code on the Cheap Skool community. 2️⃣ Pushing to GitHub - You created a new private repository on GitHub called youtube-live-converter. - Instead of dealing with the command line, you used the web interface to drag, drop, and upload the index.html file directly into the main branch. 3️⃣ Deploying via Vercel - You immediately headed over to Vercel and clicked "Import from GitHub." - You selected the new youtube-live-converter repository and deployed it under your personal projects workspace. - The build took just about 3 seconds, making the app instantly live at youtube-live-converter.vercel.app. 4️⃣ The Final Polish & Indexing - Once the Vercel domain was generated, Claude reminded you to go back into the index.html file and update three specific spots with your live URL (https://youtube-live-converter.vercel.app): the canonical tag, the og:url, and the WebApplication schema URL. - You pushed those final updates to GitHub, which automatically triggered a redeployment on Vercel. - Finally, you discussed dropping the new URL into your existing Google Search Console account to speed up the indexing process so people can actually find it.
10-Minute Build: YouTube URL Converter
1-3 of 3
powered by
Vibe Code On The Cheap
skool.com/vibe-code-on-the-cheap-6934
Build your own apps w/ Claude Code, Codex + Lovable. Solve your exact friction, save tokens, and run them forever for $0. Use SEARCH BAR for help.
Build your own community
Bring people together around your passion and get paid.
Powered by