theeze.dev
bfam,  Development

Social Media is Broken, so I’m Building My Own

Author

Zeke Burke

Date Published

beam - Logo

I’ve never really been a big social media person. I never felt comfortable with the idea of some giant corporation handling my private family photos or even simple moments with friends. It feels like nowadays everyone is stuck using some fancy algorithm that is most likely held together with popsicle sticks and a dream. Its only goal is to force-feed you content to keep you scrolling.

I miss the old days of social media. I miss when I could post a photo in 2009 with a flip phone without worrying about likes, engagement, or some other superficial metric. I just wanted my friends to see what I was up to. So, I had an idea. What if I made my own social media platform? What if I designed it specifically for families and friends who basically are family anyway? I want to make a platform for my older family members to protect them from "AI Slop-aganda" and the noise of the modern internet.

Finding the bfam Blueprint

I started brainstorming how I could design this and who would use it. It needed to be lightweight and easy to implement. I wanted to take social media back to its roots where the user is in control. The name I came up with is bfam. It is simple, easy to remember, and works great for people who want to host it on their own subdomains.

When it came to the tech stack, I bounced around a ton of ideas. Since I want this to be open source, I wanted to use tools that are accessible and not too heavy. I eventually settled on using React for the frontend of the application. I figured that somewhere down the line someone could even build a mobile version with React Native using the same logic. However, making a super mobile-friendly React app is a great starting point for now.

Solving the Backend Puzzle

The big question was the backend. I thought about using a heavy PostgreSQL database with a Node.js API, or maybe a simple SQLite database. Then I discovered PocketBase. It is an all-in-one backend that handles the database, authentication, and file storage in one single file. It is simple, lightweight, and works really well with React. It felt like the perfect "Goldilocks" solution for a project like this.

I also needed a way for people to easily "ship" this to their own families. I thought about using Vercel, but that would not work well with how PocketBase stores data or even works for that matter. I remembered that Digital Ocean and other providers have ways to create images, but I ended up deciding to just Dockerize the whole thing.

By using Docker, people can host their instance of bfam wherever they want. I can even serve the React app directly inside PocketBase so everything sits in one single Docker container. It is a brilliant way to keep things "one-click" simple for the user.

The Road Ahead

I now have a rough plan for this app. React for the frontend, PocketBase for the backend, and Docker for the hosting. Now it is time to put the plan to the keyboard and start writing code.

Follow along with me on this journey. This post is just the first of many as I build out bfam. Who knows, my plans may change wildly by the end of this. If anything, it will be fun to look back on this later to see how much I learned along the way.