MIF Porto
The MIF Porto community, in your pocket.
A mobile application that brings the MIF Porto community together — information, communication and everyday tools in a single platform.
- React Native
- TypeScript
- Node.js
- PostgreSQL
The MIF Porto community lives across scattered channels: a schedule in one place, announcements in another, questions on a third. MIF Porto is the attempt to give it a single home — a mobile app where information, communication and the tools people use every day live together.
The problem
Community platforms fail when the real activity happens somewhere else. Students and members of the MIF Porto community were juggling multiple apps and group chats, and the result was fragmented: important announcements got buried, events were missed, and useful tools existed only as links shared in conversations.
The approach
MIF Porto consolidates the day-to-day of the community into one surface, built around the things people actually open the app for:
- Information — schedules, news and official announcements, structured and searchable instead of buried in chat history.
- Communication — discussions and questions kept in the context they belong to, instead of a scrolling wall.
- Tools — the frequently used utilities (resources, contacts, sign-ups) one tap away.
Technical decisions
TypeScript everywhere. Shared types between the React Native client and the Node.js API mean a change to a domain model is caught at compile time across the whole stack — the same contract can’t drift silently.
A real database from day one. PostgreSQL gives us relational integrity for the structured data (schedules, users, resources) and predictable querying as the app grows, rather than retrofitting structure later.
Mobile-first, naturally. The community lives on phones. The app is designed for the small screen first and keeps interactions to one thumb’s reach.
Challenges
- Structuring community content. Free-form chat is easy to create and impossible to search. The hard part is designing light-touch structure — categories and threads — that organizes content without adding friction.
- Onboarding the network effect. An app for a community is only useful when people are on it. We prioritized the features with the clearest immediate value so adoption compounds.
- Keeping the scope honest. It is tempting to build everything. We shipped a focused core well instead of a broad surface poorly.
Impact
MIF Porto is the kind of project I reach for when I want to build something real people use every day: a product with a clear user, a clear problem, and no excuse for a generic solution.
What I’d do next
- Push notifications for the announcements that matter, with quiet by default.
- A web companion so the community isn’t locked to the app store.
- Community feedback loop inside the app to let the product evolve with its users.