• Help · Your site

Your website

Your AI builds your website and puts it online on Company of One. You see a preview first. It goes live only after your yes, on a paid plan.

Where is my website?

  • Home has a card called "Your website". It says "Live at" and the address once the site is live, or "Private" while only you can see it. "Copy address" copies it, and "Preview" opens the newest preview.
  • Settings, "Your websites" lists each site with "your free address" and any domain of your own.
  • Your free address is made from your company's short name. You don't need to buy a domain to have one.
  • Your main website is the one on Home. Other sites or pages your AI made are extra ones.
  • During the free trial the site stays private. On a paid plan it goes live after your yes.

"Not connected", "Not set up" and "Hosted on"

  • Trust the card on Home: it reads your real site.
  • The lists of tools (in Marketing, "Website & pages", and in each department's tools) read your own list of tools. They can say "Not connected" or "Not set up" while your site is live, because that list wasn't filled in. Nothing is wrong with the site.
  • "Hosted on" is where a tool lives. For a site made here, and if you never had a website, write Company of One.

Changing the words, photos and look

  • Today your AI changes the words and photos on your site. Tell it what to change, look at the preview, and say yes. The office has no page editor of its own yet.
  • Your photos: upload them in Media, then tell your AI which ones to use and where.
  • Your phone number, prices or opening times: tell your AI, and it puts them on the page.
  • Settings, "Your look" shows your colours, fonts and logo. To change them, ask your AI: it picks one of the ready-made looks or changes a colour, and asks your yes.
  • A site that is already built doesn't change by itself when your look or your direction changes. Ask your AI to rebuild it, check the preview and say yes.
  • Your site's language: tell your AI. A page is in English unless your AI gives it a language.
  • Every site gets a privacy page and a terms page. An Impressum page, filled in from your company details and linked in every footer, is coming soon.

How a site is built

There are two ways, and both end in the same place:

  • The easy way: your AI describes the page in a page.json file and the office builds it, forms and all. The build-a-landing-page skill does this. Use it when your AI can't run code. The page.json needs a brand (the page's colours and fonts), as in the skill's sample page.json. Without a lang, the page is in English.
  • By hand: your AI writes the HTML, CSS and JS files itself and sends them with deploy_site.

Every site has an index.html, its front page. The first deploy sends every file. After that, your AI sends only the changed files, with base set to the version it builds on.

The next three parts are for your AI. They say every rule the office checks when a site goes online, so your AI gets it right the first time. You don't need to learn them.

File kinds and sizes

  • Text files: html, css, js, mjs, json, webmanifest, txt, xml, map and svg. Send them as plain text.
  • Pictures, fonts, PDFs and 3D: png, jpg, gif, webp, avif, ico, woff, woff2, ttf, otf, pdf, glb, bin (with the .gltf that names it), hdr, ktx2 and wasm. Send them as base64. A .gltf is text.
  • Films and sound go in the media library, never in the site.
  • Pictures already in your media library: media: [{ path, asset_id }] puts a web-sized copy (.webp) of each into the site, at that path.
  • Sizes come with your plan: up to 25 MB a file, and from 2,000 files and 250 MB a site on the trial up to 20,000 files and 2 GB on Growth. deploy_site with read: true says yours. One call carries about 3 MB: send the rest in more calls, with base. Need more? Email hello@companyofone.eu and we'll lift it.
  • Paths use letters, digits and . _ - / only, with no leading / and no ...

Your own code: trackers, widgets and embeds

Any website works here, the Kajabi way: paste your tracking or widget code into the head, the footer or a code block.

  • Every page: the front page's page.json takes site_code (head, footer). One page: its page.json takes code (head, footer, block, one code block in the page). A page your AI writes by hand takes code anywhere in its HTML.
  • Scripts, embeds, 3D scenes (three.js, WebGL), animation, fonts and media from any https address all work on your public pages.
  • Google Analytics, Google Tag Manager, the Meta pixel and other pixels, with lead and purchase events: the tracking skill adds them with our own cookie banner, so nothing tracks a visitor before their yes. The EU law asks for that, and as the site's owner it is your duty; the skill does it right.
  • Before anything goes live, the yes card shows what the code loads and from where ("This page adds code from: ..."). Every version can be undone.
  • Pop-ups and countdowns are off unless you ask for them. Then your AI adds one calm pop-up, or a countdown to a real end date.

