TXRX
Concept
TXRX is a service where people can create custom audio messages and SEND (TX) them to their friends who RECEIVE (RX) the message
STACK
- Next.js for the frontend and client code. Hosted on Vercel.
- Firebase Storage to store the audio files (up to 100mb per request, cloudflare limitation and up to 5gb total, firebase limitation)
- Firebase Realtime Database as the main database. It's only fair to give it a try since the audio files are already stored here anyways. (up to 1GB stored; 10gb transferred/month)
- Cloudflare for general caching aswell as testing out the geolocation header they provide instead of using ipinfo.io (beta test)
- Ipinfo.io's api to look up the IP and determine the country. Is used as a fallback if the CF geolocation header works out.
Sender
You can Select how you want to transport your message (Ufo, Zeppelin, Hot air balloon, Submarine, Rocket, etc, customize color)
- Record audio message (store with Firebase Storage up to 5gb free)
- Entry gets stored in db (Firebase Realtime Database) along with link to storage
- Sender gets unique link to share
Receiver
- Opens the link
- See the transport vehicle (You got a message from [name] delivered by [vehicle])
- Listen to audio message
References & requirements
-
Record audio in a bitrate and format that's compressed enough to not exceed the 100mb request limit and to not use up the 5gb too quickly.
-
Processing and compressing audio perhaps with ffmpeg.js, or a cloud(flare workers) solution?
-
Send the recordings to Firebase Store via the api
-
Add an entry in the Firebase Realtime Database when this is done with the link to the file
-
Generate a unique page with Next.js (static or dynamic?) for each custom message
- Will probably take the key in the link
txrx.corruptedpixl.com/[HASH]
, look the hash up in the db and fill in all the data dynamically via api's
- Will probably take the key in the link