POINT CHET is a premium messenger application inspired by modern chat apps such as WhatsApp, but with a fully ORIGINAL design, logo, colour system, and visual identity. It is built mobile-first and responsive across Android, iPhone, tablet, and desktop, with a modern, elegant, smooth, fast, and professional interface.
The product intent is a daily-driver messenger that feels like a real, complete application: users sign in with a phone number and a 6-digit PIN, chat privately and in groups with rich message types, share status/stories, manage contacts, groups, and communities, place simulated voice and video calls, receive notifications, search globally, and configure the app through a complete settings surface. The prototype persists its data in localStorage and ships with dummy data so the app immediately looks alive.
The audience is Indonesian and global mobile-first users (default country code +62) who expect a WhatsApp-class daily driver but want an original, elevated identity — calm, machined, and premium rather than loud or playful.
POINT CHET is delivered as a mobile-first, responsive frontend prototype. All primary buttons have real interaction in the prototype. Data for accounts, sessions, chats, messages, contacts, groups, status, settings, and notifications is stored in localStorage, seeded with dummy data. Calls are a frontend UI simulation and are never claimed to be real-time. The visual identity is original: no WhatsApp logo, asset, green palette, doodle wallpaper, or naming convention is copied. Icons come from the open-source Lucide Icons library.
The active human actors are the accepted persona catalog: Pengguna Messenger (End User), Pembuat & Pengelola Grup/Komunitas, Pengguna Status/Story, Pengguna Panggilan, and Pengguna Pengaturan & Privasi. The application owns identity: users self-register with a phone number and profile, returning users verify with phone number + 6-digit PIN, forgotten PIN is handled through Account Recovery, and the session persists. Group and community administrative actions require the verified user to hold the applicable admin or management role.
POINT CHET is a first-party application with application-owned identity. Anonymous visitors first meet the product on the Landing surface, which explains POINT CHET and its purpose before account access. From there, new users self-register on Sign Up (phone number, PIN, PIN confirmation, name, username, profile photo, bio), returning users verify on Login (phone number + 6-digit PIN, country code default +62, show/hide PIN), and users who forgot their PIN recover access through Account Recovery. Once identity is established, the session persists across visits and the user reaches the Dashboard hub and the main navigation: CHAT | STATUS | KOMUNITAS | PANGGILAN | PROFIL.
Current delivery covers the full messenger surface described in this document: chats (private and group) with rich message types and message actions, voice messages, status/stories with 24-hour expiry and privacy control, profile and contacts, groups and communities, simulated call UI with call history, a notification center, global search, and complete settings including dark mode applied across the whole application.
Boundaries: calls are a frontend UI simulation only and must not be presented as real-time calling. The prototype persists to localStorage; a real backend implementation must not store PINs as plain text, and protected durable records require backend execution in a production implementation. No adjacent account-management capabilities beyond registration, login, PIN recovery, session persistence, and logout are in scope.
Not applicable — no reference directive declares content_source.
FR-01 — Original premium messenger identity explicit
As a Pengguna Messenger (End User), I should use a premium messenger named POINT CHET with an original design, logo, colour, and visual identity inspired by modern chat apps but never copying WhatsApp assets, so that the product feels distinct and trustworthy.
FR-02 — Mobile-first responsive layout explicit
As a Pengguna Messenger (End User), I should use POINT CHET on Android, iPhone, tablet, and desktop with a modern, elegant, smooth, fast, professional UI, so that the experience fits my device.
FR-03 — Login with phone number and 6-digit PIN explicit
As a Pengguna Messenger (End User), I should log in with my phone number and a 6-digit PIN, with country code defaulting to +62 and a show/hide PIN option, so that I can access my account securely.
FR-04 — Register a new account explicit
As a Pengguna Messenger (End User), I should register a new account with phone number, PIN, PIN confirmation, name, username, profile photo, and bio, so that I can start using POINT CHET.
FR-05 — Forgot PIN recovery explicit
As a Pengguna Messenger (End User), I should recover access when I forget my PIN, so that I am not locked out.
FR-06 — Persisted session and logout explicit
As a Pengguna Messenger (End User), I should have my session persist and be able to log out, so that I stay signed in between visits and can end my session deliberately.
FR-07 — Prototype persistence and PIN safety explicit
As a Pengguna Messenger (End User), I should have prototype data stored in localStorage while a real backend never stores PINs as plain text, so that the prototype works offline and real deployments stay safe.
FR-08 — Main navigation explicit
As a Pengguna Messenger (End User), I should navigate CHAT | STATUS | KOMUNITAS | PANGGILAN | PROFIL, so that I can reach every core area.
FR-09 — Header controls explicit
As a Pengguna Messenger (End User), I should see a header with logo POINT CHET, search, camera, new chat, menu, profile photo, and unread badge, so that key actions are always reachable.
FR-10 — Desktop sidebar and mobile bottom navigation explicit
As a Pengguna Messenger (End User), I should get a sidebar plus main area on desktop and bottom navigation on mobile, so that navigation matches my device.
FR-11 — Send rich message types explicit
As a Pengguna Messenger (End User), I should send text, emoji, sticker/GIF UI, photo, video, file/document, audio, location, contact, and voice message in private and group chats, so that I can communicate in any form.
FR-12 — Message actions explicit
As a Pengguna Messenger (End User), I should reply, forward, edit, delete, copy, pin, star/favorite, react with emoji, mention, and search messages, so that I can manage conversations precisely.
FR-13 — Conversation presence and status explicit
As a Pengguna Messenger (End User), I should see typing indicator, online/last seen, sent/delivered/read status, unread badge, and pin/mute/archive/delete chat, so that I know the state of every conversation.
FR-14 — Modern chat bubble explicit
As a Pengguna Messenger (End User), I should see modern chat bubbles with timestamp and message status, so that each message reads clearly.
FR-15 — Voice message recording and playback explicit
As a Pengguna Messenger (End User), I should hold to record, see a timer and waveform, pause/resume, cancel, send, and play back with progress and playback speed, so that voice messages are fully usable.
FR-16 — Status/story creation and viewing explicit
As a Pengguna Status/Story, I should add text, photo, and video statuses and view them in a fullscreen story viewer with progress bar, next/previous, reply, reaction, like, and viewer list, so that I can share and consume stories.
FR-17 — Status 24-hour expiry explicit
As a Pengguna Status/Story, I should have statuses expire automatically after 24 hours, so that shared content stays current.
FR-18 — Status privacy explicit
As a Pengguna Status/Story, I should set status privacy to all contacts, specific contacts, or chosen people, so that only the intended audience sees my status.
FR-19 — Profile display explicit
As a Pengguna Messenger (End User), I should see profile photo, name, username, phone number, bio, and online status, so that identity is clear.
FR-20 — Profile features explicit
As a Pengguna Messenger (End User), I should edit profile, change photo, edit name/username/bio, show QR profile, share profile, view media/links & documents, and block/report, so that I control my identity and safety.
FR-21 — Contacts explicit
As a Pengguna Messenger (End User), I should see a contact list with search, add contact, invite friend, online contacts, open profile, start chat, voice call, and video call, so that I can reach people quickly.
FR-22 — Group creation and management explicit
As a Pembuat & Pengelola Grup/Komunitas, I should create a group with name, photo, and description; add/remove members; manage admin; add/remove admin; edit group info; create group invite link; show QR invite; mention members; pin/mute group; set member permissions; approve new members; and leave/delete the group, so that groups stay well managed.
FR-23 — Community creation and management explicit
As a Pembuat & Pengelola Grup/Komunitas, I should create a community with name, photo, and description; manage its group list; announcement; members; admin; add/remove groups; and community settings, so that communities stay organized.
FR-24 — Simulated call UI explicit
As a Pengguna Panggilan, I should use voice call and video call UI with incoming/outgoing call, call history, missed call, mute, speaker, camera on/off, switch camera, minimize, and end call, so that the call experience is complete in the prototype.
FR-25 — Notification center explicit
As a Pengguna Messenger (End User), I should receive a notification center covering new messages, mentions, reactions, status, group, calls, and system, with unread badge and toast notifications, so that I never miss activity.
FR-26 — Global search explicit
As a Pengguna Messenger (End User), I should search users, usernames, chats, messages, groups, communities, and media with filters All / People / Chats / Groups / Messages / Media, so that I can find anything.
FR-27 — Complete settings explicit
As a Pengguna Pengaturan & Privasi, I should configure Account (edit profile, number, username, PIN), Privacy (last seen, online status, profile photo, bio, status, read receipts, blocked users), Chat (wallpaper, theme, font size, enter to send, auto download media), Notifications (message, group, call, sound, vibration), Appearance (light, dark, system, accent color), Storage (storage usage, media, documents, clear cache), Security (app lock UI, PIN, 2FA UI, active sessions), and About (version, terms, privacy, help), so that the app behaves how I want.
FR-28 — Premium UI system explicit
As a Pengguna Messenger (End User), I should experience modern typography, rounded corners, soft shadow, restrained glass effect, elegant gradient, smooth animation, micro interaction, skeleton loading, modal, bottom sheet, dropdown, toast, and context menu, without a crowded design, so that the app feels premium.
FR-29 — Dark mode across the application explicit
As a Pengguna Pengaturan & Privasi, I should have dark mode applied to background, card, chat bubble, text, input, icon, modal, and navigation, so that the whole app is consistently dark.
FR-30 — Prototype dummy data explicit
As a Pengguna Messenger (End User), I should see dummy data so the app immediately looks alive, so that the prototype demonstrates real usage.
FR-31 — Reusable components explicit
As a Pengguna Messenger (End User), I should see consistent Avatar, ChatList, ChatBubble, MessageInput, StoryItem, ProfileCard, GroupCard, Modal, BottomSheet, Toast, AudioPlayer, MediaViewer, and Notification components, so that the interface is coherent.
FR-32 — Code structure explicit
As a Pengguna Messenger (End User), I should have the prototype delivered as index.html, css/style.css, js/app.js, js/auth.js, js/chat.js, js/status.js, js/profile.js, js/groups.js, js/calls.js, js/settings.js — or, if the platform supports only one file, a single HTML with internal CSS and JavaScript — so that the codebase is organized.
FR-33 — Real interaction on primary buttons explicit
As a Pengguna Messenger (End User), I should have every primary button perform a real interaction in the prototype, so that the app feels functional.
FR-34 — Lucide Icons explicit
As a Pengguna Messenger (End User), I should see open-source Lucide Icons used for application icons, so that iconography is consistent and licensed.
FR-35 — Final product feel explicit
As a Pengguna Messenger (End User), I should experience POINT CHET as a real messenger with premium, original, responsive, smooth, and complete UI, so that the prototype is convincing.
FR-36 — Self-service registration establishes identity required_inference
As a Pengguna Messenger (End User), I should establish my phone-number identity and profile through self-service registration before protected work, so that my account exists.
FR-37 — Returning verification and session continuity required_inference
As a Pengguna Messenger (End User), I should verify with phone number and 6-digit PIN and have my session persist, so that I can resume without re-entering credentials each time.
FR-38 — Account Recovery restores protected access required_inference
As a Pengguna Messenger (End User), I should use Account Recovery before protected access is restored when I forget my PIN, so that recovery is deliberate and safe.
FR-39 — Role-gated group and community administration required_inference
As a Pembuat & Pengelola Grup/Komunitas, I should hold the applicable admin or management role for administrative actions, so that group and community control stays correct.
FR-40 — Call simulation boundary required_inference
As a Pengguna Panggilan, I should use the call UI as a frontend simulation that never claims real-time calling, so that expectations match the prototype.
FR-41 — Automatic status expiry required_inference
As a Pengguna Status/Story, I should have status records expire automatically after 24 hours, so that shared content does not persist indefinitely.
FR-42 — Appearance preferences applied application-wide required_inference
As a Pengguna Pengaturan & Privasi, I should have dark-mode and appearance preferences applied across the application, so that my choice is consistent everywhere.
FR-43 — Backend execution for protected durable records required_inference
As a Pengguna Messenger (End User), I should have protected durable records executed by a backend in a production implementation, so that data integrity and credential safety hold outside the prototype.
The creative direction is authoritative: Quiet precision after Jony Ive — a messenger machined from graphite and one ember accent. The muse is Jony Ive; the headline is "Graphite and one ember." POINT CHET is a high-frequency personal utility, so the interface is the product: restraint, material honesty, generous negative space, one perfectly lit subject, hairline dividers, and continuous-curve radii. This differentiates hard from WhatsApp's green-on-white and from the forbidden generic indigo/blue-on-white SaaS template.
Colour tokens — Dark mode (primary)
--bg: #0E1012 (app canvas)--surface: #17191C (cards, sheets, sidebar, incoming bubbles)--surface-elevated: #1F2226 (modals, bottom sheets, dropdowns)--hairline: rgba(255,255,255,0.08)--text: #F2F3F5--text-muted: #8A9099--text-tertiary: #5F656D--primary: #E8E9EB (aluminium — high-contrast UI chrome, send glyph, active tab, light-mode ink; never a saturated brand colour)--accent: #FF5A2B (ember — rationed to under 5% of pixels: own outgoing bubble, unread badge, record dot, call end, active toggle, focus ring, one CTA per screen)--shadow-sheet: 0 8px 24px rgba(0,0,0,0.45) (sheets and modals only)Colour tokens — Light mode (sibling)
--bg: #F7F7F8--surface: #FFFFFF--hairline: rgba(0,0,0,0.07)--text: #14161A#FF5A2B; same aluminium primary role.No blue, indigo, or violet primary/accent anywhere. No gradients except one very low-contrast graphite sheen on the hero device frame.
Typography
clamp(44px, 9vw, 96px) light weight; auth screen title clamp(28px, 5vw, 40px); screen titles 20–24px; section headers 11px uppercase tracked.Shape language
rgba(255,255,255,0.08) instead of shadows wherever possible; where depth is needed, one soft shadow 0 8px 24px rgba(0,0,0,0.45) on sheets and modals only.Spacing rhythm
Imagery style
The public entry is the Landing / auth composition, and it is a portrait composition, not a centred SaaS hero.
#0E1012) with a very subtle vertical sheen, carrying the POINT CHET wordmark set in Inter Tight Light at clamp(44px, 9vw, 96px), left-aligned on the 16px gutter so it spans nearly the full width at 375px and stops around 60% at 1280px.#17191C panel with 24px top corners containing the phone field (country code +62 as a bordered 14px-radius prefix chip), the 6-digit PIN as six 44px squircle cells, and one full-width ember CTA.The signature moves carry through the product: the 6-digit PIN entered into six 44px squircle cells with a hairline border that fills with a single ember dot per digit, and a show/hide eye that toggles to a masked state where each filled cell shows a 6px aluminium disc instead of a numeral; own-message bubbles as the only large ember surface (#FF5A2B fill, #0E1012 text) against graphite incoming bubbles with a hairline; desktop navigation as a 320px hairline-ruled sidebar with a 1.5px Lucide icon rail, uppercase 11px tracked section labels (CHATS / STATUS / COMMUNITIES / CALLS), and selection shown by a 2px ember bar on the left edge of the active row rather than a filled pill; and voice-message recording as a full-width hairline-bordered capsule replacing the input row, with a live 60-bar waveform drawn as 1.5px aluminium strokes, a tabular timer, and a single ember dot breathing at 1.4s.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Landing Hero Motion Brief
cubic-bezier(0.22, 1, 0.36, 1) at 320–420ms for panel and sheet transitions; 120–180ms for hover, press, and state changes. Press scales a bubble to 0.985; the unread badge counts up once; the typing indicator is three 1.5px dots on a 1.2s loop; the record button breathes at 1.4s. No bounce, no particles, no gradient drift, no cursor-following effects.prefers-reduced-motion removes the reveal cascade and the typing dots become a static "typing…" label; the first frame renders fully composed with no motion.Reveal-on-scroll is limited to one subject: on first paint the chat list staggers in as a single 40ms-per-row cascade, then nothing animates again. Decorative animation is limited to one cascade on first paint, one typing loop, and one breathing record dot.
explicit: design, logo, colour, and visual identity must be original; no WhatsApp logo, asset, green palette, doodle wallpaper, or naming convention may be copied. Rationale: explicit hard constraint.explicit: the prototype uses localStorage for accounts, session, chats, messages, contacts, groups, status, settings, and notifications; a real backend must never store PINs as plain text. Rationale: explicit hard constraint.explicit: if only frontend, the call UI is a simulation and must not claim real-time calling. Rationale: explicit hard constraint.explicit: the design must not be too crowded; no more than one ember CTA visible at a time and no screen with more than two competing filled surfaces. Rationale: explicit hard constraint plus creative direction.explicit: use the open-source Lucide Icons library at 1.5px stroke, 20/24px, aligned to the 4pt grid. Rationale: explicit hard constraint.explicit: if the platform supports only one file, combine everything into one HTML with internal CSS and JavaScript. Rationale: explicit hard constraint.explicit: statuses expire automatically after 24 hours. Rationale: explicit hard constraint.explicit: dark mode must apply to background, card, chat bubble, text, input, icon, modal, and navigation. Rationale: explicit hard constraint.explicit: mobile-first across Android, iPhone, tablet, and desktop; mobile uses bottom navigation, fullscreen chat, and touch-friendly buttons; desktop uses sidebar, chat panel, and profile/info panel. Rationale: explicit requirement.explicit: the UI must feel smooth and fast; the restrained motion ceiling and layered_2d depth ceiling keep chat performant on mid-range Android. Rationale: explicit requirement plus creative direction.explicit: headlines, wordmarks, labels, numbers, card text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...)) to fit, and no other element covers any part of them. Rationale: explicit direction constraint.required_inference: protected durable records require backend execution in a production implementation. Rationale: indispensable for credential safety and data integrity outside the prototype.required_inference: prefers-reduced-motion removes the first-paint cascade and replaces the typing dots with a static "typing…" label. Rationale: indispensable for users who cannot tolerate motion.index.html, css/style.css, js/app.js, js/auth.js, js/chat.js, js/status.js, js/profile.js, js/groups.js, js/calls.js, js/settings.js; if the platform supports only one file, a single HTML with internal CSS and JavaScript. explicitexplicitexplicitrequired_inference: a backend for protected durable records, with PINs never stored as plain text. Python/FastAPI with appropriate storage is the default choice for this service; Docker/docker-compose for local packaging, and Kubernetes only if deployment requires it.explicit via creative direction.explicit: The prototype is frontend-only unless a backend is added; calls are simulated UI and never claimed real-time.explicit: Prototype data lives in localStorage; a real backend must not store PINs as plain text.explicit: Default country code is +62; PIN is exactly 6 digits.explicit: Statuses expire automatically after 24 hours.explicit: Dark mode applies across background, card, chat bubble, text, input, icon, modal, and navigation.explicit: Design, logo, colour, and identity are original; no WhatsApp asset, logo, green palette, doodle wallpaper, or naming convention is used.explicit: All primary buttons have real interaction in the prototype.explicit: Dummy data is seeded so the app immediately looks alive.required_inference: Group and community administrative actions require the verified user to hold the applicable admin or management role.required_inference: Protected durable records require backend execution in a production implementation.required_inference: Application-owned identity is established through self-service registration, verified through phone number + 6-digit PIN, and recovered through Account Recovery; the session persists until logout.required_inference: The visual system is graphite neutrals plus one ember accent #FF5A2B; no blue, indigo, or violet primary/accent is used, and the generic indigo/blue-on-white SaaS template is forbidden.[Default — not specified by user]: Python/FastAPI with appropriate storage is the assumed production backend; Docker/docker-compose for packaging, Kubernetes only if deployment requires it.#FF5A2B, rationed to under 5% of pixels.#0E1012 used as the app background and the auth hero field.rgba(255,255,255,0.08) (dark) or rgba(0,0,0,0.07) (light) used instead of shadows.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!