margin
A social feed with an ending.
Margin explores a simpler, more intentional social platform through a finite, chronological feed, intentional posting limits, mutual friendships, and smaller shared spaces. It is designed to make room for life outside the feed.
Margin: The Concept
Margin began with minimalism: what if social media gave people more room to live outside of it?
A finite, chronological feed, intentional posting limits, mutual friendships, and smaller shared spaces keep the focus on personal connection. Reaching the end of the feed is part of the experience.
Restrained typography, generous whitespace, and subtle motion carry that philosophy into a full-stack application, now presented as an interactive portfolio demo.
Technology should make room for life, not take up all of it.
Familiar places.
A connected experience.
The feed, profiles, and conversations share the same visual language. Each gives its content a clear home, from an everyday update to a collection of photographs.

Finished my book on the train home. If anyone needs something to read, you can borrow it.
Need a new recommendation for the commute.
A visual language
with a human hand.
I designed Margin Aside, a custom typeface, and Margin Editorial Geometry, an original icon family, to give Margin its character. Warm paper, olive, and cinnamon hold the interface together, with Inter keeping navigation and controls clear.
Aa
A thought.
A photograph.
A conversation.
Design decisions,
carried into the build.
The full-stack foundation
The original implementation connects the interface to authentication, invitation-based membership, PostgreSQL and Prisma, private media, and server-side authorization. Friendship boundaries, conversations, Spaces, and data lifecycle rules carry the product decisions into the application architecture.
- Next.js & TypeScript
- PostgreSQL & Prisma
- Authentication & authorization
- Private media & data lifecycle
A demo you can explore
The public demo lets visitors explore as Ines, a fictional member, without registering. Visitors can compose posts, try conversations, arrange photographs, and explore Spaces using sample content. Changes stay in memory within one tab and reset on refresh or exit. The full-stack implementation remains in the source, separate from the demo.
The public demo uses sample content and local interactions. Live accounts, private uploads, and backend services are kept outside that experience.
Explore live demo
Ines AlvarezI have one for you. I’ll bring it on Saturday.