Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Emotial functional specification

Team: $100K MRR (Nathan Lodge, Slater Leonardo)

What the live product does. How it is built is in the technical specification. Site: emotial.app.

Purpose

Emotial is a social site for sharing thoughts and feelings. Reactions are emoji, not a single like. We built it for students and anyone who wants a small, familiar feed.

Actors

ActorCan
GuestRead the feed, explore, and profiles. Sign up or log in. Change theme. Cannot post, react, follow, reply, or report.
UserEverything a guest can, plus write and manage their own posts, react, follow, share, reply, upload media, and get notifications.
AdminEverything a user can, plus review reports and close accounts or delete posts.

Accounts

Sign up: display name, username, email, password. There is no email confirmation. Username is 3-16 characters (letters, numbers, underscore), stored lowercase. Password is at least 8 characters.

Log in with email or username plus password. Log out from the sidebar.

Settings: email, password, theme / accent. Closing the account needs the current password. That retires the username for good and frees the email.

Username does not change after sign up. Display name and bio do.

Posts

A post has a body (up to 500 characters) and optional media.

You can create, edit, and delete your own posts. A deleted post stays in a thread as a tombstone (no author, no body).

You can reply (one hop on a profile; the full thread is on the post page) and share (outbound only). @username notifies that user. #tag is searchable.

Media: up to 4 images (including GIFs) or 1 video. Upload finishes in the background, then the files attach to the post.

The body can include emoji and ordinary links.

Reactions

A user puts one emoji reaction on a post. It is not a like count. They can change it or take it off. Anyone can open the list of who reacted.

Feed sorts: recent, trending, and by emotion (funniest, saddest, maddest, shocking).

People

Follow and unfollow. See followers, following, and friends (mutual follows).

A profile shows avatar (can be animated), banner, display name, username, bio, posts, and replies.

You can report a post or a profile for harassment, spam, or inappropriate content.

Feed, explore, notifications

Feed (/): posts from the network, with live updates when new posts arrive.

Explore (/explore): search posts and people. Recent searches are kept.

Notifications: reaction on your post, reply, follow, mention. Unread count updates live. You can mark one or all read.

Admin

List profiles. List reports and resolve them. Close an account or delete a post.

Guest vs signed-in

SurfaceGuestUser
Feed / Explore / ProfileYesYes
Composer, react, follow, reply, share, reportPrompt to log inYes
Notifications / SettingsRedirect to log inYes
AdminNoAdmin only

Not in this build

Password reset email, Google OAuth, bot accounts, follower badges, and Socket.io were in the proposal and did not ship. Live updates use server-sent events.