Yesterday, I decided to try to build an app to help me filter through the many nanny- and nanny-share-related posts in local Facebook groups.
To kick off this project, I’ll first do some design:
- I’ll describe clearly what I want this app to do.
- I’ll map out the flow of data in this app.
- I’ll think through additional design goals and constraints.
Desired app behavior
The primary thing I want to automate is sifting through the posts in my various Facebook groups, and picking out the ones I should take a closer look at.
As a V1:
- I would like a written summary of the posts I should take a look at. For each post, the summary should briefly describe the post, and provide the name of the Facebook group it belongs to.
- Ideally, the summary links me to the exact post too, but it’s ok if I have to manually find it.
Flow of data
| Step | What happens | Data it needs | Data it outputs |
|---|---|---|---|
| Step 1: Gather posts | Open up each of my Facebook groups, and get the new posts. | - URLs of Facebook groups (and my logged-in state) - Timestamp of the last time we gathered posts | - New posts |
| Step 2: Filter posts | 1. Look at each of the new posts. 2. “Understand” each post and determine if it matches the criteria I want. 3. If yes, “mark” the post as interesting. | - New posts - Criteria I want | - A “yes/no” decision of whether each new post is interesting to me |
| Step 3: Create summary | 1. Aggregate the posts “marked” as interesting. 2. Write a summary that features the text of the posts. | - New posts marked as interesting | - A summary |
Additional design goals & constraints
Beyond the basic functionality of my app, there are two things I want to design for.
Data privacy
Ideally, I’d like to not send the Facebook group data to third parties like OpenAI (creator of ChatGPT) or Anthropic (creator of Claude).
Thus, I’ll aim to use an open source LLM that I can self-host. I can run an LLM on my laptop, so the data never leaves my computer.
Terms of service
Facebook’s terms of service don’t allow using a bot to download their data.
So I’ll plan to do “Step 1: Gather posts” manually first. (However, I’ll build what tools I can to make this step as quick as possible.)
Ready to build!
Now I have a rough plan, and I’m ready to prototype!