Page 1 of 23
System Requirements Document for calm-ever-ai
1. Introduction
Ever Design is a modern, AI-powered design and video creation application for everyday makers and small-business owners who want to feel like designers without operating complex software. The product lets users create designs from scratch or from templates — flyers, posters, logos, social media posts, invitations, and banners — edit text, images, shapes, colors, backgrounds, and other elements, upload their own images and videos, generate videos with AI from text prompts, build videos from templates, images, text, and music, add AI voiceovers and automatic captions, and save, edit, preview, and export their projects.
The product is governed by a weekly credit system: every free user receives 50 credits every week, credits automatically reset to 50 every 7 days, AI design generation and AI video generation consume credits, the user's remaining credits are clearly displayed, AI features are blocked when credits are insufficient, and users may purchase additional credits or upgrade to a premium plan that can provide more weekly credits and additional features.
The intended audience is beginner creators and small-business owners who need fast, simple, mobile-friendly creation tools. The product must be modern, simple, fast, mobile-friendly, and easy for beginners, and must be built with a scalable structure so more AI features can be added later.
Page 2 of 23
2. System Overview
Ever Design is delivered as a first-party web application with application-owned identity. Anonymous visitors land on a public entry surface, establish identity through self-service enrollment or returning verification, and then work inside authenticated creation workspaces. All design and video work, uploaded media, credit state, and premium access are bound to the signed-in user so projects and allowances can be resumed across sessions.
The current delivery covers: design creation from scratch or templates across the six supported formats; element editing; image and video upload; AI video generation from text prompts; video assembly from templates, images, text, and music; AI voiceovers and automatic captions; project save, edit, preview, and export; the weekly 50-credit allowance with automatic 7-day reset; credit display; credit-gated AI features; credit purchase; and premium upgrade.
Actors are the three accepted personas — Free User (Designer/Creator), AI Video Creator, and Premium Subscriber — plus non-persona actors: the payment/plan provider that processes credit purchases and premium upgrades, and the AI generation services that execute design and video generation, voiceover, and caption work.
Narrow exclusions: no invitation-based or administrator-provisioned enrollment is established; no differentiated role-based permissions over shared product state are established; no capabilities beyond the accepted design, video, upload, AI, credit, and billing scope are included.
Page 3 of 23
2a. Product Interpretation and Delivery Boundary
Ever Design is a first-party application. Its pages, editors, credit meter, and billing surfaces are owned and rendered by the application itself. Identity is application-owned: creators begin independently, so enrollment is self-service and returning users verify themselves before reaching saved projects, credit state, and premium access. Anonymous visitors can read the public entry surface and begin enrollment; everything that carries durable user state is protected.
AI generation, voiceover, and caption work is executed by AI services behind the application, but the human interaction — entering a prompt, choosing a template, spending credits, watching a job run, and receiving the result — is owned by first-party surfaces. Payment and plan processing for additional credits and premium upgrades is handled by a payment/plan provider; the application owns the surrounding purchase and upgrade interaction and reflects the resulting credit and plan state.
Current scope is everything listed in Section 2. Future scope is limited to the explicitly stated intent that the structure remain scalable so more AI features can be added later; no specific future AI feature is committed, and none is included in current pages or acceptance.
2b. Source Content Inventory
No reference directive in this project declares content_source authority, so no source content inventory is included.
2c. Page Content and Component Coverage
Page 4 of 23
Landing
- Information/state: Anonymous public entry. Presents Ever Design as an AI-powered design and video creation app for beginner creators; communicates the six supported design formats (flyers, posters, logos, social media posts, invitations, banners), AI video generation from text prompts, video creation from templates, images, text, and music, AI voiceovers and automatic captions, and the weekly allowance of 50 credits.
- Primary actions: Begin enrollment ("Start creating — free"); navigate to returning verification.
- Supporting actions: Read capability and credit-allowance explanation; view example design and video outputs.
- Domain entities: Capability descriptions, supported design formats, credit allowance statement, example design/video previews.
- Component responsibilities: Hero headline and primary call to action; credit-allowance statement with a "FREE" marker; collage of example design and video cards; capability sections for design creation, video creation, AI video, voiceover/captions, and export; enrollment and verification entry points.
- States: Loading — hero and example cards render progressively. Empty — not applicable (static public content). Success — visitor reaches enrollment or verification. Error — if example content fails to load, the hero, allowance statement, and both entry points remain fully usable. Recovery — retry loading example content without blocking entry.
Sign Up
- Information/state: Anonymous enrollment surface. Collects the minimum identity information needed to create an Ever Design account and explains that a new free account receives 50 credits every week.
- Primary actions: Submit enrollment to create the account.
- Supporting actions: Move to returning verification if the visitor already has an account; review the weekly credit allowance statement.
- Domain entities: Enrollment identity fields, account record, initial free credit allowance.
- Component responsibilities: Enrollment form; allowance explanation; link to Login; validation and error messaging.
- States: Loading — submission in progress with the form locked. Empty — initial blank form. Success — account created and the creator enters the authenticated application with a 50-credit free allowance. Error — invalid or already-used identity information is reported inline with the form preserved. Recovery — correct the reported fields and resubmit, or switch to Login.
Login
- Information/state: Anonymous returning-verification surface for creators who already have an account and durable projects, credit state, or premium access.
- Primary actions: Submit credentials to verify identity.
- Supporting actions: Move to Sign Up for a new account; recover access when credentials are not accepted.
- Domain entities: Account credentials, session.
- Component responsibilities: Verification form; link to Sign Up; error and recovery messaging.
- States: Loading — verification in progress. Empty — initial blank form. Success — the creator enters the authenticated application with prior projects, credit balance, and plan state restored. Error — rejected credentials are reported without disclosing which element failed. Recovery — retry, or use the provided recovery path, or switch to Sign Up.
Page 5 of 23
Dashboard
- Information/state: Authenticated starting point. Shows the creator's remaining credits and reset timing, recent and in-progress projects, and entry points into design and video creation.
- Primary actions: Start a new design; start a new video; open an existing project.
- Supporting actions: View remaining credits and reset timing; open the project library; open credits and billing surfaces.
- Domain entities: User account, project records, credit balance, reset date, plan state.
- Component responsibilities: Credit meter; recent-project list; creation entry points for design and video; navigation to projects, credits, and billing.
- States: Loading — credit meter and project list load with placeholders. Empty — no projects yet, with a prompt to start the first design or video. Success — projects and current credit balance are shown. Error — if the project list fails, the credit meter and creation entry points remain usable. Recovery — retry loading the project list.
Design Studio
- Information/state: Authenticated design-start workspace. Presents blank-canvas start and a template library covering flyers, posters, logos, social media posts, invitations, and banners.
- Primary actions: Start a blank design; start from a selected template.
- Supporting actions: Filter or browse templates by format; preview a template before starting.
- Domain entities: Design formats, template records, new design project.
- Component responsibilities: Format selection; template browsing and preview; blank-canvas start; credit meter.
- States: Loading — template library loads progressively. Empty — no templates match the current filter, with blank-canvas start still available. Success — the chosen blank canvas or template opens in the Design Editor. Error — if templates fail to load, blank-canvas start remains available. Recovery — retry loading templates or proceed with a blank design.
Design Editor
- Information/state: Authenticated focused design workspace. Holds the working design and its elements — text, images, shapes, colors, backgrounds, and other elements — with the current credit balance visible.
- Primary actions: Edit text; edit images; edit shapes; change colors; change backgrounds; edit other elements; save the project; preview the design; export the design.
- Supporting actions: Add elements; select and reposition elements; use AI design generation; open uploads to bring in images or videos; adjust element properties.
- Domain entities: Design project, elements (text, image, shape, color, background, other), element properties, saved project state, export output.
- Component responsibilities: Canvas; element tool rail; properties panel; AI design generation control; uploads entry; save, preview, and export controls; credit meter.
- States: Loading — the design and its elements load into the canvas. Empty — a new design with no elements yet, with element tools available. Success — edits are applied and the project saves, previews, and exports. Error — a failed save or export is reported with the working design preserved; insufficient credits block AI design generation with an explanation. Recovery — retry save or export; obtain credits through the Credits or Billing surface and retry AI generation.
Page 6 of 23
Uploads
- Information/state: Authenticated media workspace listing the creator's uploaded images and videos and their availability for use in projects.
- Primary actions: Upload images; upload videos; select an uploaded item for use in a project.
- Supporting actions: Review uploaded items; remove an uploaded item.
- Domain entities: Uploaded image assets, uploaded video assets, upload status.
- Component responsibilities: Upload control; media library; item selection; upload progress and error reporting; credit meter.
- States: Loading — the media library loads. Empty — no uploads yet, with the upload control prominent. Success — the uploaded item appears in the library and is available to projects. Error — an unsupported or failed upload is reported and the library is unchanged. Recovery — retry the upload or choose a different file.
AI Video
- Information/state: Authenticated AI video generation workspace. Accepts a text prompt and shows the credit cost and the creator's remaining credits before generation begins.
- Primary actions: Enter a text prompt; start AI video generation; review the generated video.
- Supporting actions: View remaining credits and reset timing; open the Credits or Billing surface when credits are insufficient; send the generated video onward to video editing.
- Domain entities: Text prompt, generation job, generated video, credit cost, credit balance.
- Component responsibilities: Prompt input; generation control with credit-cost indication; job progress; result preview; credit meter; insufficient-credit block with a route to Credits and Billing.
- States: Loading — generation job runs with progress shown. Empty — no prompt entered yet. Success — the generated video is presented for review and further editing. Error — a failed generation is reported and credits are not consumed for the failed job; insufficient credits block generation before it starts. Recovery — revise the prompt and retry, or obtain credits and retry.
Video Studio
- Information/state: Authenticated video creation workspace for assembling a video from templates, images, text, and music, with the current credit balance visible.
- Primary actions: Choose a video template; add images; add text; add music; assemble and save the video project.
- Supporting actions: Select uploaded media from Uploads; reorder and adjust added elements; preview the assembled video.
- Domain entities: Video project, video template, images, text elements, music track, timeline/sequence.
- Component responsibilities: Template selection; media and text insertion; music selection; sequence arrangement; preview; save control; credit meter.
- States: Loading — templates and the creator's media load. Empty — a new video project with no elements yet, with template, image, text, and music controls available. Success — the assembled video saves and previews. Error — a failed save or preview is reported with the arrangement preserved. Recovery — retry the failed action or adjust the arrangement.
Page 7 of 23
Video Enhancements
- Information/state: Authenticated video workspace for adding AI voiceovers and automatic captions to a video project, showing credit cost and remaining credits.
- Primary actions: Add an AI voiceover; add automatic captions; review the enhanced video.
- Supporting actions: View remaining credits; open Credits or Billing when credits are insufficient; return to Video Studio to adjust the underlying video.
- Domain entities: Video project, voiceover track, caption track, credit cost, credit balance.
- Component responsibilities: Voiceover control; caption control; enhancement progress; enhanced preview; credit meter; insufficient-credit block with a route to Credits and Billing.
- States: Loading — voiceover or caption generation runs with progress shown. Empty — a video project with no voiceover or captions yet. Success — the voiceover and captions are attached and previewable with the video. Error — a failed enhancement is reported and credits are not consumed for the failed job; insufficient credits block the enhancement before it starts. Recovery — retry the enhancement, or obtain credits and retry.
Projects
- Information/state: Authenticated project library listing the creator's saved design and video projects with their type and last-edited state.
- Primary actions: Open a project for editing; preview a project; export a project.
- Supporting actions: Review project list; distinguish design projects from video projects.
- Domain entities: Project records, project type, saved state, export output.
- Component responsibilities: Project list; open, preview, and export controls; credit meter.
- States: Loading — the project list loads. Empty — no saved projects yet, with a prompt to start creating. Success — projects open, preview, and export. Error — a failed open, preview, or export is reported without altering the saved project. Recovery — retry the failed action.
Credits
- Information/state: Authenticated account workspace showing the creator's remaining credits, the weekly allowance, and when the balance resets.
- Primary actions: Review remaining credits and reset timing.
- Supporting actions: Move to Billing to purchase additional credits or upgrade to a premium plan.
- Domain entities: Credit balance, weekly allowance, reset date, plan state.
- Component responsibilities: Credit balance display; reset-timing display; allowance explanation; route to Billing.
- States: Loading — balance and reset timing load. Empty — not applicable (every account holds an allowance). Success — current balance and reset timing are shown. Error — if the balance cannot be loaded, an explicit unavailable state is shown with a retry. Recovery — retry loading the balance.
Page 8 of 23
AI Controls
- Information/state: Authenticated AI-generation access state that communicates whether the creator currently has enough credits for AI design generation and AI video generation, and blocks those features when credits are insufficient.
- Primary actions: Confirm credit eligibility for an AI feature; proceed to the AI feature when eligible.
- Supporting actions: View remaining credits and the credit cost of the AI feature; move to Credits or Billing when blocked.
- Domain entities: Credit balance, AI feature credit cost, eligibility state.
- Component responsibilities: Eligibility indicator; insufficient-credit block with explanation; route to Credits and Billing; credit meter.
- States: Loading — eligibility is being determined. Empty — not applicable. Success — eligible, and the AI feature can be started. Error — insufficient credits block the AI feature with a clear explanation and a route to obtain credits. Recovery — purchase credits or upgrade, then return and retry the AI feature.
Billing
- Information/state: Authenticated commercial workspace for purchasing additional credits or upgrading to a premium plan, showing current plan state and available options.
- Primary actions: Purchase additional credits; upgrade to a premium plan.
- Supporting actions: Review current plan and credit allowance; review what premium provides (more weekly credits and additional features).
- Domain entities: Plan options, credit packs, current plan state, payment/plan provider transaction.
- Component responsibilities: Plan and credit-pack options; purchase and upgrade controls; provider handoff for payment processing; resulting plan and credit state display; credit meter.
- States: Loading — plan and credit-pack options load. Empty — not applicable. Success — the purchase or upgrade completes and the new credit balance and plan state are reflected. Error — a declined or failed provider transaction is reported with the current plan and balance unchanged. Recovery — retry the purchase or upgrade, or choose a different option.
Page 9 of 23
3. Functional Requirements
FR-1 — Create designs from scratch or from templates (explicit)
As a Free User (Designer/Creator), I should be able to start a design from a blank canvas or from a template so that I can begin creating immediately.
- Trigger/input: The creator opens Design Studio and chooses blank canvas or a template.
- Observable result: The chosen blank canvas or template opens in the Design Editor as a working design project.
- Access state: Authenticated.
- Failure/recovery: If templates fail to load, blank-canvas start remains available; the creator can retry loading templates.
- Continuation: The creator edits the design in the Design Editor.
FR-2 — Create flyers, posters, logos, social media posts, invitations, and banners (explicit)
As a Free User (Designer/Creator), I should be able to create flyers, posters, logos, social media posts, invitations, and banners so that I can produce the specific design formats I need.
- Trigger/input: The creator selects one of the six supported formats when starting or working on a design.
- Observable result: The design project is created and edited in the selected format.
- Access state: Authenticated.
- Failure/recovery: If a format's templates fail to load, the creator can start that format from a blank canvas.
- Continuation: The creator edits, saves, previews, and exports the design.
FR-3 — Edit text, images, shapes, colors, backgrounds, and other elements (explicit)
As a Free User (Designer/Creator), I should be able to edit text, images, shapes, colors, backgrounds, and other elements so that I can shape the design to my intent.
- Trigger/input: The creator selects an element in the Design Editor and changes its properties.
- Observable result: The change is applied to the element on the canvas.
- Access state: Authenticated.
- Failure/recovery: If a save fails, the working design is preserved and the failure is reported.
- Continuation: The creator continues editing or saves, previews, and exports.
FR-4 — Upload images and videos (explicit)
As a Free User (Designer/Creator), I should be able to upload images and videos so that I can use my own media in designs and videos.
- Trigger/input: The creator uploads an image or video file from Uploads.
- Observable result: The uploaded item appears in the media library and becomes selectable for projects.
- Access state: Authenticated.
- Failure/recovery: An unsupported or failed upload is reported and the library is unchanged; the creator can retry or choose a different file.
- Continuation: The creator selects the uploaded item in a design or video project.
FR-5 — Generate videos with AI from text prompts (explicit)
As an AI Video Creator, I should be able to generate a video with AI from a text prompt so that I can produce video content without filming or editing footage myself.
- Trigger/input: The creator enters a text prompt in AI Video and starts generation.
- Observable result: A generated video is produced and presented for review.
- Access state: Authenticated; AI video generation consumes credits and requires sufficient credits.
- Failure/recovery: A failed generation is reported and credits are not consumed for the failed job; insufficient credits block generation before it starts, with a route to Credits and Billing.
- Continuation: The creator reviews the generated video and continues into video editing.
FR-6 — Create videos from templates, images, text, and music (explicit)
As an AI Video Creator, I should be able to create videos from templates, images, text, and music so that I can assemble a finished video from the pieces I have.
- Trigger/input: The creator chooses a video template and adds images, text, and music in Video Studio.
- Observable result: The assembled video project is saved and previewable.
- Access state: Authenticated.
- Failure/recovery: A failed save or preview is reported with the arrangement preserved; the creator can retry or adjust.
- Continuation: The creator previews, enhances, and exports the video.
FR-7 — Add AI voiceovers and automatic captions (explicit)
As an AI Video Creator, I should be able to add AI voiceovers and automatic captions so that my videos are narrated and accessible without manual recording or transcription.
- Trigger/input: The creator adds a voiceover or automatic captions to a video project in Video Enhancements.
- Observable result: The voiceover and captions are attached to the video and previewable with it.
- Access state: Authenticated; the enhancement consumes credits and requires sufficient credits.
- Failure/recovery: A failed enhancement is reported and credits are not consumed for the failed job; insufficient credits block the enhancement before it starts, with a route to Credits and Billing.
- Continuation: The creator previews and exports the enhanced video.
FR-8 — Save, edit, preview, and export projects (explicit)
As a Free User (Designer/Creator), I should be able to save, edit, preview, and export my projects so that my work persists and I can deliver a finished file.
- Trigger/input: The creator saves, edits, previews, or exports a design or video project.
- Observable result: The project is saved and can be reopened; the preview shows the current work; the export produces a finished output.
- Access state: Authenticated.
- Failure/recovery: A failed save, preview, or export is reported without altering the saved project; the creator can retry.
- Continuation: The creator reopens the project from Projects or exports again.
FR-9 — Weekly 50-credit allowance for free users (explicit)
As a Free User (Designer/Creator), I should receive 50 credits every week so that I can use AI features on a recurring free allowance.
- Trigger/input: A free account exists and its weekly allowance period applies.
- Observable result: The account holds a 50-credit free allowance for the week.
- Access state: Authenticated.
- Failure/recovery: If the balance cannot be loaded, an explicit unavailable state is shown with a retry.
- Continuation: The creator spends credits on AI design and AI video generation.
FR-10 — Automatic credit reset to 50 every 7 days (explicit)
As a Free User (Designer/Creator), I should have my credits automatically reset to 50 every 7 days so that my allowance renews without any action from me.
- Trigger/input: Seven days elapse from the start of the allowance period.
- Observable result: The free-user balance is reset to 50 and the next reset timing is shown.
- Access state: Authenticated.
- Failure/recovery: If the reset state cannot be loaded, the balance display reports it as unavailable with a retry.
- Continuation: The creator continues using AI features against the renewed allowance.
FR-11 — AI design generation and AI video generation consume credits (explicit)
As a Free User (Designer/Creator), I should have AI design generation and AI video generation consume credits so that AI usage is metered against my allowance.
- Trigger/input: The creator starts an AI design generation or AI video generation.
- Observable result: The credit cost is applied to the balance and the remaining credits update.
- Access state: Authenticated; sufficient credits required.
- Failure/recovery: Credits are not consumed for a failed generation; the creator can retry.
- Continuation: The creator continues creating with the updated balance.
FR-12 — Clearly display remaining credits (explicit)
As a Free User (Designer/Creator), I should always be able to see my remaining credits so that I know what I can spend.
- Trigger/input: The creator views any authenticated surface.
- Observable result: The remaining credit balance is clearly displayed, along with reset timing.
- Access state: Authenticated.
- Failure/recovery: If the balance cannot be loaded, an explicit unavailable state is shown with a retry.
- Continuation: The creator decides whether to spend credits or obtain more.
FR-13 — Prevent AI feature use when credits are insufficient (explicit)
As a Free User (Designer/Creator), I should be prevented from using AI features when I have insufficient credits so that I cannot exceed my allowance.
- Trigger/input: The creator attempts an AI design generation or AI video generation without enough credits.
- Observable result: The AI feature is blocked with a clear explanation and a route to Credits and Billing.
- Access state: Authenticated; blocked state shown in AI Controls.
- Failure/recovery: The creator purchases credits or upgrades, then returns and retries the AI feature.
- Continuation: Once credits are sufficient, the AI feature can be started.
FR-14 — Purchase additional credits or upgrade to a premium plan (explicit)
As a Free User (Designer/Creator), I should be able to purchase additional credits or upgrade to a premium plan so that I can keep creating beyond my free allowance.
- Trigger/input: The creator chooses a credit purchase or premium upgrade in Billing.
- Observable result: The purchase or upgrade completes and the new credit balance and plan state are reflected.
- Access state: Authenticated; payment processing is handled by the payment/plan provider.
- Failure/recovery: A declined or failed provider transaction is reported with the current plan and balance unchanged; the creator can retry or choose a different option.
- Continuation: The creator continues design and video creation with the larger allowance.
FR-15 — Premium plans provide more weekly credits and additional features (explicit)
As a Premium Subscriber, I should receive more weekly credits and additional features from my premium plan so that my subscription delivers more than the free allowance.
- Trigger/input: The creator holds an active premium plan.
- Observable result: The account reflects the larger weekly credit allowance and the plan's additional features.
- Access state: Authenticated; premium plan state.
- Failure/recovery: If plan state cannot be loaded, it is reported as unavailable with a retry.
- Continuation: The subscriber continues design and video creation with the larger allowance.
FR-16 — Modern, simple, fast, mobile-friendly, beginner-friendly experience (explicit)
As a Free User (Designer/Creator), I should experience Ever Design as modern, simple, fast, mobile-friendly, and easy for beginners so that I can create without a learning curve.
- Trigger/input: The creator uses any surface on desktop or mobile.
- Observable result: Surfaces are responsive, legible, and operable at mobile and desktop widths, with creation controls reachable on small screens.
- Access state: Applies to anonymous and authenticated surfaces.
- Failure/recovery: If a surface fails to load, the creator can retry without losing work.
- Continuation: The creator completes the same tasks on any supported viewport.
FR-17 — Scalable structure for future AI features (explicit)
As a Premium Subscriber, I should benefit from a scalable structure so that more AI features can be added later without disrupting my existing work.
- Trigger/input: New AI features are added to the product over time.
- Observable result: Existing designs, videos, credit state, and plan state continue to work as new AI features are introduced.
- Access state: Authenticated.
- Failure/recovery: Not applicable to current acceptance; this is a structural constraint on how current capabilities are built.
- Continuation: Current creation workflows remain available.
FR-18 — Self-service enrollment (required_inference)
As a Free User (Designer/Creator), I should be able to create my own Ever Design account so that I can begin creating without an invitation or administrator.
- Trigger/input: An anonymous visitor submits enrollment information on Sign Up.
- Observable result: An account is created and the creator enters the authenticated application with a 50-credit free allowance.
- Access state: Anonymous entry; authenticated result.
- Failure/recovery: Invalid or already-used identity information is reported inline with the form preserved; the visitor can correct and resubmit or switch to Login.
- Continuation: The creator starts a design or video from the Dashboard.
FR-19 — Returning verification (required_inference)
As a Free User (Designer/Creator), I should be able to verify myself when I return so that I can reach my saved projects, credit state, and premium access.
- Trigger/input: A returning creator submits credentials on Login.
- Observable result: The creator enters the authenticated application with prior projects, credit balance, and plan state restored.
- Access state: Anonymous entry; authenticated result.
- Failure/recovery: Rejected credentials are reported without disclosing which element failed; the creator can retry, use the recovery path, or switch to Sign Up.
- Continuation: The creator resumes work from the Dashboard or Projects.
FR-20 — Credit balance validation before AI generation (required_inference)
As a Free User (Designer/Creator), I should have my credit balance checked before AI design or video generation starts so that I am never charged for a job I cannot afford.
- Trigger/input: The creator attempts an AI design generation or AI video generation.
- Observable result: The balance is validated against the feature's credit cost; the job starts only when credits are sufficient.
- Access state: Authenticated.
- Failure/recovery: When credits are insufficient, the job does not start and the block is explained with a route to Credits and Billing.
- Continuation: The creator obtains credits and retries, or continues with non-AI editing.
FR-21 — Scheduled seven-day credit reset (required_inference)
As a Free User (Designer/Creator), I should have my free allowance renewed on a scheduled seven-day cycle so that my weekly 50 credits arrive reliably.
- Trigger/input: The seven-day allowance period elapses for a free account.
- Observable result: The balance is set to 50 and the next reset timing is displayed.
- Access state: Authenticated.
- Failure/recovery: If the reset state cannot be loaded, the balance display reports it as unavailable with a retry.
- Continuation: The creator spends the renewed allowance on AI features.
FR-22 — Payment or plan-provider processing (required_inference)
As a Premium Subscriber, I should have my credit purchase or premium upgrade processed by the payment/plan provider so that my payment is handled securely and my plan state is authoritative.
- Trigger/input: The creator confirms a credit purchase or premium upgrade in Billing.
- Observable result: The provider processes the transaction and the application reflects the resulting credit balance and plan state.
- Access state: Authenticated; provider-owned processing.
- Failure/recovery: A declined or failed provider transaction is reported with the current plan and balance unchanged; the creator can retry or choose a different option.
- Continuation: The creator continues creating with the updated allowance.
Page 10 of 23
4. User Personas
Free User (Designer/Creator)
Product context: A beginner creator or small-business owner who needs flyers, posters, logos, social media posts, invitations, and banners without professional design software. They start from scratch or from templates and rely on the weekly free allowance to use AI design generation.
Primary goal: Produce a finished design quickly and export it, using the 50-credit weekly allowance for AI help.
Distinct accepted responsibilities: Starting designs from scratch or from templates; creating the six supported design formats; editing text, images, shapes, colors, backgrounds, and other elements; uploading images and videos; saving, editing, previewing, and exporting projects; monitoring remaining credits; being blocked from AI features when credits are insufficient.
Relevant inputs or decisions: Which format to create; whether to start blank or from a template; which elements to edit and how; whether to spend credits on AI design generation; whether to purchase credits or upgrade when blocked.
Interactions with other accepted participants: Hands work to the AI Video Creator when a project becomes video; encounters the Premium Subscriber path when credits run out and they choose to purchase or upgrade; relies on the payment/plan provider when they do purchase.
Observable success: A saved, previewable, exported design in the intended format, produced within the weekly credit allowance.
Page 11 of 23
AI Video Creator
Product context: A creator focused on video output — generating video from text prompts and assembling videos from templates, images, text, and music, then adding AI voiceovers and automatic captions. They spend credits on AI video generation and monitor their balance closely because video work is credit-intensive.
Primary goal: Produce a finished, narrated, captioned video and export it.
Distinct accepted responsibilities: Generating videos with AI from text prompts; creating videos from templates, images, text, and music; adding AI voiceovers and automatic captions; uploading and selecting images and videos; saving, previewing, and exporting video projects; monitoring remaining credits and being blocked when credits are insufficient.
Relevant inputs or decisions: The text prompt for AI generation; which video template to use; which images, text, and music to combine; whether to add voiceover and captions; whether to spend credits now or wait for the weekly reset.
Interactions with other accepted participants: Uses media uploaded in the shared Uploads workspace; encounters the Premium Subscriber path when video generation exhausts the allowance; relies on the payment/plan provider when purchasing credits.
Observable success: A saved, previewable, exported video with voiceover and captions, produced within the available credit allowance.
Page 12 of 23
Premium Subscriber
Product context: A creator who has purchased additional credits or upgraded to a premium plan to obtain more weekly credits and additional features, and who continues the same design and video workflows with a larger allowance.
Primary goal: Keep creating without hitting the free weekly limit, and get the additional features the premium plan provides.
Distinct accepted responsibilities: Purchasing additional credits; upgrading to a premium plan; reviewing current plan state and allowance; continuing design and video creation with the larger weekly credit allowance and the plan's additional features.
Relevant inputs or decisions: Which credit purchase or plan option to choose; whether the larger allowance and additional features justify the upgrade; when to purchase again.
Interactions with other accepted participants: Shares the same creation workspaces as the Free User and AI Video Creator; depends on the payment/plan provider for transaction processing and on the application for reflecting the resulting plan and credit state.
Observable success: An active premium plan reflected in the account, a larger weekly credit allowance, access to the plan's additional features, and uninterrupted design and video creation.
5. Core User Flows
Page 13 of 23
Flow 1 — Free User (Designer/Creator): create and export a design from a template
- The visitor arrives on Landing and reads what Ever Design does, the six supported design formats, and the statement that free users get 50 credits every week.
- The visitor selects "Start creating — free" and lands on Sign Up.
- The visitor submits enrollment information. The account is created and the creator enters the authenticated application with a 50-credit free allowance.
- On Dashboard, the creator sees the credit meter showing 50 credits and the reset timing, and selects "Start a new design".
- On Design Studio, the creator picks the flyer format and selects a template. The template opens in Design Editor.
- In Design Editor, the creator edits text, replaces an image, adjusts a shape, changes colors and the background, and adds another element. The credit meter stays visible.
- The creator opens Uploads, uploads an image, and selects it for the design. The image appears in the design.
- The creator saves the project. The saved state is confirmed.
- The creator previews the design, then exports it. The export produces a finished output.
- Failure/recovery: If the export fails, the failure is reported and the saved project is unchanged; the creator retries the export from Projects.
- Continuation: The creator returns to Dashboard, where the project appears in the recent list, and can start another design.
Flow 2 — Free User (Designer/Creator): use AI design generation within the weekly allowance
- From Dashboard, the creator opens an existing design in Design Editor.
- The creator starts an AI design generation. The credit cost is shown against the current balance.
- The balance is validated. With sufficient credits, the generation runs and the cost is applied; the credit meter updates to the new balance.
- The creator reviews the generated result, applies it to the design, and continues editing.
- Failure/recovery: If the generation fails, the failure is reported and credits are not consumed; the creator retries.
- Continuation: The creator saves and exports the design.
Page 14 of 23
Flow 3 — Free User (Designer/Creator): blocked by insufficient credits, then purchase or upgrade
- In Design Editor or AI Video, the creator attempts an AI generation.
- AI Controls shows that credits are insufficient and blocks the AI feature with a clear explanation and a route to Credits and Billing.
- The creator opens Credits and reviews the remaining balance and the reset timing.
- The creator opens Billing and chooses either additional credits or a premium upgrade.
- The payment/plan provider processes the transaction. On success, the new credit balance and plan state are reflected in the account.
- Failure/recovery: If the provider declines the transaction, the failure is reported with the current plan and balance unchanged; the creator retries or chooses a different option.
- Continuation: The creator returns to the AI feature, which is now unblocked, and completes the generation.
Flow 4 — Free User (Designer/Creator): weekly credit reset
- The creator has spent credits during the week and the balance is below 50.
- Seven days elapse from the start of the allowance period.
- The free-user balance is automatically reset to 50, and the next reset timing is displayed.
- Failure/recovery: If the reset state cannot be loaded, the balance display reports it as unavailable with a retry.
- Continuation: The creator spends the renewed allowance on AI design or AI video generation.
Flow 5 — AI Video Creator: generate a video from a text prompt
- From Dashboard, the creator selects "Start a new video" and opens AI Video.
- The creator enters a text prompt. The credit cost and remaining credits are shown.
- The balance is validated. With sufficient credits, generation starts and progress is shown.
- The generated video is presented for review.
- Failure/recovery: If generation fails, the failure is reported and credits are not consumed; the creator revises the prompt and retries. If credits are insufficient, AI Controls blocks generation before it starts and routes the creator to Credits and Billing.
- Continuation: The creator sends the generated video onward into video editing.
Page 15 of 23
Flow 6 — AI Video Creator: assemble a video from templates, images, text, and music
- The creator opens Video Studio.
- The creator chooses a video template.
- The creator adds images — selecting from Uploads or uploading new ones — adds text, and adds a music track.
- The creator arranges the sequence and previews the assembled video.
- The creator saves the video project.
- Failure/recovery: If a save or preview fails, the failure is reported with the arrangement preserved; the creator retries or adjusts.
- Continuation: The creator moves to Video Enhancements to add voiceover and captions.
Flow 7 — AI Video Creator: add AI voiceover and automatic captions
- The creator opens Video Enhancements with the assembled video project.
- The creator adds an AI voiceover. The credit cost and remaining credits are shown, the balance is validated, and the voiceover is generated.
- The creator adds automatic captions. The credit cost and remaining credits are shown, the balance is validated, and the captions are generated.
- The voiceover and captions are attached to the video and previewable with it.
- Failure/recovery: If an enhancement fails, the failure is reported and credits are not consumed; the creator retries. If credits are insufficient, AI Controls blocks the enhancement and routes the creator to Credits and Billing.
- Continuation: The creator previews and exports the enhanced video.
Flow 8 — AI Video Creator: save, preview, and export a video project
- The creator opens Projects and selects a saved video project.
- The creator previews the project.
- The creator exports the project. The export produces a finished output.
- Failure/recovery: If the export fails, the failure is reported and the saved project is unchanged; the creator retries.
- Continuation: The creator returns to Projects or starts a new video.
Page 16 of 23
Flow 9 — Premium Subscriber: upgrade and continue creating with a larger allowance
- The creator opens Billing and reviews the current plan state and the available credit purchases and premium plan options.
- The creator selects the premium upgrade. The payment/plan provider processes the transaction.
- On success, the account reflects the premium plan, the larger weekly credit allowance, and the plan's additional features.
- Failure/recovery: If the provider declines the transaction, the failure is reported with the current plan and balance unchanged; the creator retries or chooses a different option.
- Continuation: The creator returns to Dashboard and continues design and video creation with the larger allowance, seeing the updated credit meter.
Flow 10 — Premium Subscriber: purchase additional credits
- The creator opens Billing and selects a credit purchase.
- The payment/plan provider processes the transaction.
- On success, the additional credits are added and the new balance is reflected in the credit meter.
- Failure/recovery: If the provider declines the transaction, the failure is reported with the balance unchanged; the creator retries or chooses a different option.
- Continuation: The creator returns to the AI feature that was blocked and completes the generation.
Flow 11 — Free User (Designer/Creator): return and resume work
- The creator opens Login.
- The creator submits credentials. Verification succeeds and prior projects, credit balance, and plan state are restored.
- Failure/recovery: If credentials are rejected, the failure is reported without disclosing which element failed; the creator retries, uses the recovery path, or switches to Sign Up.
- Continuation: The creator opens Projects, selects a saved project, and continues editing, previewing, or exporting.
Page 17 of 23
6. Visuals Colors and Theme
The visual direction is Jessica Walsh — saturated colour, surreal props, and type that dares you to create. The headline idea: "Make something today." Ever Design must never read as white-and-blue SaaS; every screen sits on colour, and the interface feels like a friend handing you a marker.
Colour tokens — light mode
| Role | Hex | Usage |
|---|
| Background (peach ground) | #FFE9D6 | Every screen's base ground; replaces white |
| Surface | #FFFFFF | Cards, editor canvas, tool panels |
| Text (ink) | #1A0F2E | Body text and headings; deep aubergine-black |
| Primary (hot pink) | #FF2D6F | AI generate, export, upgrade actions |
| Accent (electric violet) | #7B2BFF | Credit meter fill, premium badges, voiceover waveform |
| Muted (clay) | #F4C9B8 | Dividers, inactive states, disabled credit chips |
| Micro-accent (lime) | #D4FF3F | Credit reset badge, "free" markers only |
Proportion: 55% peach ground, 30% white surfaces, 10% pink, 5% violet/lime. Text on pink and violet is always white; body text is always ink on peach or white.
Typography
- Headings: Archivo Black, tight leading 0.92–0.98, tracking -0.02em, sentence case with occasional all-caps labels. Headlines are the loudest element on every screen — "Make something today." at 56px mobile / 128px desktop. Credit-meter numerals also use Archivo Black so "50" reads like a poster.
- Labels and buttons: DM Sans 700 uppercase, 0.08em tracking.
- Body: DM Sans 400, 18px, line-height 1.55.
- Scale (1.333 modular): 128 / 96 / 72 / 48 / 32 / 24 / 18 / 16 / 14. Display
clamp(56px, 9vw, 128px). Section heads clamp(32px, 5vw, 72px). Card titles 24px. UI labels 14px.
Shape language
- Cards use 28px radii; buttons are full pills; credit chips are capsule-shaped with a 2px ink border.
- Sticker elements (badges, "NEW", "AI", credit-cost tags) are rotated 3–8°, sit on top of cards, and carry a 2px ink outline with a hard offset shadow in pink or violet.
- Section dividers are 8px solid colour bars or wavy SVG edges in lime or violet — never hairlines.
- Blob shapes appear as decorative background props behind hero type, never behind readable content.
Layout
- Desktop: 12-column asymmetric editorial grid. Hero type occupies columns 1–9; a rotated sticker cluster sits in 10–12. Editor screens use three zones — left rail (templates/elements, 72px icon rail expanding to 280px), centre canvas on white, right panel (properties/AI, 320px) — with the credit meter pinned top-right as a pill.
- Mobile: single column, canvas full-bleed, tool rail becomes a bottom sheet, credit pill floats top-right over the canvas.
- Every section break uses a colour block or wavy edge rather than whitespace alone. Template cards vary in size (2x2 feature + 1x1 grid) like a magazine spread, never an identical grid of six.
Imagery
Surreal, art-directed, playful. Hero shows a 3D-rendered hand holding a giant pink pencil, or a floating flyer with a fish swimming out of it — bright, staged, witty, never stock. Template thumbnails are real designs photographed flat-lay on peach and lime grounds with hard shadows. Iconography is chunky 2.5px-stroke outline icons with rounded caps, drawn in ink and filled with pink or violet. AI moments show hand-drawn squiggles, sparkles, and arrows rather than glowing tech orbs.
Readability rule: Headlines, wordmarks, labels, numbers, item images, cards, and controls 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 (marquees, tickers, carousels, horizontally scrollable rows) may cross the edge by design, provided every item becomes fully readable as it passes; under prefers-reduced-motion it stops and shows whole items, wrapping into rows or sitting in a horizontally scrollable row.
Page 18 of 23
7. Signature Design Concept
"The sticker notebook." The public entry — Landing — is composed as a full-bleed peach (#FFE9D6) field. The left 60% carries "Make something today." in Archivo Black at clamp(56px, 9vw, 128px), ink (#1A0F2E), set across three lines and occupying most of the viewport height, breaking the 12-column grid by spanning columns 1–9. Directly beneath it sits a single pill call to action, "Start creating — free", in hot pink (#FF2D6F) with white text, and a small ink-line statement, "You get 50 credits every week", with a lime (#D4FF3F) sticker badge rotated -4° reading "FREE" overlapping the last word of the headline.
The right 40% is a floating collage: three overlapping design cards — a pink flyer, a violet social post, and a white video card with a play triangle — each rotated 3–6°, each carrying a hard 6px ink offset shadow, arranged like stickers pressed onto a notebook. Behind them a giant violet (#7B2BFF) blob bleeds off the right edge as decoration only, never behind readable content. Top-right, a white capsule credit pill reads "50 credits" with a violet fill bar underneath.
The concept recomposes only accepted content and controls: the headline, the enrollment call to action, the weekly-allowance statement, the credit meter, and example design and video outputs. It introduces no new behaviour, page, or destination.
Page 19 of 23
8. Interaction Model & Motion Direction
Interaction Model: Animated
Motion Tempo: expressive
Hero Dimensionality: layered_2d
Landing Hero Motion Brief
- Focal subject: The oversized Archivo Black headline "Make something today." with the rotated lime "FREE" sticker badge overlapping its last word, and the sticker collage of a pink flyer, a violet social post, and a white video card with a play triangle.
- Input → transformation → outcome thesis: As the visitor arrives, the headline enters line by line with a 3-frame stagger (translateY 24px → 0, 420ms
cubic-bezier(.2,1.4,.4,1)); the sticker collage settles into place with its hard ink offset shadows; the credit pill's violet fill bar draws in. The outcome is a composed first frame in which the headline is the hero, the collage reads as stickers on a notebook, and the single pink call to action is unmistakable.
- Motion vocabulary: Bouncy and purposeful. Headline line stagger; template and collage cards scale 1.0 → 1.04 on hover with the 2px ink shadow shifting to 6px; sticker badges wobble 4° on hover; the AI generate button pulses a soft pink glow on a 2.4s loop while a job runs; credit-meter digits flip with a 180ms vertical roll when a credit is spent; captions and voiceover waveform bars animate at 60fps.
- Composed first frame: Peach ground, headline occupying columns 1–9 in ink, lime "FREE" sticker rotated -4° overlapping the final word, pink pill call to action beneath, sticker collage in columns 10–12 with the violet blob bleeding off the right edge, white capsule credit pill top-right with its violet fill bar.
- Reduced-motion state: Under
prefers-reduced-motion, the headline appears without stagger, the collage and stickers are static at their final rotation, the credit fill bar is drawn at its final value, the AI generate glow and the credit-digit roll are disabled, and the voiceover/caption waveform falls back to a static waveform image. All content remains whole and readable.
Page 20 of 23
9. Non-Functional Requirements
NFR-1 — Mobile-friendly and responsive (explicit)
Ever Design must be mobile-friendly: every surface must be operable and legible at 375px, 768px, and 1280px, with the editor's tool rail becoming a bottom sheet on mobile, the canvas full-bleed, and the credit pill floating top-right over the canvas. Rationale: The user explicitly requires a mobile-friendly product.
NFR-2 — Fast (explicit)
Surfaces must load and respond quickly, with progressive loading for template libraries, media libraries, and project lists so that creation controls are usable before secondary content finishes loading. Rationale: The user explicitly requires a fast product.
NFR-3 — Simple and beginner-friendly (explicit)
The interface must be simple and easy for beginners: creation entry points are prominent, AI features state their credit cost before running, and blocked states explain themselves with a route to resolution. Rationale: The user explicitly requires simplicity and beginner-friendliness.
NFR-4 — Scalable structure for future AI features (explicit)
The system must be structured so that more AI features can be added later without disrupting existing designs, videos, credit state, or plan state. Rationale: The user explicitly requires a scalable structure.
NFR-5 — Credit integrity (explicit)
Credits must be metered accurately: AI design generation and AI video generation consume credits, credits are not consumed for failed jobs, free-user balances reset to 50 every 7 days, and AI features are blocked when credits are insufficient. Rationale: The user explicitly defines the credit system's rules.
NFR-6 — Credit visibility (explicit)
The user's remaining credits must be clearly displayed on authenticated surfaces, including reset timing. Rationale: The user explicitly requires clear credit display.
NFR-7 — Accessible motion (required_inference)
All motion must respect prefers-reduced-motion, falling back to static equivalents while keeping all content whole and readable. Rationale: Required to make the expressive motion direction usable for motion-sensitive creators.
NFR-8 — Readable content at every viewport (explicit)
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. Rationale: The user requires a mobile-friendly, beginner-friendly product; the creative direction makes this a hard rule.
NFR-9 — Provider-owned payment processing (required_inference)
Credit purchases and premium upgrades must be processed by the payment/plan provider, with the application reflecting the resulting plan and credit state and leaving state unchanged on failure. Rationale: Required to make the accepted purchase and upgrade journeys executable without the application owning payment processing.
Page 21 of 23
10. Tech Stack
- Frontend: React (web application), responsive from 375px to 1280px and beyond.
[Default — not specified by user]
- Backend: Python with FastAPI, providing the application API for projects, uploads, credit state, plan state, and AI job orchestration.
[Default — not specified by user]
- Storage: Relational database for accounts, projects, elements, credit balances, reset schedules, and plan state; object storage for uploaded images and videos and for exported outputs.
[Default — not specified by user]
- AI services: External AI services for AI design generation, AI video generation from text prompts, AI voiceovers, and automatic captions, invoked by the backend and metered against credits.
[Default — not specified by user]
- Payment/plan provider: External provider for credit purchases and premium upgrades.
[Default — not specified by user]
- Packaging and deployment: Docker with docker-compose for local and single-host deployment.
[Default — not specified by user]
Page 22 of 23
11. Assumptions and Constraints
Assumptions
- A-1: Creators begin independently, so enrollment is self-service with no invitation or administrator provisioning. (required_inference)
- A-2: Application-owned identity is required because saved projects, credit balances, and premium access must remain bound to the correct creator and be resumable across sessions. (required_inference)
- A-3: The weekly allowance period is a rolling seven-day cycle per free account, and the reset sets the free-user balance to 50. (explicit)
- A-4: Premium plans provide more weekly credits and additional features; the specific plan tiers, credit amounts, and additional features are not specified by the user and are not invented here. (explicit boundary)
- A-5: Credit costs per AI feature are shown to the creator before a job runs; specific per-feature costs are not specified by the user. (required_inference)
- A-6: Payment and plan processing is owned by an external provider; the application owns the surrounding purchase and upgrade interaction and reflects the resulting state. (required_inference)
Constraints
- C-1: Every free user gets 50 credits every week. (explicit)
- C-2: Credits automatically reset to 50 every 7 days. (explicit)
- C-3: AI design generation and AI video generation use credits. (explicit)
- C-4: Users are prevented from using AI features when they have insufficient credits. (explicit)
- C-5: Premium plans can provide more weekly credits and additional features. (explicit)
- C-6: Ever Design must be modern, simple, fast, mobile-friendly, and easy for beginners to use. (explicit)
- C-7: Ever Design must be built with a scalable structure so more AI features can be added later. (explicit)
- C-8: The generic indigo/blue-on-white SaaS template look is forbidden; white or near-white page grounds, blue/indigo primary buttons or links, centred heroes, identical hover-lift card grids, Inter/Roboto/Poppins/system-ui for headings or body, glassmorphism, gradient-blob backgrounds, stock photography of people at laptops, and glowing tech orbs or particle fields for AI moments are all excluded. (explicit creative direction)
- C-9: No differentiated role-based permissions over shared product state are established; all authenticated creators operate their own projects, credits, and plan state. (explicit boundary)
Page 23 of 23
12. Glossary
- Ever Design — The AI-powered design and video creation application specified in this document.
- Credit — The unit consumed by AI design generation and AI video generation; free users receive 50 every week, resetting automatically every 7 days.
- Weekly allowance — The 50-credit free-user balance that renews on a seven-day cycle.
- Credit reset — The automatic setting of a free user's balance to 50 every 7 days.
- Insufficient credits — The state in which a creator's balance is below the cost of an AI feature, which blocks that AI feature.
- AI design generation — AI-assisted design creation that consumes credits.
- AI video generation — AI video creation from a text prompt that consumes credits.
- AI voiceover — An AI-generated narration track added to a video project.
- Automatic captions — AI-generated captions added to a video project.
- Design format — One of the six supported design types: flyer, poster, logo, social media post, invitation, banner.
- Template — A pre-made design or video starting point that a creator can use instead of starting from scratch.
- Project — A saved design or video that can be reopened, edited, previewed, and exported.
- Export — Producing a finished output file from a design or video project.
- Premium plan — A paid plan that can provide more weekly credits and additional features.
- Payment/plan provider — The external service that processes credit purchases and premium upgrades.
- AI Controls — The protected AI-generation access state that communicates credit eligibility and blocks AI features when credits are insufficient.
- Credit meter — The persistent display of the creator's remaining credits and reset timing.
No comments yet. Be the first!