Inspiration

We love making creative projects. Numerous times we've became inspired to go out and film cool videos, write songs, and take photos. But after the product is done, sharing it becomes tricky. People don't go on Instagram to listen your latest song that took you weeks to make, they want to see photos of their friends, interact quickly, and then move on. YouTube doesn't have the social component for sharing content with friends. There wasn't really a good option for this purpose. So we made one.

What it does

WeMake is a dedicated space to share your art and creative projects. Your profile acts as "gallery" meant to display the work you're most proud of. There is an array of templates to choose from whenever you make a post. Whether it's poem, song, short film, or photo shoot, it can be added aesthetically to your page. It acts as a true gallery, displaying the date that you made the project, rather than the date you posted. You'll connect with your friends on the app and view their posts on your feed, or on their profile pages.

How we built it

WeMake is built in React Native using Expo for cross-platform development and fast iteration on iOS, Android, and web. We use Expo Router for navigation and TypeScript for more maintainable code. On the backend, we rely on Convex for real-time data, server functions, and app state syncing, with Clerk handling authentication and user identity. For media workflows, we integrated UploadThing to support file uploads, and Expo modules like image picker and AV to handle image, video, and audio experiences in-app. For UI, we used Tailwind/Uniwind. We also use Reanimated and gesture libraries.

Challenges we ran into

This was the first project that we've done using a server and backend. Convex is a really useful tool, although there was still a big learning curve. We had difficulties especially with using a shared Convex dashboard that allowed us both to interact as a dev. We ended up having to split up the tasks so that one person worked on the UI with dummy data, while the other worked with the backend.

Since storing photos and videos directly on Convex isn't an option, we had to make use of a third party platform to upload everything to, and then give our codebase the links to that site. Ideally, we would want the user to be able to select a file from their device while the app does the work of uploading it and converting to a link, but we didn't have time to implement that.

Accomplishments that we're proud of

This project was also our first using React Native. We're proud of how we quickly were able to apply our knowledge from React to efficiently learn mobile development. Our app feels like an app, and not just a website that was ported over to mobile.

The UI looks clean but also personal. Your profile is customizable in a way that represents the uniqueness of each person and their creativity. Styling and customization options were a big component we wanted to focus on because of the nature of this project.

What we learned

We learned how tightly coupled frontend decisions are to backend architecture. We gained practical experience with data modeling, auth-aware server functions, and syncing UI state to live backend updates. We also learned that media-heavy social products require careful thinking about upload pipelines, asynchronous states, and third-party integrations.

What's next for WeMake

We want to turn WeMake into an actual app with a real userbase. There are still some core social media features to be added like direct messaging and push notifications. We also want to keep expanding the ways in which you can customize the presentation of your work, to make your page really feel like you. First we're gonna get all of our friends to download the app, and then eventually start promoting with ads.

Built With

Share this project:

Updates