NEXORA is a production-quality, full-stack gaming platform with the tagline “Discover. Play. Connect.” It is delivered as a responsive web application, a real React Native + Expo Android application, and a real React Native + Expo iOS application — not a WebView wrapper. NEXORA is a real product with a backend, database, authentication, storage, and role-based workflows, not a static UI.
The product serves players who want to discover, track, review, and discuss games; independent developers who want to publish and measure their games; moderators who keep community content safe; and administrators who operate the marketplace. NEXORA is a legitimate marketplace: it does not host or distribute pirated or cracked copyrighted games, third-party games are linked through official authorized store/download links, and game file uploads are restricted to authorized developers or open-source games.
The audience is players aged roughly 16–35 who already live inside Discord, Twitch, and Steam, plus the developer, moderator, and admin operators who work inside the same dark, luminous world.
NEXORA is composed of three client surfaces and one backend:
nexora/apps/web): React, Vite, TypeScript, Tailwind CSS, React Router, TanStack Query, Axios, Framer Motion, Lucide.nexora/apps/mobile): React Native + Expo, TypeScript, Expo Router, NativeWind, with app.json and eas.json prepared for EAS builds.nexora/apps/api): Node.js, Express, TypeScript, REST, JWT access/refresh tokens, bcrypt, Zod, Helmet, CORS, rate limiting.Shared packages live in nexora/packages/ui, nexora/packages/types, and nexora/packages/utils; Prisma lives in nexora/prisma; the repository also contains .env.example, docker-compose.yml, and README.md.
Four roles operate the platform: Gamer/User, Developer, Moderator, and Admin.
Current accepted behavior spans: a cinematic homepage with a hero carousel and content rails; game cards; a full game detail page; backend-powered Discover search with filters, sorting, and pagination; global search across games, developers, categories, and users with autocomplete and search history; a category and platform taxonomy; user profiles with editing and following; library and wishlist; reviews with duplicate prevention; community posts, comments, likes, follows, sharing, activity feed, and notifications; a developer portal with dashboard metrics and a Draft → Submitted → Review → Approved → Published workflow requiring admin approval; an admin panel with approvals, suspensions, review removal, category management, featuring, banner management, and report review; authentication with register, login, logout, JWT access/refresh tokens, bcrypt, forgot/reset password, email verification, protected routes, and role-based authorization; recommendations; payments-ready architecture with orders, purchases, payment status, coupons, promotions, and purchase history via an authorized provider such as Razorpay; seeded demo data; responsive web; performance and SEO requirements; and a defined build order.
Narrow exclusions and boundaries: no pirated or cracked copyrighted games may be hosted or distributed; third-party games must use official authorized store/download links; game uploads are limited to authorized developers or open-source games; copyrighted artwork must not be copied; raw card information must never be stored; passwords, secrets, and private data must never be exposed; and the product must not be claimed as live unless actually deployed.
NEXORA is delivered as first-party web and mobile clients over a first-party REST API. All browsing surfaces — Home, Discover, Games, Categories, Free Games, Upcoming, Search, and the game detail page — are publicly reachable without an account, because discovery is the product's front door. Durable, actor-specific state — wishlist, library, reviews, profile, notifications, purchases, community participation, developer portal, and admin operations — is bound to an application-owned identity so that a player's tracking, a developer's submissions, and an administrator's decisions remain attached to the correct person across sessions and devices.
Identity is established through Sign Up, verified through Email Verification, resumed through Login, and recovered through Account Recovery. Developer-only and admin-only surfaces are protected by role-based authorization; the Developer Application flow is the accepted path by which a gamer becomes an authorized developer, and admin approval is the accepted gate before any submitted game becomes Published.
Third-party game acquisition is not owned by NEXORA: for third-party titles, the platform routes the player to official authorized store/download links. Payment processing for legally sold games is owned by an authorized external provider such as Razorpay; NEXORA owns the order, purchase, payment-status, coupon, promotion, and purchase-history records but never stores raw card information. Malware/security scanning of uploaded game files is an integration point owned by an external scanning service.
Deployment is production-ready by configuration: web on Vercel/Cloudflare or equivalent, backend on Railway/Render/Fly/AWS or equivalent, managed PostgreSQL, S3-compatible storage, and mobile via Expo EAS. The product must not be described as live unless it has actually been deployed; otherwise exact deployment instructions are provided.
Future horizon (not current scope): the recommendation architecture must remain ready for future ML-based recommendations. No ML model is part of current acceptance.
FR-1 — Platform delivery. As a visitor, I should be able to use NEXORA on web, Android, and iOS as a real full-stack product rather than a static UI, so that discovery, tracking, and community work across my devices. (explicit)
FR-2 — Legitimate catalog only. As a platform operator, I should ensure NEXORA does not host or distribute pirated or cracked copyrighted games, so that the marketplace stays lawful. (explicit)
FR-3 — Authorized third-party links. As a gamer, I should be taken to official authorized store/download links for third-party games, so that I acquire them legitimately. (explicit)
FR-4 — Restricted game uploads. As a platform operator, I should allow game uploads only for authorized developers or open-source games, so that uploaded files are legitimate. (explicit)
FR-5 — Premium futuristic UI. As a gamer, I should experience a premium futuristic interface with a dark background, neon accents, glassmorphism, cinematic game artwork, rounded cards, smooth animations, modern typography, and full responsiveness, so that NEXORA feels like a real gaming startup. (explicit)
FR-6 — Brand assets. As a platform operator, I should have a NEXORA logo, favicon, app icon, splash screen, and social preview built from an original abstract “N” + gaming/energy concept, so that the brand is consistent across web and mobile. (explicit)
FR-7 — Availability verification. As a platform operator, I should verify name/domain/app-store availability before launch, so that the brand can actually ship. (explicit)
FR-8 — Web stack. As a developer, I should build the web app with React, Vite, TypeScript, Tailwind CSS, React Router, TanStack Query, Axios, Framer Motion, and Lucide, so that the web client matches the accepted stack. (explicit)
FR-9 — Mobile stack. As a developer, I should build real React Native + Expo Android and iOS apps with TypeScript, Expo Router, and NativeWind — not a WebView — so that mobile is a genuine native experience. (explicit)
FR-10 — Backend stack. As a developer, I should build the backend with Node.js, Express, TypeScript, a REST API, JWT, bcrypt, Zod, Helmet, CORS, and rate limiting, so that the API matches the accepted stack. (explicit)
FR-11 — Database. As a developer, I should use PostgreSQL with Prisma, so that data is stored relationally with migrations. (explicit)
FR-12 — Storage. As a developer, I should use S3-compatible storage for images, videos, and authorized game files, so that media is served reliably. (explicit)
FR-13 — Roles. As a platform operator, I should support the roles Gamer/User, Developer, Moderator, and Admin, so that each participant has the correct capabilities. (explicit)
FR-14 — Homepage navbar. As a gamer, I should see a navbar containing NEXORA, Home, Discover, Games, Categories, Free Games, Upcoming, Community, Search, Wishlist, Notifications, and Profile, so that I can reach every primary destination. (explicit)
FR-15 — Hero carousel. As a gamer, I should see a hero carousel with game artwork, title, genre, rating, platforms, description, “Explore Game,” and “Watch Trailer,” so that featured games are immediately compelling. (explicit)
FR-16 — Homepage sections. As a gamer, I should see Trending, Most Played, New Releases, Free Games, Multiplayer, Indie Spotlight, Coming Soon, Recommended, Editors' Choice, Developer Spotlight, Community, and Footer sections, so that I can browse by intent. (explicit)
FR-17 — Game cards. As a gamer, I should see cover, title, genre, rating, platforms, price/free label, wishlist, and a View Game button with hover effects on each game card, so that I can evaluate and act on a game at a glance. (explicit)
FR-18 — Game page. As a gamer, I should see banner, title/logo, rating, genre, developer, release date, platforms, price, Get Game, Wishlist, description, screenshots, authorized trailer, system requirements, reviews, similar games, and developer information at /game/:slug, so that I can fully evaluate a game. (explicit)
FR-19 — Discover. As a gamer, I should use backend-powered search, pagination, and filters at /discover for genre, platform, price, rating, release date, multiplayer, single-player, online/offline, free-to-play, indie, and early access, and sort by Popular, Newest, Rating, Reviews, and Price, so that I can narrow the catalog precisely. (explicit)
FR-20 — Global search. As a gamer, I should search games, developers, categories, and users with autocomplete and search history, so that I can find anything quickly. (explicit)
FR-21 — Categories. As a gamer, I should browse Action, Adventure, RPG, Strategy, Racing, Sports, Simulation, Horror, Survival, Puzzle, Platformer, Fighting, Shooter, Casual, Multiplayer, MMO, Indie, Open World, and Story Rich, so that I can browse by genre. (explicit)
FR-22 — Platforms. As a gamer, I should browse and filter by Windows, macOS, Linux, Android, iOS, and Web, so that I only see games for my platforms. (explicit)
FR-23 — Profile. As a gamer, I should see avatar, username, bio, joined date, favourite games, library, wishlist, reviews, followers, following, and achievements on a profile, so that I can present and review my activity. (explicit)
FR-24 — Profile editing and following. As a gamer, I should edit my profile and follow users and developers, so that my identity and relationships stay current. (explicit)
FR-25 — Library sections. As a gamer, I should organize games into Playing, Completed, Favourite, Recently Played, and Want to Play, so that my library reflects how I actually play. (explicit)
FR-26 — Wishlist. As a gamer, I should see artwork, price, offers, rating, platform, and release date for wishlisted games, so that I can decide when to buy. (explicit)
FR-27 — Release and price notifications. As a gamer, I should receive notifications for releases and price changes, so that I do not miss a wishlisted game. (explicit)
FR-28 — Reviews. As a gamer, I should rate 1–5 stars and write a review with title, text, recommendation, playtime, and a helpful button, so that I can share my assessment. (explicit)
FR-29 — Duplicate review prevention. As a platform operator, I should prevent duplicate reviews, so that ratings stay honest. (explicit)
FR-30 — Community. As a gamer, I should create posts, comment, like, follow, share, view an activity feed, and receive notifications, so that I can connect with other players. (explicit)
FR-31 — Developer portal dashboard. As a developer, I should see games, views, wishlists, ratings, reviews, downloads, and revenue at /developer, so that I can measure my games. (explicit)
FR-32 — Game creation and media. As a developer, I should create games and upload cover, banner, screenshots, and trailer, and add description, genres, platforms, pricing, and system requirements, so that my game page is complete. (explicit)
FR-33 — Publishing workflow. As a developer, I should move a game through Draft → Submitted → Review → Approved → Published, so that publication follows the accepted process. (explicit)
FR-34 — Admin approval required. As an admin, I should be the only actor who can move a submitted game to Published, so that nothing publishes without approval. (explicit)
FR-35 — Admin panel. As an admin, I should see users, developers, games, reviews, reports, downloads, revenue, and pending submissions at /admin, so that I can operate the platform. (explicit)
FR-36 — Admin actions. As an admin, I should approve/reject games, suspend users/developers, remove reviews, manage categories, feature games, manage banners, and review reports, so that I can govern the marketplace. (explicit)
FR-37 — Authentication. As a user, I should register, log in, log out, use JWT access/refresh tokens, benefit from bcrypt password hashing, reset a forgotten password, verify my email, and be protected by protected routes and role-based authorization, so that my account is secure. (explicit)
FR-38 — No secret exposure. As a platform operator, I should never expose passwords, secrets, or private data, so that users are protected. (explicit)
FR-39 — Prisma models. As a developer, I should define Prisma models for User, Developer, Game, Category, Genre, Platform, GameScreenshot, GameTrailer, Review, Wishlist, Library, Follow, Comment, Post, Notification, Report, DeveloperApplication, GameSubmission, Purchase, Order, Payment, Achievement, and UserAchievement with relationships, indexes, and migrations, so that the data layer matches the accepted schema. (explicit)
FR-40 — REST API. As a developer, I should provide APIs for authentication, games, search, wishlist, library, reviews, developers, admin, and health, including POST /api/auth/register, POST /api/auth/login, GET /api/auth/me, GET /api/games, GET /api/games/:slug, POST /api/games, PUT /api/games/:id, GET /api/search?q=, GET /api/wishlist, POST /api/wishlist/:gameId, GET /api/library, POST /api/library/:gameId, POST /api/games/:gameId/reviews, GET /api/games/:gameId/reviews, POST /api/developers/apply, GET /api/developers/dashboard, POST /api/developers/games, GET /api/admin/users, GET /api/admin/games, PUT /api/admin/games/:id/approve, and GET /api/health, so that all clients have a stable contract. (explicit)
FR-41 — Recommendations. As a gamer, I should receive recommendations based on favourite genres, wishlist, library, ratings, recently viewed/played, popularity, and similar games, so that I discover games I will like. (explicit)
FR-42 — Future ML readiness. As a developer, I should keep the recommendation architecture ready for future ML recommendations, so that the model can be upgraded later without redesign. (explicit, future)
FR-43 — Mobile apps. As a gamer, I should use real React Native + Expo Android and iOS apps with bottom navigation Home | Discover | Library | Wishlist | Profile, plus search, game details, wishlist, library, reviews, profiles, push notifications, deep links, and sharing, so that mobile is a first-class experience. (explicit)
FR-44 — Mobile configuration. As a developer, I should prepare app.json and eas.json, so that EAS builds and submissions work. (explicit)
FR-45 — Media policy. As a platform operator, I should use fictional games and properly licensed assets and never copy copyrighted artwork, so that the platform is legally clean. (explicit)
FR-46 — Media types. As a gamer, I should see game covers, banners, screenshots, trailers, developer logos, avatars, and app icons, so that the catalog is visually complete. (explicit)
FR-47 — Media delivery. As a gamer, I should benefit from lazy loading, optimized images, and CDN-ready storage, so that media loads fast. (explicit)
FR-48 — Security. As a platform operator, I should implement Helmet, CORS, rate limiting, Zod validation, secure authentication, authorization, upload validation, request limits, and secure environment variables, so that the platform is hardened. (explicit)
FR-49 — Developer-only game file uploads. As a platform operator, I should allow only authorized developers to upload game files, so that uploaded content is trustworthy. (explicit)
FR-50 — Malware scanning integration point. As a platform operator, I should have a malware/security scanning integration point for uploaded files, so that scanning can be wired in. (explicit)
FR-51 — Payments architecture. As a gamer, I should be able to purchase legally sold games through orders, purchases, payment status, coupons, promotions, and purchase history, so that buying is straightforward. (explicit)
FR-52 — Authorized payment provider. As a platform operator, I should prepare integration with an authorized provider such as Razorpay, so that payments are processed legitimately. (explicit)
FR-53 — No raw card storage. As a platform operator, I should never store raw card information, so that cardholders are protected. (explicit)
FR-54 — Demo data. As a developer, I should seed 50 fictional games, 15 developers, 10+ categories, 100 reviews, and 30 demo users, including the example games Neon Drift, Shadow Protocol, Void Runner, Kingdoms Beyond, Cyber Realm, Pixel Frontier, Dark Horizon, Astro Clash, Mystic Valley, and Velocity X, so that the platform is demonstrable. (explicit)
FR-55 — Responsive web. As a gamer, I should use NEXORA on mobile, tablet, laptop, desktop, and ultrawide screens with no horizontal overflow, so that the layout always fits. (explicit)
FR-56 — Performance. As a gamer, I should benefit from lazy loading, skeleton loaders, pagination, API caching, code splitting, optimized database queries, optimized images, and infinite scrolling where appropriate, so that the platform feels fast. (explicit)
FR-57 — SEO. As a platform operator, I should provide metadata, Open Graph, social cards, sitemap, robots.txt, canonical URLs, and structured data, so that NEXORA is discoverable and shareable. (explicit)
FR-58 — Project structure. As a developer, I should use nexora/apps/web, nexora/apps/mobile, nexora/apps/api, nexora/packages/ui, nexora/packages/types, nexora/packages/utils, nexora/prisma, .env.example, docker-compose.yml, and README.md, so that the repository matches the accepted layout. (explicit)
FR-59 — Deployment. As a platform operator, I should deploy production-ready with web on Vercel/Cloudflare or equivalent, backend on Railway/Render/Fly/AWS or equivalent, managed PostgreSQL, S3-compatible storage, and mobile via Expo EAS, so that NEXORA can run in production. (explicit)
FR-60 — No false liveness claims. As a platform operator, I should not claim the product is live unless it is actually deployed; if deployment is available I should deploy it and provide the real URLs, otherwise I should provide exact deployment instructions. (explicit)
FR-61 — End-to-end testing. As a developer, I should test the complete flow Register → Login → Search → View Game → Wishlist → Library → Review → Developer Registration → Submit Game → Admin Approval → Published Game, so that the core journey works. (explicit)
FR-62 — Defect cleanup. As a developer, I should fix all broken imports, TypeScript errors, console errors, API errors, authentication problems, and responsive issues, so that the product is clean. (explicit)
FR-63 — Build order. As a developer, I should build in the order Database → Backend → Authentication → Web UI → Game Marketplace → Search → Wishlist/Library → Community → Developer Portal → Admin Panel → Mobile Apps → Testing → Deployment, so that dependencies are respected. (explicit)
FR-64 — Handover documentation. As a platform operator, I should receive setup commands, environment variables, database setup, demo credentials, API documentation, web commands, Android/iOS build commands, and deployment instructions, so that the project can be run and shipped. (explicit)
FR-65 — Sign Up. As a gamer, I should create an account through Sign Up, so that I can build durable wishlist, library, review, and community state. (required_inference)
FR-66 — Login. As any persona, I should log in to resume my protected work, so that my state stays bound to me. (required_inference)
FR-67 — Account Recovery. As any persona, I should reset a forgotten password, so that I can regain access. (required_inference)
FR-68 — Email Verification. As any persona, I should verify my email, so that my account is trusted. (required_inference)
FR-69 — Developer Application. As a gamer, I should apply for developer access, so that I can publish games. (required_inference)
FR-70 — Authorized developer gate. As a platform operator, I should require authorized developer status before developer-only upload and publishing workflows, so that only vetted developers publish. (required_inference)
/developer, Game Editor, or Submissions without authorized developer status.FR-71 — Admin approval gate. As a platform operator, I should require admin approval before a submitted game becomes Published, so that nothing publishes unreviewed. (required_inference)
FR-72 — Authorized external store links. As a gamer, I should be routed to authorized external store/download links for third-party games, so that acquisition is legitimate. (required_inference)
FR-73 — Authorized payment processing. As a gamer, I should have my payment processed by an authorized provider, so that my purchase is legitimate and my card data is safe. (required_inference)
FR-74 — Backend persistence and authorization. As a developer, I should persist protected durable workflows with validation, authorization, and migrations, so that state is correct and access is enforced. (required_inference)
A player who arrives to find something worth playing and to stay connected to the games and people they care about. Their product context is the discovery loop: browse Home rails, filter in Discover, land on a game page, and decide. Their primary goal is to discover games, track them, and engage with the community.
Distinct accepted responsibilities: browsing and searching the catalog; viewing game pages; adding games to Wishlist; organizing games into Library sections Playing, Completed, Favourite, Recently Played, and Want to Play; writing 1–5 star reviews with title, text, recommendation, and playtime, and marking reviews helpful; following users and developers; creating posts, commenting, liking, sharing, and reading the activity feed; receiving release and price-change notifications; editing their profile; and purchasing legally sold games.
Relevant inputs and decisions: which filters to apply, which game to open, whether to wishlist or add to library, what rating and recommendation to give, whom to follow, and whether to buy now or wait for a price change.
Interactions with other accepted participants: they read developer information on game pages, follow developers, see developer-published games, and interact with other gamers through posts, comments, likes, and follows. They are the audience for moderator and admin decisions that remove content or suspend accounts.
Observable success: a populated wishlist and library, published reviews on game pages, a following/followers list, community activity, and notifications for the games they track.
An independent game maker who has been authorized to publish on NEXORA. Their product context is the developer portal: a dashboard of metrics and a game editor that produces submissions for admin review. Their primary goal is to publish games and measure how they perform.
Distinct accepted responsibilities: applying for developer access; tracking games, views, wishlists, ratings, reviews, downloads, and revenue on the dashboard; creating games with cover, banner, screenshots, trailer, description, genres, platforms, pricing, and system requirements; moving games through Draft → Submitted → Review → Approved → Published; and uploading game files as an authorized developer.
Relevant inputs and decisions: what media and metadata to provide, what price to set, when to submit for review, and how to respond to a rejection.
Interactions with other accepted participants: they depend on admin approval before publication, they see gamer reviews and wishlist activity in their metrics, and their public developer information appears on game pages where gamers can follow them.
Observable success: a Published game, growing views, wishlists, ratings, reviews, downloads, and revenue, and a clean submission history.
A community safety operator. Their product context is the moderation workspace inside the admin surfaces, focused on reviews and reports. Their primary goal is to keep the platform safe by acting on reported content.
Distinct accepted responsibilities: reviewing community content and reports; removing reviews; and handling reported posts and comments.
Relevant inputs and decisions: which reports are valid, whether content violates platform rules, and whether to remove content or dismiss a report.
Interactions with other accepted participants: they act on content created by gamers and developers, and they work alongside admins who own the broader platform controls.
Observable success: a cleared report queue, removed violating content, and a community feed that stays usable.
The platform operator. Their product context is the admin panel and moderation surfaces, working in dense tables with tabular numerals. Their primary goal is to operate the marketplace and keep it lawful and healthy.
Distinct accepted responsibilities: overseeing users, developers, games, reviews, reports, downloads, revenue, and pending submissions; approving or rejecting games; suspending users and developers; removing reviews; managing categories; featuring games; managing banners; and reviewing reports. Admin approval is required before a submitted game is published.
Relevant inputs and decisions: whether a submission meets platform standards, whether an account should be suspended, which games to feature, which banners to run, and how to resolve reports.
Interactions with other accepted participants: they gate developer publication, they act on gamer and developer accounts and content, and they share the reports workspace with moderators.
Observable success: a short pending-submission queue, a resolved report queue, a curated featured set, and a marketplace with no pirated or cracked content.
/game/:slug./game/:slug, the gamer selects Get Game in the sticky glass purchase panel.Muse: Gleb Kuznetsov. Headline: a dark void where the game itself is the light source.
The register is premium-futuristic, high-energy, and slightly awe-inducing: dark, luminous, motion-first. The emotional goal is “this is where the next game I love is waiting.” The same world stays legible and calm enough for developers in the portal and moderators and admins in dense tables.
Palette (dark mode)
| Role | Value |
|---|---|
| Background (void) | #05060E |
| Surface (glass) | #0D1024 |
| Text | #EAF0FF |
| Primary (system light) | #00E5FF |
| Accent (hot) | #FF2E97 |
| Muted | #8A93C4 |
| Violet (glows and gradient midpoints only) | #7A5CFF |
The ground is a near-black void with a faint indigo cast (#05060E), never pure #000. Glass panels are #0D1024 at 55–70% opacity with a 1px rgba(255,255,255,0.08) top light edge and a 24px backdrop blur; they sit as floating layers, never as flat cards. Cyan #00E5FF is the system light — focus rings, active nav rail, progress bars, rating stars, primary CTA fill on hover. Magenta #FF2E97 is the hot accent used sparingly and only for desire: “Free,” discount badges, the wishlist heart when active, live-now dots, and the second stop of every gradient. Violet #7A5CFF appears only inside glows and gradient midpoints, never as flat UI fill. Body text #EAF0FF at 92% opacity for paragraphs; #8A93C4 for metadata and labels. Contrast: #EAF0FF on #05060E is >15:1; cyan on near-black is >11:1; magenta is used for text only at 18px+ semibold or larger. Proportion: 70% void, 20% glass surface, 8% cyan, 2% magenta.
Typography
font-variant-numeric: tabular-nums.Shape language
Engineered softness inside a dark void. Cards are 20px radius on desktop, 16px on mobile, with a 1px luminous top edge and a 1px rgba(0,0,0,0.6) bottom edge so each panel reads as a lit physical slab. Buttons are 12px radius (not pills — pills read too friendly for this register); the primary CTA is a cyan fill with a 1px cyan glow at 0 0 24px rgba(0,229,255,0.35). Chips and filter tokens are 8px radius with hairline borders. Game covers keep a 16px radius with a 1px inner hairline and a bottom gradient scrim so titles stay readable over any artwork. Dividers are 1px rgba(255,255,255,0.06). Nothing is fully circular except avatars, platform dots, and the notification badge.
Layout
A 12-column grid on a 1440 max-width container with 24px gutters (16px at 375px), but the hero breaks the grid entirely: full-bleed to the viewport edges with content locked to a 6-column left block. The homepage is a vertical sequence of horizontal rails — each section (Trending, Most Played, New Releases, Free Games, Multiplayer, Indie Spotlight, Coming Soon, Recommended, Editors' Choice) is a horizontally scrollable row of 200px-wide (mobile) to 280px-wide (desktop) cover cards with a snap point and a fade mask at both edges. Magenta/cyan gradient hairlines separate rails instead of whitespace. Discover is the opposite: a strict two-column shell — a 280px sticky filter rail on the left (glass panel, scrolls independently) and a 3/4-up responsive card grid on the right with a sticky sort bar. The game page is a full-bleed banner hero, then a two-column body: 8 columns of description/screenshots/reviews, 4 columns of a sticky glass purchase panel with price, Get Game, Wishlist, and platform icons. Developer and admin consoles keep the same dark glass language but compress to a 240px left nav rail plus dense data tables with 40px rows and tabular numerals — no light-mode escape hatch.
Imagery
Fictional, self-generated game artwork only — abstract 3D key art: volumetric nebulae, low-poly terrain, chrome ship hulls, neon city canyons, particle storms, glass shards. Every cover is a 3:4 composition with a strong single light source and a deep black surround so it sits naturally in the void. Banners are 21:9 cinematic crops with a subject pushed to the right third and negative space on the left where the title block lands. Screenshots are in-engine-style renders at 16:9. Developer logos are geometric monograms in cyan/magenta on transparent. Avatars are procedural gradient orbs with an initial, never stock photos of people. All imagery is served from S3-compatible storage with a CDN, WebP/AVIF, srcset at 320/640/960/1280, and lazy loading below the fold. No real copyrighted game art, ever.
Avoid: any blue–indigo primary (#2563EB, #4F46E5, #6366F1, #7C3AED) on white; Inter, Roboto, Arial, Helvetica, Poppins, or system-ui as heading or body fonts; a centred hero with headline + subtext + button over a gradient blob; a uniform grid of identical hover-lift cards with the same shadow on every section; light-mode dashboards or white admin panels; real copyrighted game artwork, logos, screenshots, or trailers; flat, unstyled rails that wrap instead of scrolling; any horizontal page overflow at 375px; full-saturation magenta used as a large background fill.
The Lit Slab in the Void — the NEXORA first screen.
The first screen is a full-bleed cinematic scene, not a centred headline stack. A 21:9 fictional game key art fills the viewport edge to edge, darkened by a 55% black gradient from the left and a 30% vignette; the artwork drifts on a slow parallax loop. Locked to the left 6 of 12 columns sits the content block, bottom-aligned to the viewport:
ACTION RPG · 4.8 ★ · 12.4K REVIEWS),clamp(40px, 9vw, 120px) with −0.03em tracking and 0.95 line-height, wrapping to at most two lines,#EAF0FF at 92%,A vertical stack of 5 carousel ticks sits at the far right edge, the active one a 24px cyan bar, the rest 1px hairlines — selecting any tick cross-fades the whole scene over 700ms. A thin cyan hairline runs along the very bottom of the hero, and a “Scroll” micro-label with a 12px cyan chevron sits bottom-centre. On mobile the artwork crops to 4:5 with the subject pushed to the top third and the content block sits below it in the void, title at 40px, buttons full-width stacked — nothing is ever covered or clipped.
The signature moves that carry the concept through the product:
/game/:slug — 4 columns wide, 24px backdrop blur, price in tabular numerals at 40px, cyan Get Game button with a 24px glow, and a platform-dot row — stays pinned as the description, screenshots, system requirements, and reviews scroll past it.Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: layered_2d
Landing Hero Motion Brief
cubic-bezier(0.22,1,0.36,1), staggered 60ms per index and capped at 8 items; a 6px card hover lift with a 300ms cover cross-fade; a magenta wishlist heart that pops and holds.prefers-reduced-motion, the parallax loop, pointer tilt, and staggered reveals collapse to instant opacity-only states; the hero shows a single static slide with the tick rail still selectable; rails stop auto-motion and become horizontally scrollable rows (overflow-x: auto) whose items wrap or scroll into full view, so every item remains fully readable.NFR-1 — Security controls. Helmet, CORS, rate limiting, Zod validation, secure authentication, authorization, upload validation, request limits, and secure environment variables must all be active. (explicit) Rationale: the platform handles accounts, uploads, and payments.
NFR-2 — Secret and private-data protection. Passwords, secrets, and private data must never be exposed. (explicit) Rationale: explicit hard constraint.
NFR-3 — Card data protection. Raw card information must never be stored. (explicit) Rationale: explicit hard constraint; payment processing is delegated to an authorized provider.
NFR-4 — Upload authorization. Only authorized developers can upload game files. (explicit) Rationale: explicit hard constraint.
NFR-5 — Malware scanning integration point. A malware/security scanning integration point must exist in the upload pipeline. (explicit) Rationale: explicit requirement for uploaded file safety.
NFR-6 — Responsive web. The web app must support mobile, tablet, laptop, desktop, and ultrawide screens with no horizontal overflow. (explicit) Rationale: explicit requirement.
NFR-7 — Performance techniques. Lazy loading, skeleton loaders, pagination, API caching, code splitting, optimized database queries, optimized images, and infinite scrolling where appropriate must be applied. (explicit) Rationale: explicit requirement.
NFR-8 — SEO artifacts. Metadata, Open Graph, social cards, sitemap, robots.txt, canonical URLs, and structured data must be present. (explicit) Rationale: explicit requirement.
NFR-9 — Media licensing. Only fictional games and properly licensed assets may be used; copyrighted artwork must not be copied. (explicit) Rationale: explicit hard constraint.
NFR-10 — Media delivery. Media must be served from S3-compatible CDN-ready storage with lazy loading and optimized images. (explicit) Rationale: explicit requirement.
NFR-11 — Data integrity. Prisma models must define relationships, indexes, and migrations. (explicit) Rationale: explicit requirement.
NFR-12 — Deployment readiness. The product must be production-ready with the accepted deployment targets, and must not be claimed live unless actually deployed. (explicit) Rationale: explicit hard constraint.
NFR-13 — Defect-free build. Broken imports, TypeScript errors, console errors, API errors, authentication problems, and responsive issues must be fixed. (explicit) Rationale: explicit requirement.
NFR-14 — Recommendation extensibility. The recommendation architecture must remain ready for future ML recommendations. (explicit, future) Rationale: explicit future requirement.
NFR-15 — Access continuity. Protected durable state must remain bound to the correct participant across sessions and devices. (required_inference) Rationale: indispensable for wishlist, library, reviews, submissions, and administrative decisions to be trustworthy.
NFR-16 — Readable content at every viewport. Headlines, wordmarks, labels, numbers, item images, cards, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering them. Crops, bleeds, and off-edge placement are for decoration only. Moving and scrollable content may cross the viewport edge by design, judged by whether it actually moves and whether every item becomes fully readable as it passes; with prefers-reduced-motion it stops and shows whole items. (explicit, from creative direction) Rationale: explicit readability rule that takes precedence over crop or bleed gestures.
Web (nexora/apps/web): React, Vite, TypeScript, Tailwind CSS, React Router, TanStack Query, Axios, Framer Motion, Lucide. (explicit)
Mobile (nexora/apps/mobile): React Native + Expo, TypeScript, Expo Router, NativeWind; real Android/iOS apps, not a WebView; app.json and eas.json prepared for EAS. (explicit)
Backend (nexora/apps/api): Node.js, Express, TypeScript, REST API, JWT access/refresh tokens, bcrypt, Zod, Helmet, CORS, rate limiting. (explicit)
Database: PostgreSQL with Prisma (models, relationships, indexes, migrations). (explicit)
Storage: S3-compatible storage for images, videos, and authorized game files, CDN-ready. (explicit)
Shared packages: nexora/packages/ui, nexora/packages/types, nexora/packages/utils. (explicit)
Repository root: nexora/prisma, .env.example, docker-compose.yml, README.md. (explicit)
Payments: integration prepared with an authorized provider such as Razorpay; raw card information is never stored. (explicit)
Deployment: web on Vercel/Cloudflare or equivalent; backend on Railway/Render/Fly/AWS or equivalent; managed PostgreSQL; S3-compatible storage; mobile via Expo EAS. (explicit)
Testing: end-to-end verification of Register → Login → Search → View Game → Wishlist → Library → Review → Developer Registration → Submit Game → Admin Approval → Published Game. (explicit)
Constraints (binding)
Assumptions (narrow, labeled)
[Assumption] Browsing surfaces — Home, Discover, Games, Categories, Free Games, Upcoming, Search, and /game/:slug — are publicly reachable without an account, because discovery is the product's front door and no source states otherwise.[Assumption] Durable actor-specific state (wishlist, library, reviews, profile, notifications, purchases, community participation, developer portal, admin operations) requires an established application identity so that state remains bound to the correct participant. (required_inference)[Assumption] Developer-only and admin-only surfaces are protected by role-based authorization; the Developer Application flow is the accepted path to authorized developer status. (required_inference)[Assumption] Payment processing is performed by an authorized external provider such as Razorpay; NEXORA owns order, purchase, payment-status, coupon, promotion, and purchase-history records only. (required_inference)[Assumption] Malware/security scanning of uploaded game files is an external integration point; NEXORA owns the integration point, not the scanner. (explicit)[Assumption] For third-party games, acquisition is owned by the official authorized store/download destination, not by NEXORA. (explicit)[Assumption] ML-based recommendations are a future horizon; current recommendations use favourite genres, wishlist, library, ratings, recently viewed/played, popularity, and similar games. (explicit)[Default — not specified by user] Exact seed values for the 50 fictional games beyond the ten named examples, the 15 developer identities, the 10+ categories beyond the listed taxonomy, the 100 reviews, and the 30 demo users are generated as fictional, licensed content consistent with the media policy.[Default — not specified by user] Exact copy for legal pages, terms, and privacy text is not specified and is out of current scope beyond the stated constraints.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!