# Ownsite Docs > Ownsite is your own corner of the internet: a home page, a blog, a private journal and any other page, on your own domain, managed from one app, by you or by an AI you allow. --- source: https://docs.ownsite.me/ --- # Introduction > Ownsite is your own corner of the internet. A home page, a blog, a private journal and any page you like, on your own domain. Ownsite gives you one website that is entirely yours. It can hold a home page that says who you are, a blog, a journal only you can read, and any other page you want, such as a portfolio or a page of drum videos. Everything lives under one address, and you manage all of it from one app. You can do the work yourself, or ask an AI to do it for you. Ownsite has its own AI built in, and you can also connect the AI you already use, like ChatGPT or Claude. ## Start here - [Quickstart](https://docs.ownsite.me/quickstart): Go from your invite to a live site in about ten minutes. - [How Ownsite works](https://docs.ownsite.me/concepts): Your site, your app, pages, looks and blocks, in one page. - [Connect your domain](https://docs.ownsite.me/own-domain): Move your whole site to a domain you own, step by step. - [Connect ChatGPT or Claude](https://docs.ownsite.me/connect-ai): Let your own AI write posts and redesign pages for you. ## What you can build - [Home page](https://docs.ownsite.me/home-page): One page that says who you are. Pick a template or have an AI design it. - [Blog](https://docs.ownsite.me/write-post): Posts with photos and categories. Keep some private, publish the rest. - [Journal](https://docs.ownsite.me/journal): A daily journal that only you can open, unless you choose to share it. - [Any other page](https://docs.ownsite.me/pages): A portfolio, a reading list, a guestbook. Public, or just for you. ## Three promises **Nothing goes public by accident.** Every change starts as a draft. Your visitors see it only after you press **Publish**, and an AI must ask you first. **Nothing is lost.** Every version of every page is kept. You can go back to any of them at any time, and deleted journal entries wait 30 days before they are gone. **It stays yours.** No ads, no feed and no algorithm. You can use your own domain, and an AI can only touch the parts of your site that you allow. > **Tip:** These docs are also written for AI. Your AI can read them through Ownsite's connection, and every page here has a plain Markdown version (see **Copy page** at the top). The full index for AI tools is at [/llms.txt](https://docs.ownsite.me/llms.txt). --- source: https://docs.ownsite.me/quickstart --- # Quickstart > From your invite to a live site in about ten minutes. This guide takes you from the invite email to a site people can visit. You only need a browser. A domain of your own is optional and can come later. ### 1. Sign in Ownsite is invite-only for now. Your invite email has your sign-in email and a temporary password. Open the link, sign in, and choose a new password. After that, turn on **Face ID / fingerprint sign-in** in **Account**, so you never need the password again. See [Sign-in and passkeys](https://docs.ownsite.me/account). ### 2. Look around the app The app opens on **Overview**. It shows every part of your site (home page, blog, pages, journal), whether each one is public, and anything that is waiting for you. The menu on the left takes you to each part. See [The app](https://docs.ownsite.me/app-tour). ### 3. Turn on your blog On **Overview**, press **Turn on blog** on the blog card. The first time takes a few minutes while your address is set up. When the card says **Public**, people can read your blog at `yourname.ownsite.me/blog`. Your new blog comes with a few sample posts so you can see its look. They are never shown to readers. ### 4. Write your first post Open **Blog** and press **Write**. Add a title, some text and a photo, then press **Publish**. See [Write a post](https://docs.ownsite.me/write-post). ### 5. Make your home page Open **Home** and pick a template. It starts with just your name. To add your story, photos and links, tell Ownsite AI (or your own AI) what you want, for example "add a short about section and my Instagram link". It makes a draft; when you like it, press **Publish**. See [Your home page](https://docs.ownsite.me/home-page). ## Next steps - [Connect your domain](https://docs.ownsite.me/own-domain): Use `you.com` instead of `yourname.ownsite.me`. - [Connect ChatGPT or Claude](https://docs.ownsite.me/connect-ai): Ask your own AI to redesign your home page. - [AI permissions](https://docs.ownsite.me/ai-permissions): Decide what any AI may do on your site. - [Journal](https://docs.ownsite.me/journal): Start a private journal. --- source: https://docs.ownsite.me/concepts --- # How Ownsite works > Your site, your app, and the three ideas behind every page - who can see it, its look, and its blocks. You only need five ideas to understand all of Ownsite. ## 1. Your site and your app Every Ownsite has two addresses. In these docs, **D** stands for your site's address. | Address | What it is | Who uses it | |---|---|---| | `D` | Your site: home page at `D`, blog at `D/blog`, other pages at `D/` | Everyone | | `app.D` | Your app, where you manage everything | Only you (you sign in) | Before you connect a domain, D is `yourname.ownsite.me`. After you connect one, D is your domain, for example `you.com`, and your app is `app.you.com`. A backup app address, `app.yourname.ownsite.me`, always works too. The two addresses mirror each other. The post at `D/blog/autumn` is managed at `app.D/blog/autumn`. ## 2. Everything is a page Your home page, your blog, your journal and a page like `D/drum` all work the same way. Each one is either: - a **Public Page**: on your site, for everyone; or - a **Private Page**: only you can see it, inside your app. Any page can switch between the two in its **Settings**. See [Pages](https://docs.ownsite.me/pages). ## 3. Every page has a look A page's **look** is what visitors see: its layout, colors, fonts, and any fixed text or photos, like your name or an about paragraph. A look has **versions**. Every change makes a new version, which starts as a draft. You preview it, then press **Publish**, and only then do visitors see it. Every old version is kept, so you can always go back. See [Looks and versions](https://docs.ownsite.me/looks). ## 4. Some pages have blocks Some things keep growing without the look changing: blog posts, journal entries, guestbook messages, items in a portfolio. These live in **blocks**. A block stores the items, and the look decides how they are shown. Because they are separate, you can change the look as often as you like without losing a single post. See [Blocks](https://docs.ownsite.me/blocks). > **Good to know:** The blog and the journal are not special. A blog is a page with an articles block. A journal is a private page with a journal block. That is why they have the same tabs and the same controls as every other page. ## 5. You decide what AI can do Ownsite AI (built in) and any AI you connect follow one set of rules that you control in **AI permissions**. An AI can make drafts, but anything that changes what visitors see waits for your confirmation, unless you allow it. See [Who can change what](https://docs.ownsite.me/rules). ## Every page has the same three tabs | Tab | What it holds | |---|---| | **Look** | The page as visitors see it, its drafts, templates and version history | | **Content** | The page's blocks: posts, entries, messages, items | | **Settings** | Who can see it, its language, and other options | --- source: https://docs.ownsite.me/app-tour --- # The app > What each part of the app does, and where to find it. Your app lives at `app.D`. The menu on the left stays put, and the right side shows whatever you pick. On a phone, the menu moves to the bottom of the screen. ## The menu | Item | Path | What it is for | |---|---|---| | **Overview** | `/` | Is each part public, and what is waiting for you | | **Home** | `/home` | Your home page: its look, versions and settings | | **Blog** | `/blog` | Posts, categories, the blog's name and look | | Your other pages | `/` | One item per page, for example `/drum` | | **Journal** | `/journal` | Your private journal (marked with a lock) | | **Address** | `/settings/address` | Your site's address and your own domain | | **Visitors** | `/visitors` | How many people visited recently | | **AI permissions** | `/apps` | What every AI may do, and connecting your own AI | | **Account** | `/account` | Email, Face ID / fingerprint sign-in, password, sign out | At the top is your site card with its name and address. If you manage more than one site, tap it to switch. ## Overview **Overview** is the first screen. It has one card for each part of your site (the home page, the blog, each page and the journal). Each card shows: - whether that part is **Public** or **Not public**, and at which address, for example `D/blog`; - anything waiting for you, such as a new version an AI made, with **Publish** and **Discard** buttons. Below the cards, **Recent changes** lists who changed what: you, Ownsite AI, or an AI you connected, such as "Claude made a new home page version". The journal card only says that it is private. It never shows what you wrote. ## Ownsite AI The **✦ Ownsite AI** button opens the built-in AI next to whatever you are doing. You can ask it how something works, or ask it to do the work. See [Ownsite AI](https://docs.ownsite.me/ownsite-ai). --- source: https://docs.ownsite.me/pages --- # Pages > Create a page, choose who can see it, and learn the rules for page names. Besides your home page and blog, your site can have any number of pages. Each one has its own address, such as `D/drum`, and its own item in the app's menu. ## Create a page ### 1. Press New page In the app menu, under your pages, press **+ New page**. ### 2. Choose how it starts - **Design it yourself**: an empty page whose look you or an AI design. - **Write articles**: a page like your blog, with an articles block and an articles template. - **Keep a journal**: a page with a journal block. It starts as a Private Page. ### 3. Name it The name is part of the address. As you type, you see where it will live, for example "Will be at `D/drum`". Press **Create**, and the page appears in the menu. A new page is empty. Nothing shows at `D/drum` until you publish its first version. > **Note:** Page names use only lowercase letters, digits and `-`, up to 30 characters. Names the site uses itself, such as `blog`, `media`, `home` and `settings`, are taken. > > A page cannot be deleted or renamed after you create it. If you no longer want people to see it, make it a Private Page. ## Public Page or Private Page Every page is one of the two, and can switch at any time in its **Settings** under **Who can see it**. | | Public Page | Private Page | |---|---|---| | Who can see it | Everyone | Only you | | Where | On your site, at `D/` | Only inside your app | | Search engines | Can find it | Never see it | Before a page becomes public, Ownsite tells you exactly what will become visible. For a journal, that includes how many entries and photos. If an AI asks to make a page public, you must confirm it in the app. For the home page, "private" means turning it off: your address then shows a simple home page. See [Your home page](https://docs.ownsite.me/home-page). ## Examples | Example | Who can see it | Blocks | |---|---|---| | A drum page, your home page | Public Page | None | | A home page with a guestbook, a portfolio | Public Page | Messages, Works | | Notes for yourself | Private Page | None | | A journal, a private reading list | Private Page | Journal, List | ## Ask an AI to make a page Once you [connect your AI](https://docs.ownsite.me/connect-ai), just ask: "Make a new page called drum on my site, with my drum videos." It creates the page, makes the first version, and sends you a preview link. Publishing waits for you. --- source: https://docs.ownsite.me/looks --- # Looks and versions > Drafts, previews, publishing, templates and version history. Every page works the same way. A page's look is what visitors see. Every change to it makes a new **version**. A new version is always a draft first, and visitors see it only after you publish it. This works the same for your home page, your blog and every other page. ## The Look tab Open a page and choose **Look**. From top to bottom you see: 1. **Live**: the version visitors see now. Switch between desktop and phone, or press **Preview** to open it full size. 2. **Unpublished changes**: shown when there is a draft. Press **Preview** to check it, **Publish** to make it live, or **Discard** to drop it. A discarded draft stays in the history. 3. **Templates**: starting points, including your own saved templates. 4. **Customize**: common settings such as accent color, font and width. 5. **Version history**: every version, with a screenshot, its number, who made it (you, Ownsite AI, ChatGPT, Claude...) and when. ## Change a look There are three ways, and each one makes a draft: | Way | Good for | |---|---| | Pick a **template** | A whole new style in one step | | **Customize** | Colors, fonts and width | | Ask an **AI** | Anything else: new text, new sections, a full redesign | To use an AI, open Ownsite AI or your own connected AI and describe the change, for example: "Make the title on my home page shorter. Make a draft and don't publish it yet." The draft appears under **Unpublished changes**, marked with the AI's name. > **Note:** An AI only writes what you tell it. It asks you for your history, prices and dates instead of making them up. ## Publish Press **Publish** on a draft. Within about half a minute, everyone sees the new version. If you still see the old page, refresh it, or try another browser. Some browsers keep old pages for a while. ## Templates A template is a starting point for a look. Using one makes a draft, so nothing changes until you publish. To keep a version you like as your own template, open its **···** menu in **Version history** and choose **Save as template**. It then appears under **Templates**. > **Good to know:** On a page with blocks, such as your blog, a template only controls the layout. Your posts and items fill it in, so switching templates never loses any of them. On a page without blocks, the text and photos are part of the look, so they change along with it. ## Set a version aside In a version's **···** menu, choose **Don't want this**. It moves to the bottom of the history. You can bring it back at any time with **Restore**. Nothing is ever deleted. ## Related - [Roll back](https://docs.ownsite.me/roll-back): Go back to any earlier version. - [Blocks](https://docs.ownsite.me/blocks): Add things that grow, like a guestbook. --- source: https://docs.ownsite.me/roll-back --- # Roll back to an earlier version > Not happy with a change, even one you already published? Go back to any version. Every version of a page is kept, so you can always go back to one you liked. ### 1. Open the page's look Open the page (for example **Home**) and choose **Look**. ### 2. Find the version Open **Version history** and tap the version you want. It opens as a preview, so you can make sure it is the right one. ### 3. Restore it Press **Restore this version**. It becomes a draft, and **Unpublished changes** appears at the top. ### 4. Publish Press **Publish**. Within about half a minute, everyone sees that version again. Nothing is deleted along the way. The version you just replaced is still in the history, so you can restore it later. > **Tip:** Versions you set aside with **Don't want this** are at the very bottom of the history. Press **Restore** to bring one back. You can also ask an AI to roll back: "Put back the version of my home page from last Tuesday." Publishing still waits for your confirmation, unless your [AI permissions](https://docs.ownsite.me/ai-permissions) allow the AI to publish. ## Undo a settings change A page's **Settings** decide what it stores and how: who can see it, its language, its blocks and their fields, and a journal's kinds and questions. Settings take effect at once (there is no draft), so every change is kept instead, whoever made it: you in the app, Ownsite AI, ChatGPT or Claude. ### 1. Open the change history Open the page's **Settings**, scroll to the bottom and open **Change history (N)**. Each change says who made it, what changed and when, for example "Claude added a journal kind: Reading". The newest is marked **Now**. ### 2. See what changed Tap a change. What was added is green, what was taken away is red, what stayed is grey. ### 3. Undo it Press **Undo to before this change**. If later changes came after it, you are told first: they are undone with it. Nothing stored is lost: a field, a block or a journal question that comes back brings back everything written in it. Undoing is a change of its own, so you can undo it too. Each page keeps its last 50 changes. When Ownsite AI changes a page's settings, its reply has a card with **See what changed** and **Undo**; after undoing, the card offers **Restore**. Going back to something more open (for example back to a Public Page) needs your confirmation in the app, as any such change does. --- source: https://docs.ownsite.me/home-page --- # Your home page > The page at your address. What visitors see when you have none, and how to turn it off. Your home page is the page at `D` itself. It works like every other page: it has a look with versions, and changes are drafts until you publish them. See [Looks and versions](https://docs.ownsite.me/looks). ## Start your home page Open **Home** and pick a template. You get a page with just your name, ready to publish. To add more, ask Ownsite AI or your own AI, for example "Add a short paragraph about me and a link to my blog". ## When you have no home page If you have not published a home page, or you turned it off, `D` shows a **simple home page**: your name, your introduction and your latest posts, with a link to your blog. Ownsite never makes anything up for it. ## Turn off your home page ### 1. Open the look Open **Home** and choose **Look**. ### 2. Turn it off On the live version at the top, open the **···** menu and choose **Stop showing**. Confirm. `D` then shows the simple home page. Every version is kept, and you can publish any of them again later. > **Note:** Your home page and your blog are separate. Turning off one does not affect the other. > > Other pages work differently. When you turn off a page like `/drum`, `D/drum` shows "page not found". Its versions are all kept. --- source: https://docs.ownsite.me/blocks --- # Blocks > Add things that grow over time, like a guestbook, a portfolio or a reading list. Most of what is on a page, like your name, an about paragraph, photos, a video and colors, is part of its [look](https://docs.ownsite.me/looks). You change it by making a new version. Some things keep growing instead: visitors' messages and sign-ups, or works and books you add one by one. These go in a **block**. Each block has its own name, such as **Messages** or **Works**, and you manage it in the page's **Content** tab. ## Do you need a block? Ask one question: **will it grow without the look changing?** | You want | Use | |---|---| | Visitors write something (guestbook, sign-ups, likes) | A block | | You keep adding items (portfolio, reading list, trips) | A block | | Fixed content you change now and then (name, photo, about, a video) | Just the look | If you are not sure, your AI will ask, for example "Will you add new works often?" ## Add a block Tell your AI, for example "Add a guestbook to my home page". It will: ### 1. Ask what it needs to know It only makes a block for things that will grow. ### 2. Add the block If visitors can write to it, you confirm this once in the app. ### 3. Make a draft that shows it Preview the draft. When you like it, press **Publish**. If the page already has a block of the same kind, the AI asks whether to reuse it or make a new one. Most people reuse it, so the same items show in both places. ## Manage a block Open the page and choose **Content**. With two or more blocks, a small switch at the top moves between them (for example **Messages · Works · +**). - **Messages**: new messages show **Waiting for you**. They appear on the page after you press **Approve**. - **Works and lists**: press **Add** for a new item. Tap an item to edit or delete it. - **⚙ Rules** shows who can see and who can write. To change the rules, ask your AI. ## Changing the look never loses items Items live in their block, not in the look. Switching templates or redesigning the page does not touch them. If a new version no longer shows a block, its tab says **No longer on the page**. You can ask the AI to put it back, or press **Remove**. Removing only hides the tab. The items are kept, and they come back if you add the block again. --- source: https://docs.ownsite.me/write-post --- # Write a post > Write, preview and publish a blog post, or keep it as a draft or a private post. ### 1. Start a post Open **Blog** and press **Write**. ### 2. Write it Add a title and your text. You can add photos and links anywhere in the text. Photos are compressed for you. ### 3. Add the details Below the text you can set: - **Date**: when the post was written. - **Category**: where it belongs on your blog. See [Categories](https://docs.ownsite.me/categories). - **Cover**: tap a photo in the post and choose **Set as cover**, or upload another one. The cover shows in the list on your blog's front page. ### 4. Preview Press **Preview** at the top to see the post as readers will. Nothing is saved yet. ### 5. Save it Choose one of three buttons. | Button | What happens | Who can see it | |---|---|---| | **Save draft** | Kept in your app | Only you | | **Private** | Saved as a private post, never on the blog | Only you | | **Publish** | Shown on `D/blog` | Everyone | Your post list shows each post's state: **Published**, **Draft** or **Private**. > **Note:** Readers can only see published posts if your blog is public. See [Turn your blog on or off](https://docs.ownsite.me/blog-online). > **Tip:** If you leave without saving, nothing is lost. The next time you open the post, your unsaved text comes back. ## Ask an AI to write Your AI can write posts too, for example "Write a post about our trip to Kyoto using these photos". It always saves them as drafts. Publishing waits for you, unless your [AI permissions](https://docs.ownsite.me/ai-permissions) allow it. --- source: https://docs.ownsite.me/edit-post --- # Edit, unpublish and restore posts > Change a published post, take it down, or bring back an earlier version of it. Open **Blog**, choose **Content**, and tap a post to open it. ## What you can do | The post is | You can | |---|---| | **Published** | Press **Update** to save changes. Readers see them right away. Press **Unpublish** to turn it back into a draft. | | **Private** | Press **Save** to keep it private, or **Publish** to make it public. | | **Draft** | **Save draft**, **Private** or **Publish**, just like a new post. | Unpublishing never loses anything. The post becomes a draft, and readers can no longer see it. ## Bring back an earlier version Every save keeps a version of the post. ### 1. Open the history In the post, open **History**. ### 2. Restore Pick a version and press **Restore**. Before restoring, Ownsite saves what you have now as a version too, so you can always undo a restore. > **Good to know:** When an AI edits a post, its changes are saved as versions as well, so you can always restore what you wrote. --- source: https://docs.ownsite.me/categories --- # Categories > Group your posts, nest them one level deep, and set the order of the category bar. Open **Blog** and choose **Categories**. - **New category**: type a name and press **Add**. - The **···** menu next to each category lets you **Rename**, **Add subcategory**, **Move to top level**, **Move into another category** or **Delete** it. - **Category bar**: the categories across the top of your blog. Drag them to set the order, from left to right. ## Deleting a category If a category still has posts, Ownsite asks where they should go: another category, or **No category**. Posts are never deleted. ## When a category shows on your blog A category appears on your blog only when it has at least one published post. A category with only drafts or private posts is hidden. When you publish its first post, it appears at the end of the category bar. To put a post in a category, choose it under **Category** while you write the post. --- source: https://docs.ownsite.me/blog-settings --- # Blog name, look and introduction > Set your blog's name and tagline, choose its look, and write the introduction on its front page. ## Name and tagline Readers see these at the top of your blog. Open **Blog** and press **Set name and look**. Fill in **Blog name** and, if you like, **Tagline**. Press **Next** to choose a look. ## Look Open **Blog** and choose **Look**. - At the top is your blog as readers see it now, shown with your own posts. Switch between desktop and phone. - **Templates**: Paper, Magazine, Minimal, and any templates you saved. Tap one to see it large, then press **Use this template**. - **Customize**: accent color, font, width and other common settings. For anything more, ask your AI. Every template and customization starts as a draft, and **Unpublished changes** appears at the top. Press **Preview** to check it, **Publish** to show it to readers, or **Discard** to drop it. > **Good to know:** Changing the look never touches your posts. They live in the blog's **Content** tab. ## Introduction The introduction is a short text on your blog's front page, under its name. Write it in the blog's **Settings**. Leave an empty line to start a new paragraph. It saves as you type and can be up to 2,000 characters. --- source: https://docs.ownsite.me/blog-online --- # Turn your blog on or off > A new blog starts private. Turn it on when you are ready, and off again at any time. A new blog is not public. Only you can see it in your app until you turn it on. ## Turn it on On **Overview**, press **Turn on blog** on the blog card. You can also press **Blog online** in **Address**. From then on, everyone can read your **published** posts at `D/blog`. Drafts, private posts and sample posts are never shown. The first time takes a few minutes. The card says **Turning on...** and changes to **Public** when it is ready. ## Turn it off In **Address**, press **Blog offline**. `D/blog` stops opening. Every post is kept, and you can turn the blog back on at any time. ## Sample posts A new blog comes with a few sample posts, marked **Sample**, so you can see how it looks. They are never public: when you turn the blog on, they become drafts automatically. You can also edit them into posts of your own. > **Note:** Your blog and your home page are separate. Turning one on or off does not affect the other. --- source: https://docs.ownsite.me/journal --- # Journal > A journal only you can read. Write, search, look back, and export. Your **Journal** is a Private Page. Only you can see it. It never shows on your blog or home page, and no AI can read it unless you allow it. See [Let AI read your journal](https://docs.ownsite.me/journal-ai). ## Write Press **Write**, then choose a kind: **Journal**, **Gratitude**, **Morning**, **Evening** or **Mood**. You can add a title, a mood, photos and `#tags`. Entries save as you type. If your connection drops, the entry is kept on your device and marked **Not synced yet**. It saves as soon as you are back online. > **Note:** If you edit the same entry on two devices, Ownsite asks which one to keep: **Use the saved one** or **Use this device's**. ## Find - **Calendar**: see which days you wrote, month by month. Tap a day to read it, or **Write on this day**. - **Search**: search for words or `#tags`. - **On this day**: what you wrote on the same day in earlier years. ## Keep it safe In **Me** you will find: - **Recently deleted**: deleted entries stay here for 30 days. Press **Restore** to bring one back. - **Export as text** (Markdown) and **Full backup** (JSON). - **Add to home screen**: on iPhone, open it in Safari, press Share, then **Add to Home Screen**. ## Share your journal If you want others to read it, open the journal's **Settings** and make it a Public Page. Ownsite first tells you how many entries, moods and photos will become public. After you confirm, everyone can read it at `D/journal`. You can make it private again at any time. --- source: https://docs.ownsite.me/journal-ai --- # Let AI read your journal > Your journal is closed to every AI by default. Open it to read, or to read and write. By default, your journal is **Off** for every AI. Neither Ownsite AI nor any AI you connect can read it, or even see that it exists. To let an AI help you look back on or organize your journal, open **AI permissions** and set **Journal** to one of these: | Setting | The AI can | |---|---| | **Off** | Nothing (the default) | | **Read only** | List, search and read your entries. Photos come as links that expire after one hour. | | **Can write** | Also write new entries and edit existing ones | > **Careful:** No setting lets an AI **delete** an entry. Before an AI edits an entry, Ownsite keeps a copy of how it was. Entries an AI writes stay in your journal. They never appear on your blog or home page. Changes apply right away. Set it back to **Off**, and the AI cannot read your journal the next time it tries. ## Only one AI To allow only one AI, open the journal for all, then give every other AI its own setting of **Off**. See [AI permissions](https://docs.ownsite.me/ai-permissions). --- source: https://docs.ownsite.me/own-domain --- # Connect your domain > Move your whole site to a domain you own. Home at you.com, blog at you.com/blog, app at app.you.com. If you own a domain, for example `example.com`, your whole site can move to it: | What | Address | |---|---| | Home page | `example.com` | | Blog | `example.com/blog` | | App | `app.example.com` | Don't have a domain yet? You can buy one from a registrar such as Namecheap or Cloudflare. Common ones cost about $10 a year. ### 1. Enter your domain Open **Address**. Under **Use your own domain**, type your domain and press **Next**. ### 2. Add the records at your registrar The page lists the DNS records to add. Each one has a **Type**, a **Host** and a **Value**, with a **Copy** button. There are usually three: | Type | Host | What it is for | |---|---|---| | ALIAS (CNAME at Cloudflare, Aliyun and DNSPod) | `@` | Your site | | TXT | `_cf-challenge` | Proves the domain is yours | | CNAME | `app` | Your app | Copy each **Value** from the page. Don't type it yourself. Set TTL to **Automatic** or the shortest option. See below for each registrar. ### 3. Wait The page checks by itself and updates when each record is ready. You can leave and come back. Once the records are right, they usually take a few minutes to reach the whole world, and then HTTPS is set up. When your domain is connected, your site uses it, and `yourname.ownsite.me` no longer opens. Your app opens at `app.example.com`, and the backup address `app.yourname.ownsite.me` always works too. > **Careful:** In **Host**, type only `@`, `app` or `_cf-challenge`, never the full domain. Add only these records, and leave the others alone (for example, your email records). ## Adding records, by registrar #### Namecheap 1. Open **Domain List**, press **Manage** next to your domain, then **Advanced DNS**. 2. Delete the built-in records: the CNAME `www -> parkingpage.namecheap.com` and the URL Redirect for `@`. 3. Press **Add New Record** for each record, and save each one with the green ✓. #### Cloudflare 1. Open your domain, then **DNS -> Records -> Add record**. 2. For the `@` record, choose type **CNAME**. 3. Set **Proxy status** to the gray cloud, **DNS only**, on every record. With the orange cloud, HTTPS cannot be set up. #### Aliyun 1. Open **Alibaba Cloud DNS** and press **DNS Settings** next to your domain. 2. Press **Add Record**. Choose type **CNAME**, put the Host in **Hostname** and the Value in **Record Value**. #### DNSPod 1. Open your domain's record list and press **Add Record**. 2. Put the Host in **Host**, choose type **CNAME**, and put the Value in **Record Value**. #### Other Open your domain's DNS settings. For the `@` record, use a type called ALIAS, ANAME, or "CNAME flattening". If a record with the same name already exists, delete it or change it to the value on the page. > **Note:** **GoDaddy** and **Squarespace** cannot point the domain itself (`@`) at another address. The page tells you if this applies. You can move your domain's DNS to a provider that supports ALIAS, such as Cloudflare, and add the records there. ## Stop using your domain On the same page, press **Stop using this domain**. Your site goes back to `yourname.ownsite.me`. You can keep or delete the records you added. To switch to a different domain, stop using the current one first, then enter the new one. A domain can only be used by one site at a time. Stuck? See [Domain status and fixes](https://docs.ownsite.me/domain-status). --- source: https://docs.ownsite.me/domain-status --- # Domain status and fixes > What each status means, and what to do when your domain won't connect. In **Address**, your domain and `app.yourdomain` each show a status. | Status | What it means | What to do | |---|---|---| | **Waiting for your record** | Ownsite can't find the record yet | Add it as shown in [Connect your domain](https://docs.ownsite.me/own-domain). The page checks by itself. | | **Setting up HTTPS** | The record is right. A secure connection is being set up. | Nothing. Wait a few minutes. | | **Connected** | The address works | Nothing | ## Hints under a record | Hint | Fix | |---|---| | "Points to ..., change it to the value above" | The record exists but has the wrong value. Paste the value from the page into **Value**. | | "Host should be only ..., not the full address" | You typed the whole domain in **Host**. Type only `@`, `app` or `_cf-challenge`. | | "The record is right, waiting for it to reach the world" | Nothing. It usually takes a few minutes. | | "Found the @ record, but it hasn't passed the check" | Make sure the TXT record (`_cf-challenge`) is there too, and that the old `@` records are gone, such as a parking page's URL Redirect. | > **Tip:** Using Cloudflare? The most common cause is the orange cloud. Set **Proxy status** to the gray **DNS only** on every record. ## Switching domains You can't change a domain that is partly connected into a different one. Press **Stop using this domain** first, then enter the new one. A domain can only be used by one site at a time. --- source: https://docs.ownsite.me/ownsite-ai --- # Ownsite AI > The AI built into your app. Ask how things work, or ask it to do the work. **Ownsite AI** is built into your app. On a computer, press **✦ Ownsite AI** at the top of the menu, and it opens on the right while the rest of the app keeps working. On a phone, press **✦** at the bottom; it fills the screen, and **‹** takes you back. You can also type into **What do you want to change?** at the top of **Overview**. ## What you can ask You can ask how something works, or ask it to do it: - "Write a draft about our weekend in Portland." - "Make my home page darker and put my photo at the top." - "Add a category called Recipes." - "How many people visited this week?" - "Write today's journal entry." (only if your journal is open to AI) While it works, it shows each step, such as "Making a new version...". When it makes a new version, you get a small card with a screenshot. Press **Preview** to check it and **Publish** if you like it. ## Send photos Press the photo button under the message box, or drag or paste photos in, up to 6 at a time. Photos are shrunk before they upload (to 2048 pixels on the longest side). Then say how to use them, for example "Use this photo on my home page" or "Put this in my Autumn post". ## Conversations Your conversation is saved, so it is still there after you switch pages, reload or change devices. To change topics, press **New chat**. The old messages stay visible, but the AI stops using them. ## It follows your rules Ownsite AI follows the same [AI permissions](https://docs.ownsite.me/ai-permissions) as any AI you connect. If a part of your site is **Off**, it cannot touch it either. When it wants to make something public, it shows a card in the chat, and nothing happens until you press **Confirm**. To limit Ownsite AI on its own, open **AI permissions**, press **···** next to **Ownsite AI · Built in**, and choose **Own settings**. ## Monthly allowance Each site gets $5 of Ownsite AI each month. The message box shows how much you have used, for example "$0.40 / $5 this month". It resets on the 1st of each month. > **Tip:** Ownsite AI is good for everyday changes. For bigger redesigns, connect your own ChatGPT or Claude. They work through the same permissions. See [Connect your AI](https://docs.ownsite.me/connect-ai). --- source: https://docs.ownsite.me/connect-ai --- # Connect your AI > Connect ChatGPT, Claude, Claude Code, Cursor or Kiro, and ask it to work on your site. Once connected, you can say "Use Ownsite to..." in your own AI, and it can see your site and make drafts for you. Ownsite connects through **MCP**, the standard way AI apps connect to other services. Every AI uses the same address: ```text https://mcp.ownsite.me/mcp ``` You can also find it in your app: open **AI permissions**, and under **Connect a new AI**, each AI has a card with the address, a **Copy** button and step-by-step instructions. ## Connect #### ChatGPT 1. Open ChatGPT's plugins page at [chatgpt.com/plugins](https://chatgpt.com/plugins). 2. Press **Add custom MCP server** at the top right. 3. Name it **Ownsite**, paste the address, and press **Add**. 4. Sign in with your Ownsite email, choose your site, and press **Allow**. #### Claude 1. In Claude, open **Settings -> Connectors**. 2. Choose **Add custom connector**. 3. Paste the address and press **Add**. 4. In a chat, tap the connector and sign in with your Ownsite email. 5. Choose your site, check what it may do, and press **Allow**. Claude's free plan allows one custom connector. Pro and above have no limit. #### Claude Code Run: ```bash claude mcp add --transport http ownsite https://mcp.ownsite.me/mcp ``` Then type `/mcp`, choose **ownsite**, and sign in. #### Cursor Open **Settings -> MCP -> Add new server** and paste: ```json { "mcpServers": { "ownsite": { "url": "https://mcp.ownsite.me/mcp" } } } ``` #### Kiro Add this to your agent's `mcpServers`: ```json "ownsite": { "url": "https://mcp.ownsite.me/mcp" } ``` ## When you press Allow There is nothing to tick. The page shows your current [AI permissions](https://docs.ownsite.me/ai-permissions), for example "Home: can change, asks before publishing" and "Journal: off". Every AI follows them. To change them, press **Change in Ownsite**. After you connect, your app gives you a first message you can send to your AI, with a **Copy** button. For ChatGPT and Claude, there is also **Start in ChatGPT** or **Start in Claude**. ## Example requests ```text Use Ownsite to make the title on my home page shorter. Make a draft and don't publish it yet. ``` ```text Use Ownsite to write a blog post about these photos from Kyoto. Keep it as a draft. ``` Your AI makes a draft and sends you a preview link. The draft also appears in your app under **Unpublished changes**, marked with the AI's name. Press **Preview**, then **Publish** or **Discard**. > **Note:** Your AI only writes what you tell it. It asks you for facts like your history, prices and dates, instead of making them up. Next: [What a connected AI can do](https://docs.ownsite.me/ai-can-do). --- source: https://docs.ownsite.me/ai-permissions --- # AI permissions > One setting that decides what every AI may do on your site, including Ownsite AI. **AI permissions** is one set of rules for every AI: the ChatGPT, Claude or Kiro you connect, and Ownsite AI in your app. You don't choose again for each new AI. The sign-in page simply shows these rules. ## Three parts Each part changes with one tap and saves right away (you see **Saved** at the top right). | Part | Choices | |---|---| | **Home** (and your other pages) | Off · Read only · Can change, asks before publishing · Everything | | **Blog** | Off · Read only · Can change, asks before publishing · Everything | | **Journal** | Off · Read only · Can write | **Can change, asks before publishing** means an AI can make new versions and new pages, write drafts, and change categories and the blog's look. Anything that changes what visitors see, like publishing a version, turning a page off, or publishing or unpublishing a post, waits for your confirmation. See [Confirming AI actions](https://docs.ownsite.me/approvals). **Everything** means it doesn't ask. For the journal, the most an AI can get is **Can write**: it can read and write, but never delete an entry. ## Defaults | Part | Default | |---|---| | Home | Can change, asks before publishing | | Blog | Can change, asks before publishing | | Journal | Off | ## Changes apply at once Changes apply right away, even to an AI that is already connected. You never need to reconnect. For example, set the journal back to **Off**, and the AI cannot read it the next time it tries. ## One AI at a time Below the settings is the list of connected AIs, including Ownsite AI, with when each was last used. Press **···** next to one: - **Own settings**: give this AI less than the rest, for example "Claude: blog read only". An AI's own settings can only be lower than the general ones, never higher. Choose **Follow site settings** to go back. - **Disconnect**: it can no longer touch your site, starting now. See also: [Who can change what](https://docs.ownsite.me/rules). --- source: https://docs.ownsite.me/approvals --- # Confirming AI actions > When an AI wants to make something public, it waits for you. With **Can change, asks before publishing** in [AI permissions](https://docs.ownsite.me/ai-permissions), an AI never makes something public on its own. When it wants to publish a version, turn a page off, or publish or unpublish a post, it sends you the request instead. The AI tells you: "Submitted. It takes effect after you confirm it in Ownsite." ## Where to confirm - At the top of **Overview**, for example: "ChatGPT wants to publish home page version 4 · **Confirm** / **Don't**". - In Ownsite AI's chat, as a card with **Confirm** and **Don't**. Press **Confirm**, and Ownsite does it right away on the AI's behalf. **Recent changes** shows which AI did it and that you confirmed it. Press **Don't**, and nothing changes. ## Good to know - Until you confirm, nothing changes. Your site stays exactly as it was. - If an AI asks for the same thing several times, you see it only once. - A request expires after 7 days. To do it later, ask the AI again. - Don't want to be asked each time? Set that part to **Everything** in AI permissions. --- source: https://docs.ownsite.me/ai-can-do --- # What a connected AI can do > What your AI can do within your permissions, what it can never do, and how to disconnect it. What your AI can do depends on your [AI permissions](https://docs.ownsite.me/ai-permissions). Within them: | Part | It can | |---|---| | **Home and other pages** | See every version and its files. Make a new version as a draft, check its desktop and phone screenshots, and send you a preview link. Create pages. Set a version aside or bring it back. | | **Blog** | Read posts, including drafts. Write new posts (always drafts), edit posts, upload photos, change categories, and change the blog's name, tagline and look. | | **Going public** | Publish or unpublish versions, pages and posts. With **Everything**, it does it directly. With **Can change, asks before publishing**, it asks you first. | | **Journal** | Only if you opened it to AI, and it can never delete an entry | Whatever your settings, it can always see your site's addresses and status, read your visitor numbers, and search these docs. ## What it can never do - Change your account or password - Change your address or domain - Delete any version, post or journal entry - Change your AI permissions Everything it does is listed in **Recent changes**, with the AI's name. ## Disconnect an AI Open **AI permissions**, press **···** next to the AI, choose **Disconnect**, and confirm. It cannot touch your site from then on. To use it again, connect it again. > **Note:** Each AI in the list shows what it can do and when it was last used. **Unverified** after a name means the app chose that name itself, and Ownsite cannot check it. --- source: https://docs.ownsite.me/rules --- # Who can change what > The rules for you, Ownsite AI and any AI you connect, in one table. This table is Ownsite's rules. The marks next to each setting in your app ("AI can change", "AI asks you", "Only you"), the table in AI permissions, and the instructions every AI receives all come from this same table. - **Yes**: an AI can do it directly, if your [AI permissions](https://docs.ownsite.me/ai-permissions) let it change that part of your site. - **Asks you**: the AI's request becomes a card on **Overview** and on that page. Nothing happens until you press **Confirm**. See [Confirming AI actions](https://docs.ownsite.me/approvals). - **No**: only you can do it, in your app. | What | You | AI | Why | |---|---|---|---| | Change the look (make a new version) | Yes | Yes | A new version is only a draft. Visitors don't see it. | | Publish a version of the look | Yes | Asks you (unless AI permissions allow publishing) | Visitors see something new after it is published. | | Make a page a Private Page (only me) | Yes | Yes | Fewer people can see it, never more. | | Make a page a Public Page (everyone) | Yes | Asks you | Everyone can then see the page and what it stores. | | Turn off the home page (your address shows a simple home page) | Yes | Asks you (unless AI permissions allow publishing) | The first page visitors see changes. | | Add a block only you write to (works, lists, albums) | Yes | Asks you | Everyone can see what is in it. | | Add a block visitors can write to (guestbook, sign-ups) | Yes | Asks you | Visitors can then write on your site. | | Add or change an item in a block (a post, a journal entry, a work) | Yes | Yes | Posts and works start as drafts or need publishing. The journal needs AI permissions to allow it. | | Publish a post | Yes | Asks you (unless AI permissions allow publishing) | Everyone can see it after it is published. | | Delete an item | Yes | Asks you (unless AI permissions allow publishing) | It stays in the history, but visitors stop seeing it at once. | | Change a page's language | Yes | Yes | It only changes how buttons and dates are written. | | Let more people see or write to a block (for example, messages without approval) | Yes | Asks you | More people can see or write things. | | Change AI permissions | Yes | No | Only you decide what AI can do. | | Address and account | Yes | No | Only you can change them. | > **Good to know:** When an AI is refused, or has to ask you, it never tries another way around the rule. The rules are enforced by Ownsite itself, not by the AI. --- source: https://docs.ownsite.me/account --- # Sign-in and passkeys > Sign in, use Face ID or a fingerprint instead of a password, change your password, and sign out. ## Your first sign-in Accounts are invite-only, so you can't sign up yourself. Your invite email has your sign-in email and a temporary password. After your first sign-in, you choose a new password. You stay signed in for 30 days. You sign in at your app, `app.D`. If you connected your own domain, the backup address `app.yourname.ownsite.me` works too, with the same account. ## Account settings Open **Account**: | Setting | What it does | |---|---| | **Email** | The email you sign in with | | **Face ID / fingerprint sign-in** | Press **Turn on**, and you never need your password again. On a new device, press **Add on a new device**. Devices on the same Apple or Google account sync automatically. You can remove a device at any time, and password sign-in still works. | | **Change password** | Ownsite emails you a code, then you choose a new password | | **Sign out** | Signs out of this browser only | > **Tip:** Forgot your password? On the sign-in page, press **Forgot your password?** and reset it with a code sent to your email. To see the devices you already set up, you may need to sign in again first. ## Opening links in WeChat If the sign-in page won't open inside WeChat, press **···** at the top right and choose **Open in browser**. --- source: https://docs.ownsite.me/visitors --- # Visitors > How many people visit your site, and exactly how Ownsite counts them, without cookies. Open **Visitors** to see: - **Views** and **visitors** in the last 7 days - **Views** in the last 30 days, with one bar per day - Your most-read pages ## How it counts Ownsite counts from the server's own access logs. There is no tracking code on your pages, no cookies, and no record of who visited. | Term | Means | |---|---| | A **view** | Someone opened one page of your site: your home page, blog, a post or another page. Images and other files don't count, and neither do search engines and bots. | | A **visitor** | One browser on one device in one day. If the same person comes back the next day, they count again. | Only your site's own addresses count (D and `yourname.ownsite.me`). Opening your app doesn't. Today's numbers update about every 10 minutes. Earlier days don't change once they are counted. --- source: https://docs.ownsite.me/troubleshooting --- # Troubleshooting > Find what you are seeing, and what to do about it. | What you see | What to do | |---|---| | A button says **Didn't work, try again** | The network or service hiccuped. Wait a few seconds and try again. | | A page says **Something went wrong** | Press **Try again**, or reload the page. | | You keep being asked to sign in, or see **Signed out** | Your sign-in expired. Sign in again. See [Sign-in and passkeys](https://docs.ownsite.me/account). | | The blog says **Turning on...** for a long time | The first time takes a few minutes, and the page updates by itself. If it takes much longer, contact the person who set up your site. | | Your domain won't connect | Read the hint under each record in **Address**. See [Domain status and fixes](https://docs.ownsite.me/domain-status). | | You published, but your site still looks old | It usually takes under half a minute. Refresh, or try another browser or your phone. Some browsers keep old pages for a while. | | A version your AI made doesn't appear | Check that your AI said it was done and gave you a preview link. A version that failed isn't saved, and your site doesn't change. Ask it to try again. | | Ownsite AI says the allowance is used up | Each site gets a monthly allowance. It resets on the 1st. | > **Good to know:** Whatever goes wrong, nothing you made is lost: not your public site, not your posts, not any version of any page, and not your journal. Still stuck? Send the person who set up your site what you did and what you saw. A screenshot helps most. --- source: https://docs.ownsite.me/mcp --- # MCP server > The address, sign-in and tools of Ownsite's MCP server, for anyone setting up an AI client. Ownsite's MCP server lets any MCP client work on a person's site, within the permissions that person set. For step-by-step setup in ChatGPT, Claude and others, see [Connect your AI](https://docs.ownsite.me/connect-ai). ## Server | | | |---|---| | Address | `https://mcp.ownsite.me/mcp` | | Transport | Streamable HTTP | | Sign-in | OAuth 2.1 with PKCE, through `auth.ownsite.me` | The person signs in with their Ownsite email, chooses a site, and presses **Allow**. The connection then acts as that person, limited by their [AI permissions](https://docs.ownsite.me/ai-permissions). Changing those permissions takes effect on the next call, without reconnecting. ## How tools behave - **Nothing goes live by itself.** New versions and new posts are always drafts. Tools that change what visitors see (`publish_version`, `unpublish_home`, `publish_post`, `unpublish_post`) either act, or return a pending confirmation that the person answers in their app, depending on their permissions. - **Nothing is deleted.** Versions are set aside, not deleted, and journal entries cannot be deleted. - **Retries are safe.** Tools that create things take an optional `client_token`. Retrying with the same token doesn't create a second one. - **Every action is recorded** in the person's **Recent changes**, with the client's name. ## Tools | Tool | What it does | |---|---| | `list_sites` | The sites this connection can use, and what it may do on each. | | `get_home` | The home page: its addresses, the live version, the version being worked on (the default base for changes) and the newest versions. | | `list_versions` | Versions of the home page, newest first, with who made them and their preview links. | | `read_files` | Without paths: the list of files of a version (SOURCE files you can edit; PUBLIC files such as photos the page can point to, e.g. | | `create_version` | Makes a new draft version from a base version (default: the one being worked on) or a template, and a list of changes; builds it and photographs it (desktop and phone). | | `list_templates` | The templates a home page (or, with page, any page) can start from (create_version with template_id). | | `get_version` | A version: its status (BUILDING, READY, FAILED), preview link, screenshots and build error. | | `set_version_hidden` | Sets a version aside (the person did not want it) or restores it. | | `publish_version` | Puts a READY version on the public home page, worldwide within seconds. | | `unpublish_home` | Takes the home page off its public addresses (the address then shows the default home: name, intro, latest posts), or with page: takes that page offline. | | `create_page` | Makes a new, empty page of the site at // (e.g. | | `create_upload` | Gets an address to upload a photo to (PUT the bytes, e.g. | | `get_blog` | The blog: its name, language (write in it), whether it is public, its addresses and its categories (ids for posts). | | `update_blog` | Sets the blog's name, the line under it (tagline) and its look (theme: paper, magazine or minimal). | | `list_posts` | Posts, newest first: slug, title, status (DRAFT, PUBLISHED, PRIVATE), date, categories. | | `read_post` | A whole post: its Markdown, status, links and etag (pass the etag to update_post). | | `create_post` | Writes a new post as a DRAFT (readers do not see it). | | `update_post` | Changes the fields given (title, body, date, categories, cover); the post's status stays. | | `publish_post` | Makes a post public on the blog (readers see it at once when the blog is public). | | `unpublish_post` | Makes a published post a draft again (readers no longer see it). | | `upload_post_image` | Gets an address to PUT one photo to (with the returned curl command, at most 4 MB); or, with upload_id (a photo already uploaded, e.g. | | `list_categories` | The blog's categories (at most two levels), with how many posts each has, and the rev to pass to update_categories. | | `update_categories` | Saves the whole category tree (order = display order; a category's id is its address and never changes on rename). | | `list_journal` | The person's private journal, newest day first: id, date, kind, title, the first lines, mood, tags. | | `search_journal` | Journal entries with every word of the query (in the text or a tag), newest first. | | `read_journal_entry` | One whole journal entry: its text, answers, mood, tags, photo links (signed, one hour) and rev (pass it to update_journal_entry). | | `create_journal_entry` | Writes a new private journal entry (only the person sees it). | | `update_journal_entry` | Changes the fields given; the rest stays. | | `add_block` | Adds a block: a part of a page that stores things, managed by the person in the app under a tab of its own named label (留言, 作品, 报名). | | `get_page_data` | What a page stores: its blocks (each a collection: its tab name label, rules in plain lines, record count, and how many places on the live page show it, from data-block="" marks) and its settings (visibility public\|private, lang, render). | | `set_page_settings` | Advanced: sets the page's collections directly (prefer add_block for a new block). | | `list_settings_changes` | The page's settings changes, newest first (the last 50): rev, when, who (the person or which AI), and what changed in plain words (lines). | | `undo_settings_change` | Puts the page's settings back to how they were before change rev (from list_settings_changes); later changes are undone with it, so tell the person which. | | `list_records` | Records of a collection, newest first (or by an index field: index, value, order asc\|desc). | | `get_record` | One record and its rev (pass it to update_record / delete_record). | | `create_record` | Adds a record as the person (the site's owner). | | `update_record` | Changes the fields given (the rest stays). | | `delete_record` | Deletes a record (kept in its history, the person can bring it back in the app). | | `get_site_status` | The site's addresses, its own domain and its state, what is public (home page, each page, the blog), the app address, and what AIs may do on each part (aiPermissions). | | `get_visitors` | Views and visitors per day for the last days (default 30, at most 90), the totals and the most read pages. | | `list_pending_approvals` | Actions AIs asked for that wait for the person to confirm in their Ownsite app (e.g. | | `search_manual` | Searches Ownsite's own manual (in Chinese): how the person's app works (home versions, publishing, the blog, pages, the journal, own domain, visitors, connecting an AI, account). | | `read_manual_article` | One whole article of the Ownsite manual, by its id from search_manual: its title, section, the app path it is about and the body (Markdown, Chinese). | ## Rules every client follows See [Who can change what](https://docs.ownsite.me/rules) for the full table of what an AI may do directly, what needs the person's confirmation, and what only the person can do.