TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Audioscrape: Building in Rust When Everyone Said I Shouldn't

90 点作者 lukaesch7 个月前
I&#x27;m excited to share my journey of bootstrapping Audioscrape, a podcast exploration platform, built entirely in Rust. Despite conventional wisdom suggesting RoR, Python, or TypeScript for rapid MVP development, I chose Rust to challenge myself technically and optimize for low operational costs. The result? A performant application running on a $7&#x2F;month VM, demonstrating that you can launch lean and scale efficiently.<p>Why Rust for a Bootstrapped MVP?<p>Cost-Efficiency: Minimal resource usage translates to lower hosting costs, crucial for bootstrapping.<p>Performance: Efficient handling of audio processing and web serving, allowing for growth without immediate infrastructure scaling.<p>Learning Investment: Deepening expertise in a language with growing demand, potentially opening future opportunities.<p>Proving a Point: Demonstrating Rust&#x27;s viability for rapid development in web applications.<p>Project Overview:<p>Audioscrape aggregates podcast RSS feeds, transcribes episodes, and provides an interactive interface for exploring and discussing podcast content. It&#x27;s a full-stack Rust application, leveraging various crates from the ecosystem.<p>Technical Stack:<p>Backend: Axum (async web framework)<p>Database: SQLite with SQLx for type-safe queries<p>Authentication: OAuth2<p>Image Processing: For social media previews<p>HTML Templating: Askama<p>Async Runtime: Tokio<p>Development Approach:<p>4k LoC in a single main.rs file (plus HTML templates)<p>Rapid iteration using Neovim for navigation<p>Lean development: No external services beyond the VM<p>Key Features:<p>Transcription Browsing: Read along with your favorite podcasts or quickly scan for topics of interest.<p>Segment Highlighting: Share and discuss specific moments from episodes.<p>Community Interaction: Upvote, comment on, and bookmark your favorite segments.<p>Advanced Search: Find relevant content across multiple podcasts and episodes.<p>Person Profiles: Explore appearances of specific guests or hosts across different shows.<p>Challenges and Learnings:<p>Overcoming the learning curve of Rust&#x27;s ownership model<p>Efficient transcriptions and speaker detection<p>Managing all aspects solo: Development, design, and operations<p>Future Plans:<p>API for third-party integrations<p>WebAssembly for client-side processing<p>Scaling strategies for larger datasets (search)<p>Personalized content delivery<p>Metrics and Goals:<p>Current Users: 500 (last 7 days)<p>MRR: $0<p>Cost per User: Less than $0.01 (thanks to efficient resource use)<p>Next Milestone: Add paid features to pay the bills + reduce cost per episode page creation<p>Questions for the HN Community:<p>Has anyone else bootstrapped using Rust? What were your experiences?<p>How do you balance technical debt vs. shipping features in a solo project?<p>What strategies have worked for you in marketing such technical products?<p>I&#x27;m bootstrapping this project and would greatly appreciate any feedback, especially from those who&#x27;ve launched similar technical products or used unconventional tech stacks for MVPs. Check out Audioscrape at www.audioscrape.com and let me know your thoughts!

15 条评论

