Product manual

Eqlo documentation

How to open a project, change it, publish it, and wire it to the rest of your stack. The commands, API paths, and events on these pages are the ones the product runs.

Updated 19 September 2026

Create an account and a project

An Eqlo account gives you five free projects, one seat, and no card. The first project starts from a sentence and lives on a projet.eqlo.app subdomain.

  1. 1

    Open an account

    Sign up with email, Google, or Apple. Eqlo sends a verification message. A project will not publish until that address is confirmed.

  2. 2

    Name the project

    A project is a website, an app, or both. Use an internal name such as Austin studio. Visitors never see that name.

  3. 3

    Pick the region

    European Union, United States, or United Kingdom. You choose at creation. The database, files, and backups stay in that region.

  4. 4

    Describe the work

    One sentence is enough. You can attach an image, a PDF, a live URL, or a screenshot. The first version lands in 2 to 5 minutes.

The editor opens on that first version. Chat on the left, the page in the middle, versions at the top. You do not have to publish. Read it, change it, compare.

Describe a project

Eqlo writes from what you say. A precise sentence beats a list of ten wishes. Name the trade, the city, the pages, and what happens after a form submit.

Input is a description in English, plus an optional image, PDF, URL, or screenshot. A website comes out as pages, navigation, written copy, forms, placed images, tags, and structured data. An app comes out as screens, tab navigation, loading and error states, and an icon set.

A sentence that works

Example
A yoga studio in Austin, class times, a ten-session pack,
and a form that asks for a first class date.

What to name

  • The trade and the city, not only "a clean modern site".
  • The useful pages: home, offer, about, contact, maybe an account.
  • The action after submit: a held slot, a quote, a charge.
  • What you refuse: no blog, no invented reviews, no slider.

A publishable brochure site then takes 1 to 2 hours of back and forth. An online store, half a day. A full mobile app, about a day. The first version is not the one you send. It is the starting point you correct.

Free, Plus, and Team

Three plans. Readable HTML, hosting, and a repository export already sit on Free. Your own domain, store builds, and extra seats sit on Plus and Team.

Eqlo plans
FreePlusTeam
Price$0$19 / month$49 / month
Projects5UnlimitedUnlimited
Seats1310
Hostingprojet.eqlo.appYour domainYour domain
GitHub exportManualAutomaticAutomatic
Store buildsPhone previewYesYes
RolesOne seatThree seatsViewer, editor, admin
CardNoAt upgradeAt upgrade

Free is not a three-day trial. You build, you review, you publish on the subdomain. When the name, the seats, or the stores are missing, you move to Plus. Nothing is wiped on the way.

Team is for a studio or a squad that should not share one password. Past ten seats, write to hello@eqlo.app. The enterprise page covers single sign-on.

Edit a page

Chat, a selected element, and in-place copy. Each exchange writes a version. You compare, you restore, you keep going.

Three ways to change a thing

  • Type in the chat, in English or French: "move the form under the class list".
  • Click an element, then write an instruction that only touches that element.
  • Edit the copy on the page, without the chat, for a typo or a price.

Each exchange creates a version you restore in one click. Visual compare shows two versions side by side. If generation is wrong, go back. Do not stack five unrelated asks in one message.

The design tokens

Colors, fonts, and radii apply to every screen at once. If you already have a system, give it. Generating a second brand is a waste.

Chat
Replace the blue with #0F3D2E.
Keep titles at 32, body at 16.
Radius 8. Do not rewrite the copy.

Database, accounts, and roles

Eqlo creates a Postgres database from the description. The schema is visible and editable. Accounts, roles, and CSV import live on the same project.

When your sentence names bookings, members, or orders, Eqlo creates the tables. The schema stays on screen. You change it in the editor, or a developer reads the database directly.

Accounts for people who use your project

  • Sign-in with email, Google, and Apple.
  • Forgot password and address verification.
  • Roles and permissions. Organizations for multi-tenant work.

Import and export

CSV into a table, CSV out of a table. Headers must match columns. An import does not overwrite a table without a confirm.

Connect Stripe

