Documentation Index
Fetch the complete documentation index at: https://mayson.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
1. Be specific about UI components
The more precisely you describe layout and components, the less you’ll need to iterate on design. Mayson understands standard UI vocabulary, use it. Useful component terms:sticky header · sidebar nav · card grid · data table · modal · drawer · toast notification · badge · chip · empty state · loading skeleton · hero section · two-column layout · tab bar · accordion · command palette · dropdown menu · breadcrumb · stepper · progress bar · bottom sheet · floating action button · popover · tooltip · inline alert
Vague:
2. Describe user flows, not just screens
Individual screens are easier to get right when they’re described in the context of what comes before and after them. Think in transitions, not just destinations. What does the user see first, what builds their confidence to act, and where does that action lead? Screen-only:3. Prompt for UI states
Every screen in a real app has multiple states: what it looks like when data is loading, when there’s nothing to show yet, and when something goes wrong. Non-technical users almost always forget to specify these, which means the Agent doesn’t generate them. The result is an app that looks polished in the happy path and broken everywhere else. Prompt for states alongside the main screen whenever you can. Prompt example:| State | When it appears |
|---|---|
| Loading | Data is being fetched from the backend |
| Empty | The user has no data yet, or a search returns nothing |
| Error | A request fails or something goes wrong |
| Success | An action completed: form submitted, item saved, payment processed |
| Disabled | A button or action the user can’t take yet |
A real app isn’t just a happy path. Prompt for the edges and your app will feel production-ready from day one.
4. Express data relationships in plain English
You never need to write a database schema. But describing how your entities relate to each other helps the Agent model the data correctly from the start, and avoids the need for structural corrections later. Prompts that establish relationships:For developers: This is equivalent to writing a basic ERD in prose. You can also specify uniqueness constraints (“each user can only have one active subscription”) or indexing needs (“products should be filterable by category and price range”) and the Agent will handle the implementation. For complex relational requirements, state them as numbered constraints at the end of your prompt. The Manual Builder gives you read access to the generated schema if you need to verify the structure before building further.
5. Prompting for auth, roles, and permissions
Auth and roles have a large footprint. They affect navigation, API guards, data visibility, and the entire session layer. State them clearly and early. Checklist for prompting auth:- What methods are available? (email/password, OTP, Google OAuth, magic link)
- Should users stay logged in across sessions?
- Are there multiple user roles? What can each role access?
- Is any content visible without logging in?
- Are there admin-only sections?
For developers: The generated auth layer uses JWT with server-side validation on all protected routes. If you need a specific auth provider (e.g., Google OAuth, GitHub OAuth, phone OTP via Twilio), name it in the prompt. For RBAC requirements beyond two roles, describe the permission matrix in plain language and the Agent will generate the appropriate middleware guards.
6. Prompting for mobile and responsive behavior
Mobile layout doesn’t happen automatically at the right quality without explicit guidance. If your app will be used on phones, describe the mobile experience directly, not as an afterthought. What to specify:- Navigation pattern on mobile (bottom tab bar, hamburger drawer, or top tab bar)
- How multi-column layouts collapse
- Components that should behave differently on small screens
- Touch-specific interactions (swipe, pull-to-refresh, long-press)
- Whether a sticky bottom CTA or floating action button should appear
For developers: The Agent targets standard responsive breakpoints: 640px (mobile), 768px (tablet), 1024px (desktop), 1280px (wide). You don’t need to specify these unless you have exact requirements. Stating “mobile-first” in your prompt signals that the Agent should prioritize the narrow viewport layout before scaling up. For touch interactions like swipe and long-press, name them explicitly since they require gesture handler logic that the Agent won’t add by default.
7. Prompting for accessibility
Accessible apps aren’t just a good practice. They’re more usable for everyone, load better on lower-end devices, and rank better in search. The Agent will produce a reasonable accessibility baseline by default, but stating your requirements explicitly raises the quality significantly. The most impactful single-line accessibility prompt:For developers: The Agent generates semantic HTML and includes ARIA attributes when accessibility is specified. For strict compliance (WCAG 2.2 AA, Section 508, or EN 301 549), state the standard by name. The generated frontend uses focus-visible for keyboard focus styles, which means focus rings only appear for keyboard users, not mouse users. For screen reader testing, the generated components use appropriate role attributes and live regions for dynamic content updates.
8. Prompting for specific app types
Different app types have different structural patterns. Use these as starting frameworks and fill in the specifics. Marketplace:9. When real-world references help vs mislead
References work best when your app’s structure closely mirrors the reference. They break down when your app shares a surface similarity but differs in fundamental ways.| Reference situation | Recommendation |
|---|---|
| Your app closely mirrors the reference in structure and flow | Use the reference, it saves significant description time |
| Your app borrows a specific interaction pattern | Name the pattern specifically: “…like Notion’s drag-to-reorder” |
| Your app shares a name or category but works differently | Describe the actual behavior instead, don’t use the reference |
| You want to copy a visual style, not structure | Reference the visual only: “Visually similar to Linear, dark mode, dense layout, monospace accents” |