lyang28217 个月前
I bootstrapped Lapdev (<a href="https:&#x2F;&#x2F;lap.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;lap.dev&#x2F;</a>) all in Rust too. Axum for the backend and Leptos for the frontend. Sharing structs between backend and frontend is quite nice.<p>Besides the memory safety, type system etc, Rust gives you the confidence that you know it can scale in pretty much all scenarios in terms of performance.
评论 #41770649 未加载
bsnnkv7 个月前
I bootstrapped Notado[1][2] and Kullish[3] in Rust. Best tech stack decisions I ever made.<p>Similar setups (Rocket and Actix instead of Axum, Tera instead of Askama, Diesel instead of SQLx) and overall experience (incredibly cheap, reliable, and since these projects have been running a long time, amazingly easy to return to the codebases after months&#x2F;years and make changes with a high level of confidence).<p>I distinctly remember how happy I felt the first time I realized that I had enough paying subscribers to offset the cost of the running the service!<p>[1]: <a href="https:&#x2F;&#x2F;notado.app" rel="nofollow">https:&#x2F;&#x2F;notado.app</a><p>[2]: it had a decent amount of HN discussion last week - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=41697228">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=41697228</a><p>[3]: <a href="https:&#x2F;&#x2F;kulli.sh" rel="nofollow">https:&#x2F;&#x2F;kulli.sh</a>
评论 #41770593 未加载
echelon7 个月前
Love your story here! You&#x27;re not doing it wrong at all.<p>&gt; Has anyone else bootstrapped using Rust? What were your experiences?<p>We scaled several websites to 6M+ MAUs on Actix&#x2F;SQLx and ran that on the lowest tier VMs.<p>Rust is God Mode for efficient and scalable HTTP services. Moreover, the type safety and robust type system give us incredible confidence that our software is defect free.
评论 #41767848 未加载
评论 #41768492 未加载
erazor427 个月前
&gt; Has anyone else bootstrapped using Rust? What were your experiences?<p>Yes, we are building a parsing platform in rust. (~50k loc) Stack: actix + diesel (async) for PG.<p>Getting the right project structure was not simple (that could deserve a blog post). Performance is super nice if you do heavy IO.<p>Beware of memory usage handling with actix.<p>Day to day dev is a joy, once it compile you can be confident it will work as expected.<p>Never .unwrap &#x2F; panic !<p>Use clippy to check your code.<p>Once you have your project structure done, adding a new web handler is as fast as adding one in Django or Flask.
评论 #41768234 未加载
samier-trellis7 个月前
&gt; Learning Investment: Deepening expertise in a language with growing demand, potentially opening future opportunities.<p>If it&#x27;s just you, then that reason alone justifies it.
评论 #41766652 未加载
aeturnum7 个月前
Neat!<p>Just fyi I tried to add Criminal[1] and it seems like it was...partially successful[2]? The &quot;Enter RSS URL&quot; page loaded for a while and then stopped.<p>[1] <a href="https:&#x2F;&#x2F;thisiscriminal.com&#x2F;episodes" rel="nofollow">https:&#x2F;&#x2F;thisiscriminal.com&#x2F;episodes</a><p>[2] <a href="https:&#x2F;&#x2F;www.audioscrape.com&#x2F;podcast&#x2F;criminal" rel="nofollow">https:&#x2F;&#x2F;www.audioscrape.com&#x2F;podcast&#x2F;criminal</a>
评论 #41769466 未加载
vwkd7 个月前
Nice project. It&#x27;s useful for listening to a specific speaker, allowing to skip other speakers who don&#x27;t add useful information. It enables listening to podcasts even with annoying interviewers. Would be great if this were built in the major podcast listening applications.
jamil77 个月前
Awesome work. Yes, I’ve been interested in Rust for a while and have been hacking on a side project. It’s an API service in Rust, but for the CRUD management part I used Elixir&#x2F;Phoenix and Phoenix gen auth to have something up quickly that’s not dependent on some third-party service.
评论 #41770366 未加载
lispisok7 个月前
How did you get your first 500 users?
评论 #41767912 未加载
peterpans017 个月前
&quot;Database: SQLite with SQLx for type-safe queries&quot;<p>I might be ignorance. But is it not safe? How do you back up your data?
评论 #41767974 未加载
deadcoder09047 个月前
How much did it cost to transcribe so many podcasts? Are you running Whisper on your $7 VM?
thesurlydev7 个月前
I&#x27;d love to hear how folks are deploying and hosting their Rust projects
fHr7 个月前
I actually think Rust is amazing I recently discoevered some rewrites in web developement in rust and they made build times on windows corpo bloat machine way way faster than conventional js&#x2F;ts implementations so I would say go for it and all power to you, also many are just salty because it&#x27;s another new thing and new&#x2F;change = bad
评论 #41770543 未加载
bravura7 个月前
How is transcription done?
评论 #41767792 未加载
aleksjess7 个月前
4k loc in a single file must be brutal
评论 #41768262 未加载
评论 #41767514 未加载