Eqlo connects the customer Stripe account. Never a middle-man account. Subscriptions, one-off charges, deposits, free trials. European VAT and US sales tax go through Stripe Tax.

  1. 1

    Ask for Stripe in the chat

    Say you want to take money. Eqlo opens the connection. You sign in with your own Stripe account.

  2. 2

    Pick the charge

    Subscription, one-off, deposit, or free trial. Prices stay yours. Eqlo does not add a cut.

  3. 3

    Turn on Stripe Tax if you need it

    European VAT and US sales tax. Invoices go out on their own. The customer cancels from the Stripe portal.

Keys stay encrypted. Payment errors show on the page, not in a quiet email. A proprietary bank payment, outside Stripe, is out of scope.

Connections

Stripe, Google Calendar, Google Sheets, Notion, Slack, Brevo, HubSpot, Twilio, Google Analytics, Supabase. You ask in one sentence. Keys are stored encrypted. Errors are handled.

In the chat, name the connector and the job. "When a class is booked, create the event in Google Calendar." Eqlo asks for the key, stores it encrypted, and shows the error if the vendor refuses.

Documented connectors
ConnectorTypical job
StripeCharge, subscription, invoice
Google CalendarBusy slots, new booking
Google SheetsA row after a submit
NotionA page from a form
SlackA channel message on publish
BrevoA contact on a list
HubSpotA record created or updated
TwilioA confirmation SMS
Google AnalyticsMeasurement after publish
SupabaseData you already hold

Publish a website

The projet.eqlo.app subdomain is immediate. Your domain, DNS checks, and an SSL certificate sit on Plus. Pages are pre-rendered. The copy is in the first HTML.

  1. 1

    Read the first HTML

    Open the preview. Titles, paragraphs, and links must be in the page, not only after a script. The index-check tool verifies that.

  2. 2

    Publish on the subdomain

    One click. The address looks like austin-studio.eqlo.app. The certificate is already there.

  3. 3

    Point your domain

    On Plus you add the name, you place the DNS records Eqlo lists, you wait for the certificate. Eqlo checks.

What each publish writes

  • Title, meta description, heading tree, structured data that matches the trade.
  • Sitemap and robots.txt. The sitemap is submitted for you.
  • Images as WebP, sized, with written alt text.
  • Core Web Vitals measured. An alert fires if a publish regresses.

A preview deploys per branch when GitHub is connected. A stakeholder opens the branch URL without a merge. Rankings still come from the copy and the links. No tool guarantees a position.

Publish an app

Phone preview by QR code, link valid for 24 hours. Signed iOS and Android builds on Plus and Team. Developer accounts stay in the customer name.

The first app version gives you screens, tabs, empty and error states. You test it on a phone by scanning the QR. The link dies after 24 hours. On Free, that is the test. Store builds sit on Plus.

What Eqlo prepares

  • A signed iOS build for the App Store, a signed Android build for Google Play.
  • Icons, splash, and store screenshots in the right sizes.
  • Push notifications, camera, location, and offline mode, if your sentence asked for them.
  • Content updates that skip another store review.

The npx eqlo CLI

Four commands. Pull, push, migrations, deploy. You run them on a machine you already trust. The token is created in the project, under Developers.

The CLI is not a global install. Node is enough. The first command asks for the project token, once. It stays on the machine, not in the repository.

Terminal
npx eqlo pull
npx eqlo push
npx eqlo migrate
npx eqlo deploy
Commands
CommandJob
npx eqlo pullWrites the project into the current folder
npx eqlo pushSends your commits to Eqlo and, if connected, GitHub
npx eqlo migrateApplies versioned migrations
npx eqlo deployPublishes the targeted environment

A usual pass

Terminal
$ npx eqlo pull
project  austin-studio
region   us-east
wrote    ./austin-studio

$ cd austin-studio
$ npx eqlo migrate
migration  001_classes  applied

$ npx eqlo deploy
url  https://austin-studio.eqlo.app

REST API

The API is for another system that must list projects, read versions, or publish. Auth is a bearer token. Base URL https://api.eqlo.app/v1.

Create a token in the project, under Developers. Send Authorization: Bearer, then the token. Every response is JSON. Errors carry an HTTP status and an error field.

