Audioscrape: Building in Rust When Everyone Said I Shouldn't
I'm excited to share my journey of bootstrapping Audioscrape, a podcast exploration platform built entirely in Rust. While many would advise using Ruby on Rails, Python, or TypeScript for rapid MVP development, I chose Rust to challenge myself technically and to optimize for low operational costs. The result is a highly performant application running on just a $7/month virtual machine, proving you can launch lean and scale efficiently.

Rust was selected for several reasons. It offers cost-efficiency, using minimal resources that translate directly into lower hosting expenses, essential for a bootstrapper. Its performance in audio processing and web serving allows for growth without immediate infrastructure scaling. Additionally, investing in Rust has long-term benefits given its growing demand, offering valuable skills for the future. This project also aims to demonstrate Rust's viability for rapid web application development.

Audioscrape functions by aggregating podcast RSS feeds, transcribing episodes, and providing an interactive interface for content exploration and discussion—it's a full-stack Rust application, utilizing a range of crates from the ecosystem. The technical stack includes Axum for backend processing, SQLite with SQLx for database management, OAuth2 for authentication, Askama for HTML templating, and Tokio for async runtime, forming a robust and efficient system.

My development approach was lean yet focused. Approximately 4,000 lines of code are organized within a single main.rs file, along with HTML templates. This setup enabled rapid iteration, facilitated by Neovim, keeping all operations contained to a single virtual machine without relying on external services, thereby maintaining low operational costs.

Audioscrape's features include transcription browsing, allowing users to read along with podcasts or easily find topics of interest. Segment highlighting encourages sharing and discussion of specific episode moments. Community features such as upvotes, comments, and bookmarks enhance user interaction. An advanced search function helps locate relevant content across multiple podcasts, and person profiles allow exploration of guest or host appearances across various shows.

The project came with its share of challenges, like mastering Rust's ownership model, which eventually led to efficient transcription and speaker detection capabilities. Managing all facets alone—from development and design to operations—was both challenging and rewarding.

Looking forward, the plans for Audioscrape include developing an API for third-party integrations and using WebAssembly for client-side processing. Strategies for scaling larger datasets, particularly for search functionality, are on the agenda, along with personalized content delivery options.

In terms of metrics, Audioscrape currently boasts 500 active users over the past week, with monthly recurring revenue at $0. However, the cost per user is less than $0.01 due to efficient resource use. The next goal is to implement paid features to cover operating costs and reduce expenses per episode page.

I'm eager to engage with the Hacker News community. Has anyone else bootstrapped using Rust, and what were your experiences? How do you balance technical debt versus shipping features, especially in solo projects? What marketing strategies have worked for you with such technical products? As I continue to bootstrap this project, I welcome any feedback, particularly from those with similar experiences or who have utilized unconventional tech stacks for MVPs. I invite you to visit Audioscrape at www.audioscrape.com and share your thoughts!