Inspiration

The idea for Sendu came from many personal experiences when trying to share or receive full-quality photos and videos during events and holidays.

Often, when friends take photos of you on their phones, you either never get them, or they send them through a messaging platform, with significant compression and reduction in resolution - especially for videos!

Other common methods:

Emailing photos – It's 2024!

Cloud Links – Cluttering your storage account, and unable to clean house until the recipient has downloaded the shared photos.

Google Photos – Group albums often fill with irrelevant pictures, taking up your storage quota, and the photos and videos are still compressed.

Despite the drawbacks, none of these methods allow for real-time collaboration, which is why messaging platforms are often the preferred method for sharing.

Sharing media is harder than it should be, so I created Sendu to solve this problem faced by every smartphone user.

What it does

People use messaging platforms to send photos because it’s easy. Sendu bridges the gap between convenience and quality by combining the most common media-sharing methods into one easy-to-use application. With Sendu, users can finally share the full-quality photos and videos captured on their flagship phones with just a few taps.

Features:

• QR Codes: No need to add people on social media or by phone number—scan their Sendu account or group’s QR code.

• Chats: Message, react, comment, and share full-quality photos and videos, perfect for events and holidays.

• Links: Trackable, manageable links for sharing your favorite media, with options to add passcodes and customize expiration dates.

• Albums: Traditional cloud albums to organize and preserve memories across devices, with the ability to invite friends to collaborate.

How we built it

React Native with Expo accelerated the development of Sendu for both iOS and Android, leveraging a large ecosystem of packages that made this project possible.

.NET and Azure powers Sendu’s backend, using services such as Container Apps, SignalR, Storage, Functions, Cosmos DB, SQL, and Redis. This robust stack will allow Sendu to grow with its user base. Also, ngrok, that simplifies local development.

Bunny.net is the CDN of choice for Sendu, offering two crucial features: expiring token protection for URLs and their Stream product, which handles full-resolution video uploads and transcoding.

RevenueCat offered a plug-and-play solution to handle Sendu’s subscriptions and purchases on both iOS and Android, saving weeks of development time and future support work. Their webhooks keep Sendu’s server up to date in real-time.

Challenges we ran into

Offline data support with real-time events: There's no silver bullet for offline database synchronization in apps. Many services looked promising at first, but each had deal-breaking limitations, either on the API server or app side. To meet Sendu's specific requirements, a custom solution had to be developed.

iOS store approval was a tough process for Sendu due to its account-based features and integration with third-party login providers. The complexity was further compounded by Sendu being categorized as a social media app, bringing additional compliance and legal requirements.

As the solo developer working on Sendu in my free time, whenever I encountered a roadblock, the entire project would pause - something that happened more times than I'd like to admit!

Accomplishments that we're proud of

UX was a continuous challenge, as I worked to make Sendu both easy to use and intuitive. The app's structure went through many revisions as the idea evolved, but I’m proud that the primary goal—sending full-quality media—can be achieved with just a few taps!

Sendu is a released fully-featured app that makes sharing full-quality photos and videos effortless, fulfilling its core concept and goal.

Lastly, a shoutout to Jake Holland for helping with the app design and creating Sendu's awesome website!

What we learned

There was a lot to learn about photo and video file formats, and I quickly realized that using the latest formats isn’t feasible. For example, most devices lack hardware support for AVIF, making encoding and decoding slow. Similarly, WebP encoding on devices is also slow. When it comes to video, there’s limited support for HEIC and HEVC due to licensing, which leaves H264 as the only real viable option.

Simple problems often require complex solutions. When I started this project, my goal was straightforward: move a full-quality photo from one device to another. But as I progressed, I realized why many existing apps struggle to achieve widespread adoption—they fail to provide an interface that users enjoy for sending media.

What's next for Sendu

Sendu is just at the beginning of its journey, and the future is exciting!

In the short term, the focus will be on improving the current app, listening to user feedback, and releasing the Android version, which is right around the corner.

In the long term, Sendu aims to expand into the commercial world, offering services to tour companies, experience providers, or.. theme parks?! Who knows? Stay tuned! 👉

Built With

Share this project:

Updates