Endpoints
MethodPathJob
GET/v1/projectsLists projects for the seat
GET/v1/projects/{id}Reads one project
GET/v1/projects/{id}/versionsLists versions
GET/v1/projects/{id}/membersLists seats
POST/v1/projects/{id}/publishPublishes the project
HTTP
curl https://api.eqlo.app/v1/projects \
  -H "Authorization: Bearer $EQLO_TOKEN"
Response
{
  "projects": [
    {
      "id": "prj_austin_studio",
      "name": "Austin studio",
      "region": "us",
      "url": "https://austin-studio.eqlo.app",
      "updated_at": "2026-09-19T16:12:00Z"
    }
  ]
}

To publish: POST /v1/projects/{id}/publish with an empty body. The response returns the public URL and the version id. A rate ceiling is not published here. If you run agency volume, write.

Webhooks

Eqlo posts an event when a project publishes, when a branch preview is ready, or when a Stripe payment succeeds. You give an HTTPS URL. Eqlo signs the body.

Events
EventWhen
project.publishedA publish is live
project.preview.readyA branch preview can be opened
payment.succeededStripe confirmed a charge

The X-Eqlo-Signature header is HMAC-SHA256 of the raw body, using the secret shown once when you create the webhook. Verify the signature before you act. A failure on your side is retried.

JSON
{
  "id": "evt_08k2",
  "type": "project.published",
  "created_at": "2026-09-19T16:14:22Z",
  "data": {
    "project_id": "prj_austin_studio",
    "version_id": "ver_184",
    "url": "https://austin-studio.eqlo.app",
    "region": "us"
  }
}

Sync GitHub

React, TypeScript, and Tailwind on the web. React Native on mobile. Sync runs both ways. Branches and pull requests stay ordinary Git objects.

On Free, export is manual: you take the repository and push it wherever you want. On Plus and Team, GitHub syncs on its own. You connect the org, you pick the repo, Eqlo pushes and pulls.

  • A preview deploys per branch.
  • Two people on the same file still produce a conflict. You resolve it the usual way.
  • The in-browser code editor opens the files.
  • The activity log says who changed what.

You can leave. The repository is yours. Plenty of teams keep Eqlo for the next loop and turn it off for the parts they now own. That is a normal week.

Regions, backups, and export

European Union, United States, or United Kingdom, chosen at creation. Daily backups, 30-day retention. Full export whenever you ask. Access log, encryption at rest and in transit.

The region is set when the project is born. It covers the database, files, backups, and secrets. Changing region later is a migration, not a toggle. Write if you need that done.

  • GDPR alignment, a full access log.
  • Encryption at rest and in transit.
  • Daily backups, kept for 30 days.
  • A full export of files and data, at any time.

Invites go out by email. Roles: viewer, editor, admin. A comment anchors to an element on the page. Agencies keep a separate space per client, billed per space.

Known limits

Eqlo writes fast. It gets things wrong. Some jobs stay out of scope. Saying so here saves a wasted week.

  • A very specific trade will still need a developer to take over.
  • Critical systems, a proprietary bank payment, a regulated health file, are not the job.
  • Generation can be wrong. That is why versions exist, and why you read the page.
  • Search ranking still comes from the copy and the links. No position is promised.
  • Apple and Google review stay on you, with their rules.

If a sentence in these docs is wrong, write to hello@eqlo.app from the contact page. Name the article. The fix is dated here.

Questions about the documentation

Where do I start if I have never opened Eqlo?

Create an account, name a project, pick a region, then describe the work in one sentence. The first version lands in 2 to 5 minutes. The articles under Start walk that path in order.

Is Free a trial that expires?

No. Free keeps five projects, one seat, and the projet.eqlo.app subdomain with no card. Plus at $19 a month and Team at $49 a month add a custom domain, store builds, and more seats.

How do I verify that published pages are in the first HTML?

Open the preview or the live URL, then use the index-check tool on this site. It fetches without JavaScript and reports title, H1 count, visible words, and JSON-LD.

Can a developer take the code away?

Yes. Free exports the repository by hand. Plus and Team sync GitHub both ways. The CLI pull and push commands write the same React and TypeScript tree onto a machine you trust.

What stays out of scope?

Critical systems, a proprietary bank payment outside Stripe, and a regulated health file. Generation can still be wrong, which is why versions and restore exist.