Hypersonic — Technical Reference
Hypersonic is an AI-powered mobile-first web app that transforms raw business ideas into full execution plans, pitch decks, market analyses, and marketing strategies. Users can capture ideas via text or voice, track progress through a step-by-step execution checklist, and unlock premium AI-generated assets via a Pro subscription.
| Path | Component | Notes | |------|-----------|-------| | / | Landing | Public landing page | | /app/ | Home | Main capture screen (requires onboarding) | | /app/ideas | Dashboard | Idea list with tabs and progress | | /app/insights | Insights | Analytics dashboard | | /app/settings | Settings | Profile, plan, preferences | | /app/idea/:id | IdeaOutput | Full idea detail + execution plan | | /app/idea/:id/asset/:assetKey | GeneratedAsset | Rendered AI asset | | /app/templates | Templates | Prompt templates | | /app/compare | CompareIdeas | Side-by-side idea comparison | | /shared/:token | SharedView | Public share view (no auth) |
Onboarding Gate: First-time users see Onboarding before any /app/* routes. Completion stored in localStorage("onboarding_done").
Layout: All /app/* routes wrap in AppShell which renders the bottom navigation bar, applies page transition animations, and initialises useOfflineSync and useReminders.
Core entity. One record per idea captured by a user.
| Field | Type | Description | |-------|------|-------------| | content | string (required) | Raw idea text | | title | string | Short AI-generated title | | tags | string[] | Organising tags | | category | enum | uncategorized / business / personal / app / content / shopping / thought / task / inspiration / question / reminder | | source | enum | typed / voice / pasted / audio | | is_starred | boolean | Starred flag | | reminder_at | datetime | Optional review reminder | | audio_url | string | URL of recorded audio | | transcription_status | enum | none / pending / done | | priority_score | number | AI viability score (0–100) | | priority_impact | number | Impact sub-score | | priority_effort | number | Effort sub-score | | priority_reason | string | AI explanation of score | | status | enum | new / in_progress / completed | | ai_summary | string | AI-generated summary (also used as notes field) | | ai_execution_plan | {step, done}[] | Step-by-step plan | | ai_monetization | string | Monetization strategy | | ai_target_market | string | Target market description | | ai_competitors | string | Key competitors | | ai_pitch_deck | string | Generated pitch deck content | | ai_landing_page | string | Generated landing page copy | | ai_mvp_plan | string | MVP build plan | | ai_marketing_strategy | string | Marketing strategy | | next_best_action | string | AI-suggested next action | | versions | {version, content, title, summary, saved_at}[] | Version history snapshots |
Groups ideas into named, colored collections.
| Field | Type | Description | |-------|------|-------------| | name | string (required) | Folder name | | color | string | Hex color (default #f59e0b) | | idea_ids | string[] | List of idea IDs in this folder |
Manages public/invited sharing for an idea or folder.
| Field | Type | Description | |-------|------|-------------| | target_type | enum | idea / folder | | target_id | string | ID of the shared entity | | public_token | string (required) | Unique token for the share URL | | public_link_enabled | boolean | Whether the public link is active | | invited_emails | string[] | Emails with access |
Trigger: User submits idea text on Home screen. Input: { idea_text: string } Calls AI to generate title, summary, execution plan (5–8 steps), monetization, target market, competitors, priority score, and next best action. Creates a new Idea entity with status "new". Returns { idea }.
Trigger: User taps a locked asset button in IdeaOutput (Pro only). Input: { idea_id, section } — section is one of: pitch_deck, landing_page, mvp_plan, marketing_strategy. Calls AI to generate the requested section content, updates the Idea entity, returns { idea }.
Trigger: After voice confirmation, before plan generation. Input: { idea_text: string } Returns a structured evaluation with scores, market signals, and a recommendation on whether to proceed.
Trigger: After voice recording stops. Input: { raw_text: string } Uses AI to clean up and structure the spoken idea. Returns { parsed: { refined_idea, target_audience, business_model }, raw_text }.
Trigger: Audio voice note uploaded. Input: { idea_id, audio_url } Transcribes audio using AI, updates Idea with transcription content, sets transcription_status: "done".
Trigger: Idea created or updated. Suggests category and tags based on content; updates the entity.
Trigger: Idea created. Scores the idea on impact, effort, and viability. Updates priority_score, priority_impact, priority_effort, priority_reason.
Trigger: Scheduled (daily). Sends a summary email to users with new/in-progress ideas to keep momentum.
Trigger: User clicks "Upgrade Now". Input: { success_url, cancel_url } Creates a Stripe Checkout session for the Pro plan ($15/month). Returns { url }. Always includes base44_app_id in Stripe metadata.
Trigger: Stripe webhook events (checkout.session.completed, customer.subscription.deleted). On successful checkout, marks the user as Pro. On subscription deletion, revokes Pro status.
Returns { isPro: boolean } for the authenticated user.
Deletes all Idea and Folder records for the user, then removes the user record.
| Library | Usage | |---------|-------| | @tanstack/react-query | Server state, caching, optimistic updates | | framer-motion | Animations and transitions | | react-router-dom | Client-side routing | | @stripe/stripe-js | Stripe Checkout | | lucide-react | Icons | | date-fns | Date formatting | | react-markdown | Rendering AI-generated markdown content | | @hello-pangea/dnd | Drag-and-drop in Kanban board | | recharts | Charts in Insights dashboard | | jspdf | PDF export of ideas |