# frascati > frascati.app is an AI website builder for small businesses. Describe your business and it builds the website: real copy and photos, a contact form, online booking with reminders, payments to your own Stripe account and an AI chat for visitors. It also builds phone apps for iPhone and Android with customer accounts, payments and AI, and guides the owner into the App Store under their own Apple account. Made in Switzerland. Plans from $12 a month, every plan starts with 3 free days. ## Facts - Website: https://frascati.app - Type: AI website builder for small businesses - Made in Switzerland, projects stored in the EU - AI models: Claude Opus 5.5 builds new websites, Claude Sonnet 5.5 makes the changes - Trial: 3 days with 20 credits, card required, nothing charged when cancelled before the trial ends - Prices in US dollars - The app is in English; websites are written in the language of the description ## In every plan - **Online booking**: Tables and appointments at free times, with confirmation and reminder emails and a link to cancel. https://frascati.app/features/online-booking - **Payments with Stripe**: Buy buttons and a small shop with a cart. The money goes straight to your own Stripe account. https://frascati.app/features/payments - **AI chat for your visitors**: Answers questions from your website around the clock, paid with credits, with a monthly limit you set. https://frascati.app/features/ai-chat - **Cloud tables**: Menus, prices and events you update yourself, and entries your visitors send, without credits. https://frascati.app/features/cloud-tables - **Connections**: Every form message, booking and order can go to Zapier, Make or n8n, and on to Sheets or your CRM. https://frascati.app/features/connections - **Building with AI**: Plan mode, dictation, picking an element in the preview, screenshots with notes and standing instructions. ## Plans - **Starter**: $12 a month, 30 credits a month. 3 published sites, 50 form messages a month, 3 Cloud tables with 300 entries per site, Visitor statistics. - **Pro**: from $29 a month, 80 credits a month, up to 5,000. 10 published sites, 200 form messages a month, 20 Cloud tables with 5,000 entries per site, Your own domains, Source code download, No frascati badge, Your own title, description and share image. - **Business**: from $69 a month, 190 credits a month, up to 5,000. Unlimited published sites, Unlimited form messages, 50 Cloud tables with 50,000 entries per site, Everything in Pro. Paying yearly costs 10 months instead of 12. A new website uses about 3 credits, most changes less than 1 credit. Credit packs for paid plans: 22 credits for $10, 60 credits for $25, 125 credits for $50. ## Main pages - Docs, how frascati works step by step: https://frascati.app/docs - What is frascati: https://frascati.app/what-is-frascati - Pricing: https://frascati.app/pricing - AI app builder for iPhone and Android, from the description to the App Store: https://frascati.app/app-builder - Features: https://frascati.app/features - Templates: https://frascati.app/templates - Website examples: https://frascati.app/showcase - What you can build: https://frascati.app/build - Comparisons: https://frascati.app/compare - Deutsch: https://frascati.app/de ## Features ### Online booking https://frascati.app/features/online-booking Guests book tables and appointments at free times on your website and get confirmation and reminder emails. You manage every booking in the Cloud tab. ### Payments with Stripe https://frascati.app/features/payments Sell vouchers, products, courses and memberships with buy buttons or a cart. Buyers pay on Stripe, and the money goes straight to your own Stripe account. ### AI chat for your visitors https://frascati.app/features/ai-chat A chat on your published website answers visitors from your content, in their language, and sends contact requests to your inbox. About 0.1 credit per answer. ### Cloud tables https://frascati.app/features/cloud-tables Keep menus, prices and events in tables you edit without credits, and collect signups from visitors. Your website shows every change right away. ### Connections https://frascati.app/features/connections Every form message, table entry, booking and paid order of your website goes as signed JSON to a webhook in Zapier, Make or n8n, and on to Sheets or a CRM. ### Building with AI https://frascati.app/features/ai-code-generation frascati builds your website as React, TypeScript and Tailwind CSS code. Claude Opus 5.5 writes new sites, Claude Sonnet 5.5 makes the changes you ask for. ### Live preview https://frascati.app/features/live-preview The preview shows your site while frascati writes it. Switch between desktop, tablet and phone to check every page before you put it online. ### One-click publishing https://frascati.app/features/one-click-publish Publish your site at frascati.app/p/your-name with one click, or on your own domain with Pro and Business. To put later changes online, you publish again. ### Code export https://frascati.app/features/code-export Pro and Business download the full source code of your website as a Vite project, starting with the first payment. A developer can host or extend it anywhere. ### Responsive design https://frascati.app/features/responsive-design frascati builds every site mobile first: layouts work 375 pixels wide and the header collapses into a menu. Check each page on phone, tablet and desktop. ### Templates https://frascati.app/features/templates frascati has 12 built-in templates and more shared by the community. Each one is a starting point that you change in the chat, with your text and photos. ### Version history https://frascati.app/features/version-history frascati saves every change to your site as a version. See what each change did, restore an earlier version and keep going, so trying an idea is safe. ### Visitor numbers https://frascati.app/features/website-analytics The Visitors view counts the views of your published site. Pro and Business add a daily chart and traffic sources. Counting sets no cookies. ## Questions ### How does the free trial work? You choose a plan and add a card. For 3 days you build with 20 credits and pay nothing. If you cancel before the trial ends, you are not charged. Otherwise the plan starts. ### What is a credit? Credits pay for the AI work. A new website uses about 3 credits, most changes less than 1. The credits in your plan renew every month and do not carry over. ### What happens when my credits run out? You can buy a credit pack in your settings, or pick more credits a month for Pro or Business. Credits from a pack stay until you use them. ### Can I use my own domain? Yes, with Pro and Business: frascati shows you the DNS records to set at your domain provider. Every plan can publish on a frascati address. ### Who owns the website? You do. With a paid Pro or Business plan you can download the full source code of your site and host it wherever you like. ### Can visitors book appointments on my site? Yes, in every plan. Ask for online booking and frascati adds it: tables or appointments at free times, with a limit per time, an optional confirmation by you, a confirmation email, a reminder the day before and a link to cancel. You see the bookings in Cloud and can export them as CSV. ### Can I take payments? Yes. Connect your own Stripe account with a restricted key and frascati adds buy buttons or a small shop with a cart. The money goes straight to your Stripe account. frascati takes no share, only Stripe's fees apply. ### Can I connect Zapier, Make or n8n? Yes. Set a webhook address in Cloud and every new form message, table entry, booking and paid order is sent there, signed, so Zapier, Make or n8n can pass it on to Google Sheets, your CRM or your newsletter. ### Can I change or cancel my plan? Yes, at any time in your settings. When you cancel, your plan stays active until the end of the period you paid for, a month or a year. ### Which languages does frascati speak? The app is in English. Write to frascati in your language and it answers and writes your site in that language. ### Where is my data stored? Your projects are stored in the EU. Messages from your contact forms are stored with your project and sent to your email address. ## Comparisons - frascati vs Wix: https://frascati.app/compare/frascati-vs-wix - frascati vs Squarespace: https://frascati.app/compare/frascati-vs-squarespace - frascati vs Durable: https://frascati.app/compare/frascati-vs-durable - frascati vs GoDaddy Website Builder: https://frascati.app/compare/frascati-vs-godaddy - frascati vs Hostinger Website Builder: https://frascati.app/compare/frascati-vs-hostinger - frascati vs Jimdo: https://frascati.app/compare/frascati-vs-jimdo - frascati vs WordPress: https://frascati.app/compare/frascati-vs-wordpress - frascati vs Webflow: https://frascati.app/compare/frascati-vs-webflow - frascati vs Framer: https://frascati.app/compare/frascati-vs-framer - frascati vs Weebly: https://frascati.app/compare/frascati-vs-weebly - frascati vs Carrd: https://frascati.app/compare/frascati-vs-carrd - frascati vs Lovable: https://frascati.app/compare/frascati-vs-lovable - frascati vs Bolt.new: https://frascati.app/compare/frascati-vs-bolt-new - frascati vs v0: https://frascati.app/compare/frascati-vs-v0 - frascati vs Replit: https://frascati.app/compare/frascati-vs-replit - frascati vs Cursor: https://frascati.app/compare/frascati-vs-cursor ## Websites frascati builds - AI landing page builder: https://frascati.app/build/landing-page - AI portfolio website builder: https://frascati.app/build/portfolio-website - AI restaurant website builder: https://frascati.app/build/restaurant-website - AI online store website builder: https://frascati.app/build/ecommerce-store - AI blog website builder: https://frascati.app/build/blog - AI SaaS website builder: https://frascati.app/build/saas-website - AI startup website builder: https://frascati.app/build/startup-website - AI website builder for small businesses: https://frascati.app/build/small-business-website - AI agency website builder: https://frascati.app/build/agency-website - AI photography website builder: https://frascati.app/build/photography-website - AI real estate website builder: https://frascati.app/build/real-estate-website - AI freelancer website builder: https://frascati.app/build/freelancer-website - AI nonprofit website builder: https://frascati.app/build/nonprofit-website - AI personal website builder: https://frascati.app/build/personal-website - AI wedding website builder: https://frascati.app/build/wedding-website - AI fitness website builder: https://frascati.app/build/fitness-website - AI lawyer website builder: https://frascati.app/build/lawyer-website - AI dentist website builder: https://frascati.app/build/dentist-website - AI salon website builder: https://frascati.app/build/salon-website - AI coaching website builder: https://frascati.app/build/coaching-website - AI church website builder: https://frascati.app/build/church-website - AI event website builder: https://frascati.app/build/event-website - AI podcast website builder: https://frascati.app/build/podcast-website - AI website builder for online courses: https://frascati.app/build/online-course-website - AI cleaning service website builder: https://frascati.app/build/cleaning-service-website - AI HVAC website builder: https://frascati.app/build/hvac-website - AI personal trainer website builder: https://frascati.app/build/personal-trainer-website - AI therapist website builder: https://frascati.app/build/therapist-website - AI plumber website builder: https://frascati.app/build/plumber-website - AI electrician website builder: https://frascati.app/build/electrician-website - AI landscaping website builder: https://frascati.app/build/landscaping-website - AI tattoo studio website builder: https://frascati.app/build/tattoo-website - AI yoga studio website builder: https://frascati.app/build/yoga-studio-website - AI spa website builder: https://frascati.app/build/spa-website - AI consultant website builder: https://frascati.app/build/consultant-website - AI bakery website builder: https://frascati.app/build/bakery-website - AI barber shop website builder: https://frascati.app/build/barber-website - AI pest control website builder: https://frascati.app/build/pest-control-website - AI catering website builder: https://frascati.app/build/catering-website - AI car detailing website builder: https://frascati.app/build/car-detailing-website - AI coming soon page builder: https://frascati.app/build/coming-soon-page - AI waitlist page builder: https://frascati.app/build/waitlist-page - AI link in bio page builder: https://frascati.app/build/link-in-bio-page - AI 404 page generator: https://frascati.app/build/404-page - AI pricing page generator: https://frascati.app/build/pricing-page ## Docs ### Welcome to the frascati docs https://frascati.app/docs frascati builds websites and phone apps for small businesses from a description in your own words. These pages explain how each part works, from the first sentence to a website on your own domain or an app in the App Store. - Build your first website: Describe your business, change the result in the chat and publish it. - Build your first phone app: An app for iPhone and Android that you try on your own phone right away. - Publish your app: Every step into the App Store, under your own Apple account. - Plans and credits: What a credit pays for and what each plan includes. #### How frascati works You write what you need, in plain words and in the language your customers speak. frascati writes the pages or screens, the texts and the forms, picks fitting photos and shows the result in a preview next to the chat. 1. Describe it: A sentence or two is enough: what the business does, where, and what people should be able to do. Add your logo, your own photos or the address of your current website if you have them. 2. Change it in the chat: Say what should change, like “Make the header calmer” or “Add our opening hours.” The preview shows each change. 3. Publish it: A website goes online with one click at a frascati address, and with Pro and Business on your own domain. A phone app goes into the App Store under your own Apple account. You never have to write code. The **Code** view shows every file if you want to look, and with a paid Pro or Business plan you can download the source code. #### Websites and phone apps - Website: Several pages with texts, photos and a contact form. Online booking, payments with Stripe, Cloud tables and an AI chat for visitors are added in the chat. Published at a frascati address, or on your own domain with Pro and Business. - Phone app: An app for iPhone and Android with its screens, customer accounts, payments and AI. You try it on your phone with a QR code. The App Store needs your own Apple developer account and a paid Pro or Business plan. #### What you need - An account with a plan. Every plan starts with a free 3-day trial with 20 credits. A card is required, and nothing is charged if you cancel before the trial ends. - A computer, tablet or phone with a current browser. The editor works best on a computer; on a phone you switch between the chat and the preview. - For the App Store: a membership in the Apple Developer Program, which Apple charges 99 USD a year for. #### Getting help Search these pages with the field at the top, or press `⌘ K` on a Mac and `Ctrl K` on Windows. If something in a project does not work, click the project's name at the top left of the editor and choose **Report a problem**. It sends your note, the address of the page and the last errors, never the content of your project. For anything else, write to us (https://frascati.app/contact). For AI assistants, all of these pages are also available as plain text at frascati.app/llms-full.txt (https://frascati.app/llms-full.txt). ### Build your first website https://frascati.app/docs/build-your-first-website From a sentence about your business to a website online. The first version takes about two minutes; how long the rest takes is up to you. #### Describe your business Open your dashboard, or the home page if you are not signed in, and write into the big box what the website is for: what the business does, where, for whom and what visitors should find. Write in the language the website should be in. frascati writes the texts in that language. Around the box you find four more options: - **Import existing website**: paste the address of your current website. frascati reads its text and rebuilds it with a fresh design and your real services and details. - **Add images**: your logo or your own photos, for example for the top of the page. This appears once you are signed in. - **The microphone**: dictate instead of typing. - **Build** or **Plan**: Build starts right away. Plan first asks questions and suggests a plan, and builds only once you approve it. Good to know: The more real details you give, like services, prices, opening hours and your address, the less you fill in later. frascati never invents facts: what it does not know appears as a [placeholder] in square brackets. #### Sign up and start the trial If you are not signed in yet, frascati keeps what you typed and asks you to create an account. You say who the website is for, answer three optional questions about you, and choose a plan. Every plan starts with a free 3-day trial with 20 credits. You add a card, and today you pay nothing. Cancel in your settings before the trial ends and nothing is charged; otherwise the plan you chose starts. Your website is built right after this step. See Plans and credits (https://frascati.app/docs/plans-and-credits). #### Check the first version frascati writes the pages, the texts and the contact form and picks fitting photos, and you see the website grow in the preview. The first version usually takes about two minutes and uses about 3 credits. Then read it the way a customer would. Fill in every [placeholder] by writing the facts in the chat, for example “We are open Tuesday to Saturday from 7 to 18.” At the top of the editor, the screen button switches between desktop, tablet and phone, so you can check every size, and the page menu next to it opens every page of your website. #### Or start from a template Prefer a finished starting point? The templates (https://frascati.app/templates) page has 12 websites built with frascati, such as a restaurant with table booking, a hair salon, an online shop and a yoga studio. Click **Use**, and the template opens in the editor. Then tell frascati in the chat what to change, for example “Change the texts to my business” followed by what you offer. Opening a template uses no credits; the changes you ask for do. Further down the page you find websites that other people shared as templates. #### Change it in the chat Write what should change, one thing or several at once. frascati changes the website and says in the chat what it did. Most changes use less than 1 credit. To say exactly what you mean, use the tools at the bottom of the preview and in the chat box: - Select: Click an element in the preview, like a heading or a photo. **Change with AI** makes your next message about exactly that element. For a text, **Edit text** lets you type the new words right in the preview: Enter saves, and it uses no credits. - Screenshot: Drag over a part of the preview and write what should change there. Several screenshots with a note each can go into one message. - Images: Add photos or your logo to a message with the image button, or paste them. - Plan: Choose **Plan** in the menu next to the send button to ask a question or plan a bigger change without touching the website. A question uses 0.1 to 0.5 credits. Under the latest answer, **Undo** takes back the last change and **Try again** asks for it once more. On wide screens, the arrows at the top of the editor step back and forward through your edits. **Versions** in the project menu lists every change the AI made: **Changes** shows what it changed, and **Restore** goes back to that version while the later ones stay in the list. Rules for every change go into **Instructions for the AI** in the project menu (click the project's name at the top left): how to address visitors, colours that must stay, facts about your business, words to avoid. When the preview shows an error: A bar with the error appears below the preview. **Fix it** asks frascati to repair it, and that is free up to 10 times a day. #### Publish it 1. Click **Publish** at the top right of the editor. 2. Click **Publish** in the window. Your website is online at a frascati address like `frascati.app/p/your-name` that anyone with the link can open. 3. Copy the address, open it or share it right from the window. Changes you make afterwards go live when you update: open the window again (the button now says **Published**) and click **Update**. **Unpublish** takes the website offline. In the same window you can connect your own domain with Pro and Business, show your website in the frascati showcase or share it as a template for others. How many websites can be online at once: Starter 3, Pro 10, Business as many as you like. Messages from your contact form arrive by email and in the **Messages** tab of the editor. #### Next steps - Connect your own domain (https://frascati.app/docs/connect-your-own-domain), like www.mybusiness.com. - SEO for your website (https://frascati.app/docs/seo): what search engines see, and what to fix. - Payments with Stripe (https://frascati.app/docs/payments-with-stripe): sell vouchers, products and memberships. - Cloud tables (https://frascati.app/docs/cloud-tables): a menu, prices or events you update yourself. ### Build your first phone app https://frascati.app/docs/build-your-first-phone-app frascati builds apps for iPhone and Android from a description, the same way it builds websites. You see the app in an iPhone preview and on your own phone right away. #### Describe the app In the box on your dashboard, switch from **Website** to **Phone app**. Then write what your customers should be able to do in the app: Example: “An app for my café in Zurich with a stamp card, the menu and our opening hours” frascati builds the screens, the texts and the navigation for it. As with websites, what it does not know about your business appears as a [placeholder] you fill in by chatting. #### Pick a style Before the first build, **Style** next to the box sets the look of the app: Assistant, Fintech dark, Editorial, Soft wellness, Bold sport, Liquid glass, Playful and Minimal mono. Or leave it on **Automatic**, and frascati picks a look that fits your business. The style stays for every later change. #### Or start from a template The templates (https://frascati.app/templates) page has 8 finished apps under **Phone apps**: AI assistant, Café, Restaurant, Hair salon, Yoga studio, Club or association, Design shop and Trades and services. Open one with **Use** and tell frascati what to change for your business. #### Watch it being built The app appears in an iPhone frame next to the chat. While frascati works, it checks every screen at the size of a real iPhone. Then it uses the app like a customer would, going through its screens, and fixes what it finds. The top of the editor says **Testing like a customer** meanwhile. If a layout problem is left, a note below the preview names it, with **Fix it** next to it. #### The design check after the first build After the first build, the AI looks at the app's main screens like a designer and improves what it finds, once: empty areas, text that is cut off, photos that do not fit, buttons that look different from screen to screen. The top of the editor says **Checking the design** meanwhile. The check is billed from your credits like a change in the chat. To skip it, click the app's name at the top left and switch off **Design check after the first build**. The switch is saved in your browser. #### Try it on your phone 1. Click **On your phone** at the top of the editor. 2. Scan the QR code with your phone's camera. The app opens right away, and you can add it to your home screen. 3. After a change, open the window again to see the new version. On your phone, the app runs in the browser. The app people install from the App Store is built when you publish it. #### What an app can do - Customer accounts: People sign in with their email address and a code sent to it, and find their orders, bookings or stamps on every phone. - Payments: One-off purchases and memberships, paid through your own Stripe account. See Payments with Stripe (https://frascati.app/docs/payments-with-stripe). - AI in the app: A helper that knows your business. Its answers are paid from your credits, with a monthly limit you set in the **Cloud** tab. - Cloud tables: Content you update yourself, and entries people send from the app. See Cloud tables (https://frascati.app/docs/cloud-tables). Not possible yet: push notifications, in-app purchases for digital content, maps inside the app, the camera, and signing in with Apple or Google. #### Publish the app The app goes into the App Store under your own name, from your own Apple developer account; Apple requires that. frascati builds, signs and uploads it for you. Every step is in Publish your app in the App Store (https://frascati.app/docs/publish-to-the-app-store). For Google Play, or to build the app yourself, click the app's name at the top left and choose **Download app project**. The download explains both stores. Publishing in the App Store and downloading the app project are part of Pro and Business, from your first payment on. ### Write good requests https://frascati.app/docs/write-good-requests frascati does what you write, so the clearer the request, the fewer tries it takes. Write the way you would brief a designer: what should change, where, and what it should look like afterwards. #### Say what, where and how it should be - **Where**: the page and the part of it, like “the top of the home page” or “the price list on Services”. Or point at it, see below. - **What**: the change itself, with the real content. Give the prices, the opening hours, the names. frascati never makes up facts: what it does not know appears as a [placeholder] in square brackets. - **How it should be afterwards**: the result you want, not how to build it. “Calmer, with more space and one big photo” works better than “change the padding”. - **What stays**: say it when something must not change, like “keep the photo” or “only the text, not the layout”. One topic per message gives the best results. Several small things can go into one message as a list; large changes go better one after the other, so you can check each one in the preview. #### Examples Instead of | Write Make it nicer | Make the top of the home page calmer: one big photo of our bread, the heading and one button “Order a cake”. Change the colors | Use the dark green of our logo as the main color and keep the background white. Add my prices | Add a price list under Cakes: birthday cake 20 cm CHF 48, 26 cm CHF 64, six cupcakes CHF 21. Add booking | Add table reservations for up to 8 people, Tuesday to Saturday from 18 to 23. The phone version is broken | On the phone, the menu button covers the logo. Move the logo to the left. (With a screenshot of that spot.) Write something about us | Add a short About section: family business since 1962, three bakers, flour from the mill in the next village. #### Point at things instead of describing them - Select: Click an element in the preview, like a heading, a button or a photo. **Change with AI** makes your next message about exactly that element, so “make this bigger” is enough. For a text, **Edit text** changes the words right in the preview, without credits. - Screenshot: Drag over a part of the preview and write what should change there. A message can hold several screenshots, each with its own note. - Images: Add your logo or your own photos with the image button, or paste them. Say where each one goes, like “this photo at the top of the home page”. - Dictate: The microphone in the chat box turns what you say into text. Handy for long descriptions. #### Plan first for bigger changes For a new page, a new part like a shop or bookings, or a change across the whole website, choose **Plan** in the menu next to the chat's send button, where it says **Build**. frascati then changes nothing yet: 1. It asks what it needs to know. Pick an answer or write your own, then click **Continue**. **Skip the questions** makes the plan with sensible assumptions. 2. It shows a plan with its steps. Untick steps you do not want, or click **Change the plan** and say what should be different. 3. **Build this plan** carries it out, or only the steps still ticked. Plan also answers questions about your website without touching it, like “What would you improve on the home page?”. A question uses 0.1 to 0.5 credits. #### Rules for every change What should always hold goes into **Instructions for the AI** in the project menu (click the project's name at the top left), up to 4,000 characters. frascati follows them in every change, so you do not repeat them in each message. Example: “Address visitors formally. Keep the green of our logo. We have been a family business since 1962. Never show prices for weddings, only “on request”.” #### When the result is not right - Say what is wrong and how it should be instead: “The heading is too long, at most five words” works better than “not like that”. - **Undo** under the latest answer takes the change back, and **Try again** asks for it once more. Clearer wording often helps more than trying again. - **Versions** in the project menu lists every build with what it changed. **Restore** brings back an earlier one, and the later versions stay. - After each answer, frascati suggests next steps you can click. They are ideas, not a to-do list. - If the preview shows an error, **Fix it** in the bar below the preview repairs it, free up to 10 times a day. #### What requests cost Most changes use less than 1 credit; a large change across many pages uses more. Typing a text with **Edit text** and fixing errors with **Fix it** use none. See Plans and credits (https://frascati.app/docs/plans-and-credits). ### Publish your app in the App Store https://frascati.app/docs/publish-to-the-app-store Your app goes into the App Store under your own name, from your own Apple developer account. frascati registers the app, signs it, uploads it to TestFlight and writes the store listing. Apple keeps two steps for you: creating the app in App Store Connect and answering App Privacy. The app goes to Apple only when you click Submit. #### How it works Opening step by step: Publish with frascati opens account by account. If the **Publish** window of your app does not offer it yet, download the app project there for now. Nothing on this page changes when it opens for you. Open your app in the editor and click **Publish** at the top right. The window shows where your app stands and leads you through seven steps: 1. **Before you start**: the Apple Developer Program and your Apple account 2. **Your app**: name, bundle ID and version 3. **Create the app in App Store Connect** 4. **Build and upload**, to TestFlight 5. **Store listing**, with the screenshots 6. **App Privacy** 7. **Check and submit** Stuck at a step?: Under every step, **Stuck?** has the step's video, **Ask frascati**, which sees where your app stands and says what is still missing, and **Send to frascati**, which sends your question and where your app stands to us. We answer by email. You can close the window at any time. When you open it again, **Continue** takes you to the first step that is not done yet. #### What you need - A membership in the **Apple Developer Program**, 99 USD a year, paid to Apple: join the Apple Developer Program (https://developer.apple.com/programs/enroll/). To enrol as a company, Apple asks for its D-U-N-S number. - The latest agreements, accepted in App Store Connect by the **Account Holder**, the person who enrolled: open Agreements (https://appstoreconnect.apple.com/agreements). - A paid Pro or Business plan. Building starts with your first payment, so not during the trial. See the plans (https://frascati.app/pricing). - An iPhone to test the app on, with the free TestFlight app. You do not need a Mac or Xcode: frascati builds and signs the app in the cloud. Plan for about an hour of your own time. The build takes 15 to 30 minutes, and Apple reviews most apps within two days. Why your own Apple account: Apple takes apps from app builders only when the owner submits them in their own developer account (App Review Guideline 4.2.6). So the app and its page in the App Store are yours, not frascati's. #### Step 1: Connect your Apple account In **Before you start**, tick the two requirements and connect your Apple account, once, with an App Store Connect API key. frascati uses this key for everything at Apple. You can also connect it in **Settings** under **Connected accounts**. ##### Create the key at Apple 1. In App Store Connect (https://appstoreconnect.apple.com/access/integrations/api), open **Users and Access**, then **Integrations**. The first time, the Account Holder clicks **Request Access**. 2. Under **App Store Connect API**, choose **Team Keys** and click the plus button. 3. Name it frascati, choose the access **Admin** and click **Generate**. It has to be Admin: only Admin may create the certificate your app is signed with. 4. Download the key. Apple offers the .p8 file only once, so keep it safe. 5. Copy the **Issuer ID** above the list and the **Key ID** of the new key. ##### Connect it in frascati Click **Choose .p8 file** and pick the downloaded key. The Key ID fills in from the file's name. Paste the Issuer ID and click **Connect Apple**. frascati checks the key with Apple and then shows your team and how many apps it has. frascati keeps the key encrypted and uses it only for your apps. It never revokes a certificate or deletes anything in your Apple account. You can revoke the key at Apple at any time, and **Disconnect** makes frascati forget it. #### Step 2: Your app How the app appears on the phone and at Apple. frascati fills in values from your app; change them if you like, then click **Next**. frascati registers the bundle ID in your Apple team. - App name: 2 to 30 characters: the name in the App Store and under the icon. - Bundle ID: Your app's unique name at Apple, best under your own domain, like ch.yourbusiness.app. Apple gives out each one only once, and it cannot change after the first upload. - Version: Like 1.0.0. Raise it for every update. - SKU: Set by frascati. You type it into App Store Connect in the next step; nobody else sees it. #### Step 3: Create the app in App Store Connect Apple lets no other service create the app itself, so this one step is yours. It takes a minute. frascati shows the three values you need, each with a **Copy** button: **Name**, **Bundle ID** and **SKU**. 1. Open Apps in App Store Connect (https://appstoreconnect.apple.com/apps), click the plus button and choose **New App**. 2. Choose **iOS**. Enter the name, choose the bundle ID in the list and enter the SKU, exactly as frascati shows them. For the primary language, choose the language of your store listing. 3. Choose **Full Access** and click **Create**. 4. Back in frascati, click **Check**. Once frascati finds the app, it shows its Apple ID, and **Next** takes you on. If Apple says the name is taken, add a word, like your town. The name in the store can differ from the one under the icon. #### Step 4: Build and upload Click **Build the app**. frascati builds the app, signs it with a certificate in your Apple team and uploads it to TestFlight, Apple's place for testing. It takes about 15 to 30 minutes, and you can close the window meanwhile. The build goes through these stages: 1. Getting ready 2. Building the app 3. Uploading to Apple 4. Apple is processing the build 5. Ready in TestFlight Apple rejects apps that still show placeholders, like [Address]. If yours has any, frascati says so before the build, and **Let the AI prepare the app for Apple's review** goes through every screen and fixes what Apple would reject. If you change the app after a build, frascati tells you. Build again, so TestFlight and Apple get the app as it is now. If the build stops at the certificate: Apple allows only a few distribution certificates per team. If yours already has as many as Apple allows, frascati lists them. Revoke one you no longer use at Apple, then build again. Revoking a certificate does not take apps off the App Store. #### Test it with TestFlight Try the build on your own iPhone before Apple sees it. When a build is ready, frascati adds the Account Holder and the Admins of your Apple team as testers, and Apple emails each of them an invitation to test the app in TestFlight. The publishing window names who was added. 1. Install the free **TestFlight** app from the App Store on your iPhone. 2. Open Apple's invitation email on the iPhone and follow its link to TestFlight. Your app is then listed in TestFlight. 3. Tap **Install**, open the app and use it like a customer: open every screen, sign in, send a form. No invitation, and no app in TestFlight? In App Store Connect, open your app, then **TestFlight**, and add yourself as a tester under internal testing. Before you submit, frascati asks you to confirm that you tested this build. A new build asks again. #### Step 5: Store listing What people see in the App Store. Write it yourself, or click **Write with AI**: it writes a first version from your app, in the language of your listing, and is billed like a change in the chat. Read it and change what is not right. - Subtitle: Up to 30 characters: what the app is for. - Description: Up to 4,000 characters. - Keywords: Separated by commas, 100 bytes in all. Letters like ä, ö and é count twice. - What's new: Only for an update: a sentence about what changed. - Promotional text: Optional, up to 170 characters. - Category and copyright: The App Store category, and a line like 2026 Your Business Ltd. - Support address: A page where people reach you. frascati made one for your app; your own website works too. ##### Privacy policy The App Store requires one. frascati writes it from what your app does and keeps it online on frascati.app. It names you as responsible, so it needs your business name, address and an email for privacy questions. ##### Age rating, price and countries If your app has none of the content listed there, such as violence, gambling, medical advice or content from other users, tick the box, and frascati answers Apple's age rating questions with None. Otherwise answer them yourself in App Store Connect. The app is free, in every country except mainland China, which requires a Chinese license number. A price or countries you set in App Store Connect yourself stay as they are. ##### For Apple's review Apple contacts this person if the reviewer has a question: a first and last name, a phone number with the country code, and an email. It is not shown in the App Store. If your app has sign-in, frascati sets up an address that Apple's reviewer signs in with, using a fixed code, and puts it into the note for the reviewer. **Save in frascati** keeps your texts for later. **Save to App Store Connect** writes them to Apple. ##### Screenshots Once the listing is saved, upload 1 to 10 screenshots of 1320 × 2868 pixels (6.9 inch) or 1284 × 2778 pixels (6.5 inch), as PNG or JPEG. Take them on an iPhone Pro Max or in the iPhone simulator; screenshots from other iPhones have other sizes. frascati removes transparency and shrinks large files by itself. ##### Let frascati make them **Make them with frascati** photographs your app's main screens in the preview, up to six, and puts each in an iPhone with a short headline in your app's colors, at 1320 × 2868 pixels (6.9 inch). The AI writes the headlines from your store listing and the texts in your app, in the app's language, for about a hundredth of a credit. 1. Keep the app's preview open in the editor: frascati photographs it there. 2. Choose a style: **Clean**, **Bold**, **Dark** or **Soft**. 3. Change any headline, and click a picture to leave it out. 4. Click **Upload 5 to Apple**, with the number of pictures you chose. They go into the 6.9 inch set, next to the ones already there. #### Step 6: App Privacy Apple asks which data your app collects, and only you can answer, in App Store Connect. frascati read your app and lists exactly what to tick. 1. In App Store Connect, open your app and choose **App Privacy** in the sidebar. 2. Under Privacy Policy, enter the address frascati shows. 3. Under Data Collection, click **Get Started** and answer the first question as frascati says: whether your app collects data. 4. If it does, tick the data types frascati lists, and for each one answer as listed: what it is used for, whether it is linked to the person, and No for tracking. 5. Click **Publish** at the top right. Then tick **I answered App Privacy in App Store Connect and clicked Publish there** in frascati. For example, an app with customer accounts collects the email address and the name, linked to the person. frascati apps never track people. #### Step 7: Check and submit Apple rejects apps with placeholders, missing texts or a privacy policy that does not open. Before you submit, frascati checks: - No placeholders in the app - App name of 30 characters at most - Store listing complete and saved at Apple - Privacy policy online - Screenshots uploaded - Build ready in TestFlight Two boxes are yours to tick: **App Privacy answered in App Store Connect** and **I tested the app on my iPhone with TestFlight**. Anything missing has a button next to it: **Fix** takes you to the right step, and **Let the AI fix it** removes placeholders. When everything is ticked, click **Submit for review** and confirm. The app goes to Apple under your developer account. Once Apple approves it, it goes live automatically, unless you changed that in App Store Connect. #### Apple's review Most apps are reviewed within two days, and Apple emails you the result. The **Publish** window shows where your app stands, from submitted to live: - Waiting for Apple's review - Apple is reviewing the app - Approved. Release it in App Store Connect - Approved. Apple is releasing it - Live in the App Store - Apple rejected the app If you chose in App Store Connect to release the app yourself, the Publish window says **Approved. Release it in App Store Connect** once Apple approves it. In App Store Connect, open your app, choose the version with the status **Pending Developer Release** in the sidebar and click **Release This Version** at the top right. It can take up to 24 hours until the app appears in the App Store. #### If Apple rejects the app 1. In App Store Connect, open **App Review** and copy Apple's message. 2. In frascati, open **Publish** and click **Send in Apple's message**. Paste it and click **Let the AI fix it**. 3. The AI fixes in the app what Apple asks for and changes nothing else. If part of it is in App Store Connect, like screenshots or the note for the reviewer, it tells you step by step what to do there, and writes a short, polite reply you can paste into App Review. 4. Build the app again, then click **Check and submit again**. The store listing stays as it is unless you change it. #### Publish an update Once Apple approved the app, **Publish an update** takes you back to step 2. Raise the version, for example from 1.0.0 to 1.1.0, build the app and submit it the same way. frascati asks what is new in this version, and the App Store shows it with the update. #### Google Play frascati publishes to the App Store for you. For Google Play, you download the app project and publish it with Expo's tools under your own Google Play developer account, which Google charges US$25 for, once. New personal accounts first run a closed test with at least 12 testers for 14 days. Every step: Publish your app on Google Play (https://frascati.app/docs/publish-on-google-play). ### Publish your app on Google Play https://frascati.app/docs/publish-on-google-play frascati takes your app into the App Store for you. For Google Play, you download the app project and publish it with Expo's tools, under your own Google Play developer account. This page goes through it step by step. #### What you need - A paid Pro or Business plan, to download the app project. - A Google Play developer account, which Google charges US$25 for, once. It can be personal or for an organisation; an organisation needs a D-U-N-S number, as with Apple. - A free account at expo.dev (https://expo.dev). Expo builds the Android app on its servers, so you need no Android Studio. - A computer with Node.js (https://nodejs.org) 20 or newer. New personal accounts test for 14 days first: Google asks personal developer accounts created after 13 November 2023 to run a closed test with at least 12 testers, opted in for 14 days in a row, before the app can go live. Plan for it: friends, family and customers count as testers. #### Step 1: Download the app project 1. In the editor, click **Download app project** in the **Publish** window, or in the project menu (click the project's name at the top left). Unzip the file. 2. Open a terminal in that folder and run `npm install`, then `npx expo install --fix`. 3. Open `app.json`: the package name under `android.package`, like `app.frascati.mycafe`, is your app's ID on Google Play, and once the app is there it cannot change. For your own, ask for it in the chat before you download, like “Set the Android package name to com.mybusiness.app”, so every later download keeps it. #### Step 2: Create the app in Play Console In Google Play Console (https://play.google.com/console), click **Create app**. Give it its name and default language, choose app and free, and confirm the declarations. The app then waits as a draft until you upload a build and finish its setup. #### Step 3: Build the app In the project folder, run `npx eas-cli build --platform android`. Sign in with your Expo account when asked, and let Expo create the key that signs your app. Expo keeps it for every later update. The build runs on Expo's servers and ends with an Android App Bundle (.aab), the format Google Play takes. Its build number goes up by itself with every build. #### Step 4: Upload it - With a command: Run `npx eas-cli submit --platform android`. Expo uploads the build and creates the first release for internal testing. It needs a Google service account key, which you create once in Google Cloud and add to your project at expo.dev: Expo's guide Creating a Google Service Account key (https://expo.fyi/creating-google-service-account) shows how. - By hand: Download the .aab from the build page at expo.dev. In Play Console, go to internal or closed testing, create a new release and upload the file. #### Step 5: Store listing and app content Play Console lists what is still missing on the app's dashboard: the store listing with texts, icon and screenshots, the content rating questionnaire, the target audience, the data safety form and the address of your privacy policy. If your app has sign-in, add a test account under app access, so Google's reviewers can get in. Already in the App Store? Reuse the texts from your App Store listing. #### Step 6: Test, then go live 1. Add testers to a closed test by email address or with a Google Group, and share the link with them. 2. A new personal account waits until at least 12 testers have been in for 14 days, then applies for production access in Play Console and answers a few questions about the test. 3. Create a release for **Production** with the same build and send it for review. Once Google approves it, the app appears on Google Play. #### Publish an update Change the app in frascati, download the app project again and repeat steps 3 and 4. In Play Console, move the new release to production when you are happy with it. Rather have us do it? Ask us (https://frascati.app/contact). ### Connect your own domain https://frascati.app/docs/connect-your-own-domain Your website can run on a domain you own instead of the frascati address. You set a few DNS records where you bought the domain; frascati does the rest, including the HTTPS certificate. #### Before you start - Own domains are part of Pro and Business. - Publish the website first. The domain settings are in the Publish window. - You need the domain itself, bought at a domain provider such as GoDaddy, IONOS, Namecheap, Infomaniak, Hostpoint or Cloudflare, and your login there. frascati does not sell domains. #### Connect the domain 1. In the editor, click **Published** (or **Publish**) at the top right. 2. Under **Custom domain**, type your domain, like mybusiness.com or www.mybusiness.com, and click **Connect**. 3. frascati connects the version with www and the one without together. The one you typed is your website's address, and the other forwards to it. A domain belongs to one website only. A subdomain like shop.mybusiness.com works too; it has no www partner. #### Set the DNS records frascati now lists the records to set. They come from Vercel, the hosting provider frascati runs your website on, for exactly your domain. Sign in where you bought the domain and open its DNS settings, often called DNS, DNS zone or DNS records. - A record: For the domain itself, with the name @. Often two values; if your provider takes only one A record, the first one is enough. - CNAME record: For www or another subdomain, with that name. - TXT record: Only when the domain was connected to another account at our host before. It proves that the domain is yours. - If a record with the same name and type exists, change it to the new value. - If frascati lists records to remove, remove them: they point the domain somewhere else. - Some providers want the full name, like www.mybusiness.com, or an empty name instead of @. - At Cloudflare, set the records to **DNS only**, with the grey cloud. - Leave all other records as they are, especially the MX records for your email. Each value has a copy button, so you do not have to type it. #### Wait for the check The window shows three stages: **Domain added**, **DNS set up** and **Live with HTTPS**. While it is open, frascati checks every 10 seconds for five minutes, and **Check now** checks at once. After that, frascati checks every 30 minutes by itself and emails you when your website is live on the domain. DNS changes usually take a few minutes and can take up to 24 hours. Once DNS is right, the HTTPS certificate follows by itself, usually within minutes. There is nothing to buy or install. If the domain still does not reach your website after three days, frascati emails you the records again. #### Why you may still see the old website Answers from DNS are remembered for a while: by the router at home or in the office, by your computer and phone, and by your internet provider. So one device may already show your new website while another still shows the old one, or an error, for a few hours. - Check on your phone with Wi-Fi switched off, over mobile data. - Restart the router, or wait: the remembered answer expires by itself. - Trust the status in the Publish window over what one device shows. frascati checks from its own servers, so what your devices remember does not change it. #### Once the domain is live - Every page has its own address on your domain, like mybusiness.com/menu. - Your domain has its own sitemap, robots.txt and website icon, so search engines find every page. - Your frascati address, like `frascati.app/p/your-name`, forwards to your domain, so links you shared before keep working. - Search engines and AI search tools get the finished HTML of every page. See SEO for your website (https://frascati.app/docs/seo). If the domain later stops reaching your website, for example after a change at your DNS provider, frascati notices at its checks. After about an hour, links point to the frascati address again, so nobody is sent to an address that does not work. Once the domain works again, it is used again. #### Change or disconnect the domain In the Publish window, **Disconnect domain** removes it; while it is still being set up, the button says **Cancel and remove**. Your website stays online at the frascati address. To switch to another domain, disconnect the old one and connect the new one. ### SEO for your website https://frascati.app/docs/seo The SEO view shows how search engines see your website and what to fix. After publishing, frascati also saves every page as finished HTML, so Google and AI search tools read all of it. #### Open the SEO view In the editor, click the magnifying glass (**SEO**) at the top, on a computer and on a phone. frascati opens each page of your website once, the way a visitor sees it, and checks it together with what is published. The check runs in your browser and uses no credits. After changes, click **Check again**. #### The score The score runs from 0 to 100: from 85 it reads **Good**, from 60 **Fair**, and below that **Needs work**. Every finding takes points off, an important one more than a tip, and one kind of check never takes off more than a fifth of the score, however many pages it concerns. Findings are listed under **To fix** and **Tips**. **Checks passed** lists what is already fine. #### What it checks - Published: Search engines can only find your website once it is online. - Titles: Every page has a title of its own, of about 30 to 60 characters, and no two pages share one. - Descriptions: Every page has a description of about 70 to 160 characters, the text below the title in search results. - No placeholders left: No [placeholders] in square brackets on any page. - Open to search engines: Your website has a name or title of its own. One still called “My Project” counts as a test and stays out of search results. - Every page opens: No page stays empty because of an error. - Links: No link leads to a page or a part of a page that does not exist. - Headings: One main heading per page, and headings that go down one level at a time. - Contact details: For a business people visit: its name, street, postal code with town and a phone number appear on your website. - Business details for Google: Your address, phone number and opening hours, stored in a form Google reads for local searches and Google Maps. - Image descriptions: A short description of what each image shows, for search engines and for people who cannot see images. - Icon and image for shared links: The small picture in browser tabs and search results, and the image shown when someone shares your website. frascati makes both for you: the icon in your website's colors after it is built, and the image from its main photo, name and description. Your own replace them. - Pages prepared for search engines: The finished HTML of every published page, see below. - Language: The language your website is written in. - Own domain: Whether your website has a domain of its own, and whether it works. #### Fix what it finds Every finding comes with a button: - Use this title, Use this description: Saves the title or description the AI already wrote for your home page as your website's own, with one click. - Add a title, Add an icon, Add an image: Opens **Title, description and icon**, which you also find in the project menu. - Fix with AI, Fill in with AI: Puts a prepared request into the chat box. Read it, add what only you know, and send it. It is billed like any change. - Publish, Publish again: Opens the Publish window. - Connect a domain: Opens the domain settings in the Publish window. Your own title, description and share image are part of Pro and Business. The icon and the share image frascati makes come with every plan; on Free and Starter the share image carries a small «Made with frascati», like the website itself. #### Finished HTML for Google and AI search A frascati website is put together in the browser by JavaScript. Google runs JavaScript, but many crawlers do not, among them those of ChatGPT, Claude and Perplexity. So after you publish, frascati saves a finished copy of every page as plain HTML. Crawlers read that copy, with all the text, headings and links. Visitors see it at once while the website starts, and then the live website takes over in the same place, without a flash. The copies are made in your browser in the background right after publishing, so leave the editor open for a moment. For a website published earlier, they are made the next time you open it in the editor. If pages are missing, the SEO view says so, and **Publish again** makes them. #### Why a domain of your own helps At the frascati address, search engines see only the home page of your website: the other pages open only by clicking. With a domain of your own, every page gets its own address, and your website gets its own sitemap, robots.txt and llms.txt. On its own domain, your website also tells Bing about new pages right after publishing, which the web search of ChatGPT and Copilot builds on. Google finds them through the sitemap. Connect your own domain (https://frascati.app/docs/connect-your-own-domain). frascati.app's own sitemap lists published websites of paying accounts that have a title of their own. ### Download the code https://frascati.app/docs/download-the-code Your website or app is real code, and with Pro and Business you can download all of it: to keep a copy, to host it elsewhere or to hand it to a developer. #### Download it Click the project's name at the top left of the editor and choose **Download source code**, or **Download app project** for a phone app. A zip file downloads with every file of the project. Downloading needs a paid Pro or Business plan and is not part of the free trial. #### A website: run it on your computer A website comes as a standard Vite project with React, TypeScript and Tailwind CSS, on the same library versions as the preview. With Node.js (https://nodejs.org) installed, run `npm install` and then `npm run dev` in the unzipped folder, and open `http://localhost:5173`. The README in the folder has the same steps. #### Host the website anywhere `npm run build` writes the finished website into the folder `dist`. - Vercel or Netlify: Connect the folder or its repository, with the build command `npm run build` and the output `dist`. The included `vercel.json` and `public/_redirects` make every page address work. - Classic web hosting: Upload the contents of `dist`, for example over FTP. The host has to answer every address with `index.html`; if it cannot, ask frascati to switch the website to addresses like `/#/contact`. #### What keeps running through frascati - Online booking, payments and Cloud tables keep working through frascati, as long as the project stays in your frascati account. - Form messages keep arriving by email through frascati while the website stays published there. Otherwise, connect the forms to a form service of your choice. - Photos load from frascati or from Pexels. To host them yourself, download them and put them in `public/`. - The AI assistant is not part of the download. frascati adds it only to websites it serves itself. #### A phone app A phone app comes as an Expo project with React Native. Screens are in `screens/`, shared parts in `components/` and colors in `theme.ts`. To try it, run `npm install` and `npx expo install --fix`, then `npx expo start`, and scan the QR code with the free Expo Go app, signed in with a free Expo account. To publish it yourself, see Publish your app on Google Play (https://frascati.app/docs/publish-on-google-play). For the App Store, frascati does it for you: Publish your app in the App Store (https://frascati.app/docs/publish-to-the-app-store). #### Keep changing it Changes in the downloaded code stay on your computer; frascati does not read them back. Keep changing the project in frascati and download it again, or continue in the code, but not both. ### Take bookings on your website https://frascati.app/docs/online-booking Guests pick a free time on your website and get a confirmation by email. You see every booking in the Cloud tab and get an email for each one. Included in every plan, and bookings use no credits. #### Set it up Ask for it in the chat and say what can be booked, when, and by how many at once: Example: “Add table reservations for up to 8 people, Tuesday to Saturday from 18 to 23.” frascati builds a booking page in the design of your website and sets up what can be booked, the opening hours and the places. Nobody can book without opening hours, so frascati asks for them when they are missing. Setting it up is a normal change and uses credits; the bookings themselves use none. #### What you can set You set and change all of this in the chat, like “Close at 22 on Sundays” or “Guests can book up to 30 days ahead”. - What can be booked: Up to 30 services, like a table, a haircut or a first consultation, each from 5 minutes to 12 hours long. A price can be shown next to a service, but guests pay nothing when they book. - Places: How many bookings can run at the same time. For tables, each guest takes a seat, and a group can be up to 100 people. A service can have places of its own, like a second room. - Opening hours: Per weekday, up to six time ranges a day, like 11:30 to 14:00 and 18:00 to 23:00. A booking always ends before closing time. - Start times: A new start time every 5 to 240 minutes, like every 30 minutes. - How far ahead: From 1 day to a year, like 60 days. - Shortest notice: How soon a booking may start, from right away to 14 days ahead, like two hours. - Confirmation: Automatic, or you confirm each request yourself, which frascati picks for practices and rentals. - Phone number: Optional, or required with every booking, which frascati picks for restaurants. - Time zone: The one of your business. All times are shown and counted in it. #### How guests book 1. They choose what to book and, for a table, how many people come. Only days and times with a free place are shown. 2. They pick a day and a time and give their name and email address, and a phone number if you ask for one. 3. Right after, they get an email: a confirmation with a calendar file and a Google Calendar link, or, if you confirm yourself, a note that you will answer the request. 4. The day before, they get a reminder, if they booked at least a day ahead. The emails have a link to view the booking and cancel it until it starts. The emails come in your website's name, and when guests reply, the reply goes to you. They are in the language of your website: English, German, French, Italian, Spanish, Portuguese and Dutch. For websites in other languages they are in English. frascati locks the day while it saves a booking, so two guests never get the last place at the same time. #### Manage bookings in the Cloud tab Open **Cloud** in the editor and find **Bookings**. At the top you see whether you are **Taking bookings**, how many are coming up and how many requests wait for an answer. Below that, what can be booked and the opening hours, then every booking, grouped by day. - Confirm or Decline: Answers a request. The guest gets an email either way. - Cancel: Cancels a booking. frascati asks **Cancel and email guest?** first, and the guest gets an email. - Close this day: Pick a date, like a holiday, and nobody can book it. The × next to a closed day opens it again. - Pause bookings: Stops new bookings on the whole website until you click **Take bookings again**. Existing bookings stay. - CSV: Downloads all bookings as a file for Excel. All of this uses no credits and takes effect right away. Opening hours and services you change in the chat. #### Emails to you You get an email for each new booking, each request and each booking a guest cancels. They go to the address set under **Messages**, which is your login address unless you chose another one. See Messages and visitor numbers (https://frascati.app/docs/messages-and-visitors#email-copies). #### Try it in the preview You can book in the preview like a guest. These bookings are marked **Test**: they do not take a place, and you can delete them. The emails still go out, so use your own address. #### Protection against spam A hidden field and a time check stop robots. A visitor can book up to 6 times in 10 minutes, one email address up to 5 times a day, and a website takes up to 40 bookings an hour. #### What online booking does not do - Guests do not pay when they book. A price next to a service is only shown. - There is no sync with Google Calendar, Outlook or other calendars. Bookings stay in the Cloud tab, reach you by email and can go on to Zapier, Make or n8n. - Guests cannot pick a particular person, like their hairdresser. frascati counts free places, not the calendars of single staff members. - Guests cannot move a booking. They cancel with their link and book again. - Courses and events on fixed dates are not booked this way. They get a sign-up form that fills a Cloud table (https://frascati.app/docs/cloud-tables). - Emails only, no text messages. Already use Calendly, Cal.com, OpenTable, SimplyBook or Doctolib? Ask for a button that opens it. frascati does not embed other booking widgets, because they break inside the published website. ### Payments with Stripe https://frascati.app/docs/payments-with-stripe Buy buttons and a small shop with a cart, paid through your own Stripe account. frascati takes no share of the money; only Stripe's fees apply. Included in every plan. #### How it works 1. Say what you sell: Write it in the chat with the price, for example: “Sell a gift voucher for CHF 50 with a buy button.” frascati adds the button, or a small shop with a cart for several products. It never invents a price: without one, the page shows [price] until you give it. 2. Connect Stripe once: frascati asks for a key from your Stripe account in a secure window and creates your products there. See below. 3. Buyers pay on Stripe: A buy button opens Stripe's payment page, in the language of your website. After paying, the buyer sees a confirmation and gets an email in your website's name. 4. Orders land in the Cloud tab: Each paid order appears in the table **Orders** in the Cloud tab and in your inbox. That also works when the buyer closes the page before coming back: frascati checks Stripe every 15 minutes. #### Connect your Stripe account You need a Stripe account; opening one at stripe.com costs nothing. frascati connects with a restricted key, which allows only what the shop needs. 1. In Stripe, create a restricted key (https://dashboard.stripe.com/apikeys/create) and name it frascati. 2. Set **Products**, **Prices** and **Checkout Sessions** to **Write**. For a phone app with subscriptions, also set **Subscriptions** to **Read**. Create the key. 3. Copy the key and paste it into the secure window. It opens in the chat when frascati needs it, and you find it in the **Cloud** tab under **Payments**. Never paste the key into the chat itself. A test key (rk_test_…) is fine for trying it out: payments then run in Stripe's test mode, marked **Test mode** in the Cloud tab. Replace it with a live key (rk_live_…) under **Replace key** before real customers pay. The key is stored encrypted. It never goes into the chat, into your website's code or to the AI. If you paste a key into a chat message by mistake, frascati takes it out and opens the secure window instead. #### What you can sell - Vouchers, products, tickets, courses and deposits as single payments, and memberships billed every month or every year. - Up to 100 products per website, created in your Stripe account for you. Products you take off the website are archived in Stripe. - A cart with up to 20 different items, 1 to 50 of each, in one currency. A membership is always paid on its own. - Shipping: an address for the countries you ship to and one flat price per order. Vouchers and courses ask for no address. - Discount codes you create in Stripe work on the payment page. #### What stays with you and Stripe - frascati does not hold or pay out money. Payouts, refunds and disputes run in your Stripe account. - You deliver what you sell: you get the order and send the voucher, the goods or the access to the course yourself. - There are no stock levels, so a product does not sell out by itself. Take it off the website in the chat. - Shipping has one flat price per order, not prices by weight or zone. - frascati calculates no VAT or sales tax and writes no invoices. Buyers pay the prices you set. - On a website, a membership is a Stripe subscription, not a login. Phone apps have customer accounts. #### Payments in phone apps Phone apps use the same Stripe connection. Apple allows it for goods and services used outside the app, like a coffee, a class or a haircut. Digital things used inside the app, like premium screens, would have to go through Apple's in-app purchase, which frascati apps do not offer. ### AI assistant for your visitors https://frascati.app/docs/ai-assistant A chat button on your published website. It answers visitors around the clock from your website's content, in the language they write in, and passes contact requests to you. Each answer uses about 0.1 credits. Included in every plan. #### Switch it on 1. Open **Cloud** in the editor and switch on **AI assistant**, or ask for it in the chat. 2. Give it a name and a first message, and choose how the chat button looks. See below. 3. Publish the website, if it is not online yet. Visitors see the chat button at the bottom right. #### Settings - Name: Shown at the top of the chat. Empty means “Assistant” in the language of your website. - First message: What the chat says when it opens. Empty means a greeting in the language of your website. - Chat button: In the color of your website, black, white or a color you pick, with a speech bubble, a sparkle or a question mark. - What else it should know: Up to 6,000 characters of facts that are not on your website, like where to park or which days you deliver. It already knows everything on your website. - Monthly limit: How many credits the answers to visitors may use a month: 5, 10, 25, 50, 100 or 250 credits, about 50 to 2,500 answers, or no limit. A new assistant starts at 10 credits. Click **Save** after changing them. The preview shows the chat button right away. #### What it answers from - The text of your website. - The current entries of the tables your website shows, like the menu or the timetable. - Your notes under **What else it should know**. It does not search the internet. When something is not there, like a price, it says it does not know and offers to pass the question on to you. It answers questions about your business only. #### Contact requests When a visitor wants to be contacted, the assistant asks for a name and an email address or phone number. The request lands in **Messages**, marked as coming from the AI assistant, and arrives by email. Visitors who want to book or buy are pointed to your booking page or shop. #### Try it first Below the settings in the Cloud tab is a test chat. It answers from your current draft, also before you publish. Test answers use credits but do not count toward the monthly limit, and contact requests you make there are not sent. #### Cost and the monthly limit Each answer uses about 0.1 credits, paid from your credits. The Cloud tab shows this month's answers to visitors, the credits used and the contact requests. When the monthly limit is reached, or your account has no credits left, the chat stops answering and visitors see a note to use your contact details. It answers again next month, after you raise the limit, or once you have credits again. #### Conversations frascati does not keep the conversations, so you cannot read them afterwards. The chat tells visitors that answers come from an AI and can contain mistakes. The answers come from Claude Haiku 4.5 by Anthropic, and from Claude Sonnet 5.5 if Haiku fails. #### What it does not do - It does not take bookings or orders. It points visitors to your booking page or shop. - It is not a live chat: you cannot join a conversation. - It is not part of the downloaded source code. frascati adds it when it serves your published website. ### Cloud tables https://frascati.app/docs/cloud-tables Tables for what changes often, like a menu, prices or events, and for what people send you, like sign-ups. You edit them in the Cloud tab, without credits and without publishing again. #### Two kinds of tables - Content on your website: You fill it in, and the website shows it: a menu, events, opening hours, a timetable. - Entries from visitors: Visitors fill it in on the website, through a form, and only you see it: reservations, sign-ups, registrations. Phone apps have the same two kinds: content in your app, and entries from the people who use it. #### Create a table The easiest way is to ask in the chat, for example: “Make the menu a table I can update myself.” frascati creates the table with the current entries and shows it on your website in its design. Asking for it is a normal change and uses credits. Or click **New table** in the **Cloud** tab, give it a name, choose what it is for and add its fields. Then ask frascati in the chat to show it on your website. Fields come in these kinds: text, long text, number, date, time, email, phone, link, image, yes or no, and choice. A table has up to 30 fields, and each one can be required. #### Edit entries Open **Cloud** in the editor and click a table. **Add entry**, change, hide, reorder or delete entries and upload images. Your website shows the change right away, without publishing again, and editing uses no credits. #### Entries from visitors Entries are checked against the fields and protected against spam. You get an email for each one, and new entries are marked with a blue dot. Only you see them, in the Cloud tab and in the emails. The website cannot read them, and the AI only learns how many there are. #### Export and connections **CSV** downloads any table as a file for Excel, with semicolons and in UTF-8. Under **Connections** in the Cloud tab, each new entry can go to Zapier, Make or n8n, and from there to Google Sheets or your CRM. #### How many tables and entries Plan | Tables per website | Entries per website Starter | 3 | 300 Pro | 20 | 5,000 Business | 50 | 50,000 The entries of all tables of a website count together. #### What tables do not do - They are not a full database: no links between tables, no formulas, no queries of your own. - Visitors cannot see or change what they sent, and websites have no member areas. - Entries from visitors are never shown on the website, so a table cannot be a public guestbook. - There is no import from a file. To fill a table with many entries at once, paste them into the chat, which is a normal change and uses credits. ### Messages and visitor numbers https://frascati.app/docs/messages-and-visitors Messages from the forms on your website land in the editor and in your inbox. The Visitors view counts how often your pages are opened. Neither needs anything to install. #### Messages from your forms Open **Messages** in the editor. Every message from a form on your published website is there, newest first, with a blue dot while it is new. The number of new messages shows next to **Messages**. Forms in the preview do not send anything; they start once the website is published. - **Reply** opens your email program with the sender's address. - The bin deletes a message. - Contact requests from the AI assistant (https://frascati.app/docs/ai-assistant) land here too. #### Email copies Every message also arrives by email, at your login address unless you choose another one: 1. In **Messages**, click **Send to another address**, type it, like info@your-business.com, and click **Send confirmation**. 2. Open the link in the email frascati sends there. Until then, copies keep going to your login address. **Use my login address** switches back. Emails about bookings go to the same address. #### How many messages Messages in 30 days, all your websites together: Starter 50, Pro 200, Business as many as you like. While the limit is reached, forms do not accept messages; they do again as older messages pass 30 days. A hidden field and a time check stop robots, and one visitor can send up to 10 messages a minute. #### Visitor numbers Open **Visitors** in the editor. frascati counts on its own servers each time a page of your published website is opened: there is no tracking code to add, and the counting stores nothing in your visitors' browsers. - Total views: Since the website was first published. - In this period: In the time range at the top right, from **Today** to **Last 90 days**. - Today and Daily average: Today so far, and the average day of the period. - Views per day: A chart of the period, with Pro and Business. - Traffic sources: The websites visitors came from, like google.com, with Pro and Business. **Direct** means they typed the address or came from an app or an email. The numbers count opened pages, not people: a visitor who opens three pages counts three times, and search engine robots count too. ### Connect Zapier, Make or n8n https://frascati.app/docs/connections Every new form message, table entry, booking and paid order can go to one web address of your choice. With Zapier, Make or n8n, it goes on from there to Google Sheets, your CRM, your newsletter or thousands of other apps. Included in every plan. #### Set it up 1. In Zapier, start a Zap with **Webhooks by Zapier** and **Catch Hook**. In Make, add a **Custom webhook**. In n8n, add a **Webhook** node for POST. Copy the address it shows. 2. In frascati, open **Cloud** in the editor, paste the address under **Connections** and click **Save**. 3. Click **Send a test**. frascati says whether the address answered. 4. Send a form on your published website, or make a test booking in the preview, so Zapier, Make or n8n see real fields to work with. The address has to start with https:// and be reachable from the internet. **Change** and **Remove** are next to it. #### What is sent - message.created: A form message. - entry.created: An entry in a table. - booking.created: A new booking or request. - booking.confirmed: A request you confirmed. - booking.cancelled: A cancelled booking, with who cancelled it: guest or owner. - order.paid: A paid order. Each one is a POST with JSON: `event`, `site` (your website's name), `projectId`, `sentAt` and `data`, the message, entry, booking or order itself. A booking has its date, time, service, people, name, email, phone, note and status, and `test` is true when it was made in the preview. If the address does not answer within 8 seconds or answers with a server error, frascati tries once more a few seconds later. It does not follow redirects. #### Check that a call comes from frascati For developers: every call carries the headers `X-Frascati-Event`, `X-Frascati-Timestamp` and `X-Frascati-Signature`. The signature is `sha256=` followed by the SHA-256 HMAC, in hex, of the timestamp, a dot and the raw body, with your website's secret as the key. The secret starts with `whsec_`; copy it under **Connections** once an address is saved. ### Plans and credits https://frascati.app/docs/plans-and-credits Credits pay for the AI work. Every plan comes with credits for each month, and every plan starts with a free trial. #### What a credit pays for Credits pay for the AI work: building, changing, answering in Plan mode, writing store texts, and the AI chat on your website or in your app. frascati charges what the AI really used for each request, so a small change uses little and a new website more. What you do | Credits A new website, its first version | about 3 credits A change in the chat | mostly less than 1 credit A question in Plan mode | 0.1 to 0.5 credits **Fix it** on an error in the preview | free, up to 10 times a day **Edit text** right in the preview | free Editing Cloud tables, bookings and orders | free The SEO check, publishing, opening a template | free **Write with AI** for the App Store, the design check of a new app, the AI chat for your visitors | billed like a change, by what the AI used On wide screens, the number next to **Publish** in the editor shows the credits you have left. **Settings** under **Usage** shows your changes and the credits they used, day by day, for the last 12 months. #### The plans Plan | A month | Credits a month | Also included **Starter** | $12 | 30 | 3 published sites, 50 form messages a month, 3 Cloud tables with 300 entries per site, visitor statistics **Pro** | from $29 | 80 to 5,000 | 10 published sites, 200 form messages a month, 20 Cloud tables with 5,000 entries per site, your own domains, source code download, no frascati badge, your own title, description and share image **Business** | from $69 | 190 to 5,000 | Unlimited published sites, unlimited form messages, 50 Cloud tables with 50,000 entries per site, everything in Pro Pro and Business can be booked with more credits a month. Paying yearly costs 10 months instead of 12, and the credits still renew every month. Prices are in US dollars. Compare the plans (https://frascati.app/pricing). Online booking, payments with Stripe, Cloud tables, the AI chat for visitors and connections to Zapier, Make and n8n are part of every plan. Publishing phone apps in the App Store and downloading the source code or the app project are part of Pro and Business. #### The free trial Every plan starts with a free 3-day trial with 20 credits. You choose a plan and add a card; today you pay nothing. Cancel before the trial ends and nothing is charged. Otherwise the plan you chose starts, with its full credits. A few things start only with the first payment: credit packs, downloading the source code, and publishing phone apps in the App Store. If you do not want to wait, **Start plan now** in **Settings** ends the trial early and charges the first payment today. There is one trial per person: a card that already started a trial does not get a second one. #### When credits run out, and when they renew The credits of your plan renew every month and do not carry over. When 70 percent, 90 percent and all of them are used, the chat tells you. Then buy a credit pack in **Settings** under **Buy credits**: 22 credits for $10, 60 credits for $25, 125 credits for $50. Credits from a pack stay until you use them, and your plan's credits are always used first. With Pro and Business you can also book more credits a month under **Change plan**. Credit packs are available once your plan has started, after the trial. #### Change or cancel your plan In **Settings**, **Change plan** switches to another plan or amount of credits. **Billing and invoices** opens Stripe, where you change your card, download invoices and cancel. When you cancel, your plan stays active until the end of the period you paid for, a month or a year. ### General questions https://frascati.app/docs/faq/general What frascati is, who owns what you build, and where to get help. #### About frascati ##### What is frascati? frascati builds websites and phone apps for small businesses from a description in your own words. It writes the pages, the texts and the forms and picks photos, and you change the result by chatting. frascati is made in Switzerland. ##### Do I need to know how to code? No. You describe what you want and change it in the chat. The Code view shows every file if you are curious, but you never have to open it. ##### Which languages does frascati speak? The app is in English. Write to frascati in your language, and it answers and writes your website or app in that language. ##### Which AI builds my website? Claude Opus 5.5 builds new websites and apps, and Claude Sonnet 5.5 makes most of the changes. ##### What does it cost? Plans start at $12 a month, and every plan starts with a free 3-day trial with 20 credits. See Plans and credits (https://frascati.app/docs/plans-and-credits). #### Your projects ##### Who owns my website? You do. With a paid Pro or Business plan you can download the full source code and host it wherever you like. ##### Where is my data stored? Your projects are stored in the EU. Messages from your contact forms are stored with your project and sent to your email address. ##### How many websites can I have? Projects per account: Starter 10, Pro 50, Business as many as you like. Published at the same time: Starter 3, Pro 10, Business as many as you like. ##### Can I use frascati on my phone? Yes. frascati runs in your phone's browser: at the top of the editor you switch between the chat and the preview. You can also install it like an app, see Download the app (https://frascati.app/download). #### Phone apps ##### Can frascati build phone apps? Yes, for iPhone and Android. Choose **Phone app** above the description, and try the app on your own phone right away. See Build your first phone app (https://frascati.app/docs/build-your-first-phone-app). ##### What can apps not do yet? Push notifications, in-app purchases for digital content, maps inside the app, the camera, and signing in with Apple or Google. #### Help ##### Something does not work. What do I do? If the preview shows an error, click **Fix it**. For anything else in a project, click its name at the top left of the editor and choose **Report a problem**. It sends your note, the page address and the last errors, never the content of your project. ##### How do I reach a person? Write to us (https://frascati.app/contact). We read every message. ### Questions about publishing https://frascati.app/docs/faq/publishing Websites online, domains, and phone apps in the stores. #### Websites ##### How do I publish my website? Click **Publish** at the top right of the editor, then **Publish** in the window. The website is online at a frascati address at once. See Build your first website (https://frascati.app/docs/build-your-first-website#publish). ##### I changed my website. Why does the live website look the same? Changes go live when you update: open the Publish window again and click **Update**. ##### How do I take my website offline? In the Publish window, click **Unpublish**. You can publish it again at any time. ##### Can I use my own domain? Yes, with Pro and Business. You set a few DNS records at your domain provider, and frascati does the rest, including HTTPS. See Connect your own domain (https://frascati.app/docs/connect-your-own-domain). ##### Why does my domain still show my old website? Routers, computers and internet providers remember DNS answers for a while. Check on your phone over mobile data, or wait a few hours. The status in the Publish window is checked from frascati's servers. See Why you may still see the old website (https://frascati.app/docs/connect-your-own-domain#old-website). ##### Will Google find my website? The SEO view in the editor shows how search engines see your website and what to fix. On your own domain, every page has its own address and your website has its own sitemap. See SEO for your website (https://frascati.app/docs/seo). #### App Store and Google Play ##### What do I need to publish an app in the App Store? A membership in the Apple Developer Program, 99 USD a year, a paid Pro or Business plan, and about an hour. See Publish your app in the App Store (https://frascati.app/docs/publish-to-the-app-store). ##### Why does the app need my own Apple account? Apple takes apps from app builders only when the owner submits them in their own developer account (App Review Guideline 4.2.6). frascati does the building, signing and uploading for you in that account. ##### Do I need a Mac? No. frascati builds and uploads the app. You need an iPhone to test it with TestFlight, and a way to take screenshots in the sizes Apple asks for. ##### How long does Apple's review take? Most apps are reviewed within two days. Apple emails you the result, and the Publish window shows it too. ##### Apple rejected my app. What now? Open **Publish**, click **Send in Apple's message** and paste Apple's text. The AI fixes the app and tells you what to change in App Store Connect and what to answer. Then build again and submit. See If Apple rejects the app (https://frascati.app/docs/publish-to-the-app-store#rejected). ##### How do I publish an update? Raise the version in the Publish window, build the app and submit it the same way. frascati asks what is new in it. ##### Can I publish on Google Play? Yes, yourself: **Download app project** has a guide. Google charges 25 USD once for a Google Play Console account, and new personal accounts first test the app with at least 12 testers for 14 days. ##### Can I sell things in my app? Goods and services used outside the app, like a coffee or a class, through your own Stripe account. See Payments with Stripe (https://frascati.app/docs/payments-with-stripe#apps). ### Questions about credits and billing https://frascati.app/docs/faq/credits What credits pay for, what is free, and how billing works. #### Credits ##### What is a credit? Credits pay for the AI work. A new website uses about 3 credits, most changes less than 1 credit, and a question in Plan mode 0.1 to 0.5 credits. See Plans and credits (https://frascati.app/docs/plans-and-credits). ##### What uses no credits? **Fix it** on an error in the preview (up to 10 times a day), **Edit text** in the preview, editing Cloud tables, bookings and orders, the SEO check, publishing and opening a template. ##### How many credits does the trial have? 20 credits, for 3 days. ##### Do unused credits carry over? The credits of your plan renew every month and do not carry over. Credits from a pack stay until you use them. ##### What happens when my credits run out? The chat cannot build anything more until you add credits: buy a credit pack in **Settings**, or book more credits a month with Pro or Business. **Fix it** still works, up to 10 times a day. Credit packs: 22 credits for $10, 60 credits for $25, 125 credits for $50. ##### Where do I see what used my credits? In **Settings** under **Usage**: your changes and the credits they used, day by day. ##### Does the AI chat on my website use my credits? Yes. Its answers are paid from your credits, with a monthly limit you set in the **Cloud** tab. #### Billing ##### Which currency do I pay in? In US dollars. Subscriptions started in Swiss francs before keep paying in francs, with the same numbers. ##### Can I pay yearly? Yes. A year costs 10 months, and the credits still renew every month. ##### Where are my invoices? In **Settings**, click **Billing and invoices**. ##### How do I cancel? In **Settings**, click **Billing and invoices** and cancel there. Your plan stays active until the end of the period you paid for. Cancel during the trial and nothing is charged.