Your members area has its own address

  • Your members sign in, see what they bought and manage their plan on its own locked address (members--anna.companyofone.site). Code from other sites never runs there, so it can never reach a member's sign-in or payments. Payments happen on Stripe's own page.
  • Links to /members/ on your site go there by themselves.
  • For your AI: pages under members/ run only the site's own .js files (no inline code, no scripts from other addresses: copy a library into the site), and their code calls only /api/v1/... or a host in co1-app.json allowedHosts.connect.

Kept off every site

To keep your visitors safe, these are refused when a site goes online and checked again every day: password, card, bank or one-time-code fields; a page that sends visitors to another site the moment it opens; code that mines cryptocurrency; scripts from addresses known for malware; and programs or archives as files. Forms have their own rules: see "Forms on your website".

Selling on your site

A Buy button needs three things: co1-app.json with checkout.create in its permissions, a member area at members/index.html where buyers land after paying, and products with a price. The build-a-landing-page skill sets all three up for you.

A free download is a product marked free with no price: every member who signs in gets it, and you see who took it. Giving it away waits for your yes, like any product. People who took a freebie never agreed to emails: mail them only if they joined your list.

Updating, undoing and removing

  • deploy_site with read: true shows the site's current version, its addresses, and the key for the bot check on forms.
  • read and undo go alone, with no files. undo: true goes back to the version that was live before.
  • To remove files, list them in remove, together with base.
  • Your plan sets how many pages per site you can have.

Galleries, lists and search

Your AI can add a gallery, a directory, a catalogue or any list to your site. Each one is a content collection: one design, and a page for every entry.

  • Public or members only. A public collection gets its pages each time your AI updates the site. A members-only one makes no public pages: signed-in members see it, and when it belongs to a product, only the people who bought it.
  • Sent by visitors. A form on your site can add entries, like reviews or listings. Each one waits until your AI marks it ready and you say yes to the version it is in.
  • Pictures and films. An entry can hold a picture or a film from your media library. Pictures are copied into the site; films play from the media library.
  • Search. Every version of your site has its own search, and your AI can put the search box in the header.

A company keeps up to 50 collections, each with up to 5,000 entries. Public pages count toward your plan's collection pages.

A blog

Your AI can keep a blog on your site, the way Squarespace and WordPress do. It is a content collection named for example blog, with these on the collection:

  • Categories and tags. category and tags name the fields that hold them. Each category and each tag gets its own page with its posts, at /blog/category/<name>/ and /blog/tag/<name>/. You or your AI change a post's category or tags like any other field.
  • RSS. feed: true makes a feed at /blog/rss.xml with the newest 20 posts, and one for each category. Readers and email tools can follow it. Each page tells browsers where its feed is.
  • Search engines. Every post, category and tag page is in your sitemap by itself.

A post goes public only when it is ready and you said yes to the version it is in. The pages count toward your plan's collection pages.

Visits to your site

Home and Website & pages show how many pages people opened: today, in the last 7 days and in the last 30 days, and your most read pages. They are counted without cookies and without any detail about the visitor, so no cookie banner is needed for them. We count pages opened, not people: one person reading three pages counts as three. Robots and link previews are left out, and your own previews never count. Your AI sees the same numbers in its status.

Putting it live

  1. Each deploy gives a preview address. Only you see it.
  2. When you're happy, your AI proposes site_publish with { site, version }, exactly as deploy_site answered. You say yes, and that version goes live.
  3. During the free trial a site stays a preview. It goes live once you're on a paid plan.

Moving your site in

Moving a site from Squarespace, Wix, WordPress or anywhere else goes step by step, with the move-in skill: 1. Day one: your Stripe, calendar and social accounts connect here, and you start using Company of One. Your mailbox stays where it is. 2. Your contacts and customers come over, with their consent kept. 3. Your AI rebuilds each page here to match the old one: the look, the words, the structure and the same addresses. Forms, bookings and payments work on Company of One. 4. Your domain moves last, when you're happy. Your old site keeps running until then.

Same addresses and redirects

  • Each page keeps its old address. In co1-app.json, addresses says the form your old site used: slash (/about/), plain (/about) or html (/about.html). The other forms of a page then lead to it, and search engines get each page's own address and a sitemap of the whole site.
  • An address that has to change gets a redirect: "redirects": [{ "from": "/?p=12", "to": "/blog/my-post/" }]. A redirect goes to a page of the same site, never to /api/ or the members area. A chain is joined up for you, and a loop is refused with the reason.

Your own domain

Your site starts on a free address. On a paid plan you can add your own domain in Settings, Your websites: type the domain, and it shows the exact lines to copy where your domain is managed. Adding or removing a domain asks for your authenticator code first.