Brands
This page is about how you give your game a look and an address of its own: what you set on a brand, what DNS record the system asks you for, how it verifies the domain, and what a player ends up seeing of all this.
Brands are in the sidebar’s Brands row, with each one listed under it and the New Brand row at
the end. A brand needs no organisation and no group, and the game’s release does not
need it either: it comes into play when you want to put a game out under your own name, on your own
domain.
What a brand holds together
Two things:
- A look: one main colour (and the palette worked out from it), one typeface and one logo URL.
- Domains that you own. A brand can hold several domains, and each domain says separately what we use it for:
| Usage | What you get | Which address |
|---|---|---|
| Game page | the public showcase page of one chosen game | www.<your domain> |
| Applications | the controller and the display served from your domain | play.<your domain> and view.<your domain> |
The two are independent: you can switch both on on one domain, but either of them on its own as well. At least one is required.
⚠ A brand does not belong to a game, a domain does. You never assign the game itself to a brand: the connection is made by picking, at a domain, which game it should show. That has a consequence for the branded apps, see The branded applications.
Creating a brand
The sidebar’s New Brand row opens a modal (The screen), with the subtitle “A brand carries your colours, your font and your domains.” It has two fields:
| Field | What to know about it |
|---|---|
| Name | This is the brand’s name everywhere: in the sidebar, and it goes into the installed name of the branded apps too. It can be edited later |
| Slug | It is formed from the name by itself (lower case, digits, hyphens), and the moment you touch it, the automatic filling stops |
⚠ The slug cannot be changed after creation, and on the brand’s page it only shows as a read-only field, with an explanation: “The slug is fixed once the brand exists.” Accept the value on offer.
If the name or the slug is taken, the error appears at the field: “That name or slug is already taken.”
After a successful creation you find yourself on the brand’s page at once. A new brand gets GreenCloth’s green to start with, with no logo and no typeface.
The brand’s page
The page is made of cards, and the whole of it saves with a single Save changes button. The button is only live if you have actually changed something.
| Card | What is on it |
|---|---|
| Brand | the Name, the read-only Slug, and the Font |
| Logo | the Logo URL and its preview beside it |
| Colour scheme | the Base colour, the Use GreenCloth default button, and the five named shades |
| Custom domains | the brand’s domains, each with a Verified or a Waiting for DNS tag, and the Add domain button |
| Live preview | a small sample page that follows your colours, your typeface and your logo as you type |
If there is a verified domain serving a game page, the Open brand page button appears in the header as well; without one, only the explanation stands there: “A brand page opens once one of its domains is verified.”
Delete Brand is in the ”…” menu. ⚠ Deleting takes the brand and all of its domains, in one
step, and cannot be undone. It does not touch the DNS records you set up at your registrar: those
survive, they simply lead nowhere any more.
Editing
There is no separate edit form: the brand’s page is the editor. You change the fields, and the header’s Save changes button saves the lot.
That is the whole of the look. A description, a website, a palette step of your own: there is no such field, not here and not anywhere else.
The main colour and the palette
You give one colour, and the whole palette is made from it. The card spells it out: “Pick a base colour. Everything else is worked out from it.”
Five named shades out of the ten show on the page:
| Label | What it is for |
|---|---|
| Lightest | the lightest background |
| Light | light surfaces |
| Action | the given colour itself, this is the accent |
| Surface | dark panels |
| Floor | the darkest background |
- The 500 step (Action) is the given colour itself, unchanged.
- The lightening row keeps the hue, fixes the lightness and gradually lowers the saturation, so that the light shades do not shout.
- The darkening row keeps the hue and the saturation, and multiplies the lightness.
Not one step can be overridden on its own. There is no palette editor: what you have is the one main colour. If a shade does not please you, the main colour has to be moved. The Use GreenCloth default button restores the original green at any time.
The editor gives two fields for the same value: a colour picker square and a text field. A six
digit hex code belongs in the text field, with a #, seven characters (#14522F).
⚠ An incomplete hex code breaks the palette. If a half-finished value stays in the field (#14),
the reckoning does not stop and does not say anything either. If the shades look odd, look at the hex
code first.
Typeface
Font is a free text field (e.g. Poppins). You can type the name of any
Google Fonts family into it, and the system loads it under the name you
typed, at weights 400, 500, 600 and 700.
⚠ A mistyped name gives you no error. If the name does not exist at Google Fonts, nothing simply loads and the default typeface stays. The Builder saves that same name without checking, so you will only see the fault on the branded page.
Where it takes effect: on the branded game page the whole page is set in this typeface. In the branded apps the typeface loads, but nothing uses it today.
Logo
The Logo URL is the full address of a finished image. There is no upload here: the Builder’s image library is per game, a brand has no file store, so you have to put the image somewhere else and enter its address.
Where it appears:
- On the brand’s page, on the Logo card and in the live preview. That is the only feedback on whether the address is good: if the image cannot load, the preview stays empty, and there is no error message.
- As the branded apps’ installed icon: on a
play.and aview.domain the system makes the PWA’s install icon out of this image.
⚠ This logo is not what appears in the branded game page’s header, the game’s own cover is, which you pick on the Details page. The brand’s logo and the game’s cover are two different things.
Adding a domain
The Add domain button on the brand’s page’s Custom domains card opens a modal, with the
subtitle “Point a domain you own at this brand.”
- Domain name: the domain on its own, without
www.andhttps://:mygame.com. On an invalid shape: “Please enter a valid domain name (e.g. mygame.com)”. - Usage: at least one is required, otherwise “Enable at least one usage.”
- Game page (switched on by default): “The domain points to your game landing page”. A dropdown of your games sits under it; you have to choose one, otherwise “Select a game for game routing.”
- Applications: “Controller and display apps for the game”.
- Add domain. After a successful addition you land on the domain’s own page straight away.
The domain is then in the Waiting for DNS state: the system has generated a verification token for it, and shows the DNS records to set.
The DNS records it asks for
While the domain is not verified, the DNS records for <domain> card stands on its page: “Add
the following DNS records at your registrar, then click Verify.” This is what it asks for:
| # | Type | Name | Value | TTL | When it is needed |
|---|---|---|---|---|---|
| 1 | TXT | _greencloth-verify | gc-verify=… (a separate token per domain) | 600 | always |
| 2 | CNAME | www | custom.greencloth.games | 600 | if Game page is switched on |
| 3 | CNAME | play and view | apps.greencloth.games | 600 | if Applications is switched on |
There is a copy icon beside every value. Under the short name stands the full name as well (“if the
full name is required:”, for example _greencloth-verify.mygame.com), because half of the
registrars expect the one and the other half the other.
⚠ There is no record in the list for the bare domain (mygame.com, without www.). The
interface only says: “Optionally redirect your root domain to www. This depends on your registrar or
hosting provider.” If the bare domain does reach us, we redirect it to the www. version, but
getting it to reach us at all is for you to sort out at your registrar (an ALIAS or ANAME record, or
domain forwarding).
⚠ After verification the card disappears. On a verified domain’s page nothing of the DNS records shows any more, the token included. Save it elsewhere before the verification if you need it.
Verification
The Verify button is at the bottom of the DNS card. Press it and it becomes Verifying…, and the
server makes a real DNS query: it reads the _greencloth-verify.<domain> TXT record and compares it
with the domain’s token.
- It succeeds → “Domain verified!”, the tag switches to
Verified, and the DNS card disappears. - It fails → a red error line appears under the button. If the server sent an explanation, that
shows; if not, only
Verification failed. Under it stands the most important handhold: “DNS changes may take up to 24 hours to propagate.”
⚠ The verification switches nothing on. Neither the branded game page nor the serving of the branded apps looks at whether the domain is verified: the moment the CNAME points where it should, the address works. The TXT record effectively sets a status flag, it does not open a gate. So if the site is already live but the domain stayed Waiting for DNS, everything still works, and the other way round: the Verified state on its own does not mean the CNAMEs are in place either. The Routing Status is what tells you that.
One thing the verification does switch, though: the Open brand page button only appears on the brand’s page if there is a verified domain.
Routing Status
The Routing Status card appears if at least one usage is switched on on the domain, and when the page opens it queries live whether the CNAMEs are in place:
| Row | When it shows | What it checks |
|---|---|---|
www.<domain> | Game page switched on | whether the www CNAME points at custom.greencloth.games |
play.<domain> | Applications switched on | whether the play CNAME points at apps.greencloth.games |
view.<domain> | Applications switched on | whether the view CNAME points at apps.greencloth.games |
Per row, Connected or Not connected. The address itself is a link and opens in a new tab: that is the quickest test.
⚠ A strict CNAME check. The query looks specifically for a CNAME record, and expects an exact
match. If your provider “flattens” the CNAME (ALIAS, ANAME, CNAME flattening, which is the default
for www in a lot of places), the row stays Not connected even though the page works
perfectly.
⚠ It does not refresh by itself. It queries the state once, when the page opens. Reload the page after a DNS change.
Changing and removing a domain
A domain’s page is made of three cards: Settings, Routing Status, and, while it is not verified, DNS records.
The Settings card has the same two switches and game chooser as adding it did. The header’s Save changes button saves.
This is the only place where you can change which game the domain shows: a dropdown, a save, done. There is no need to touch the DNS, the new game is live on the address at once.
Remove Domain is in the header’s ”…” menu, with a confirmation: “This will remove the domain
from your brand. DNS records will remain unchanged.” Cleaning up the records at your registrar is
your job.
What a player sees
The branded game page
At the www.<domain> address, a separate page, put together on the server, greets the visitor,
not the Builder and not the controller. What is on it:
- A header with the game’s title and the game’s own cover.
- The description and the details from the game’s details page: designer, player count, play time, minimum age, categories.
- A Play now! button.
- A Rules link, if the game has rules, to the
/rulessubpage. - A gallery, if the game has generated image sheets.
- A footer pointing at the GreenCloth Games site. That is always there on branded domains, and cannot be switched off.
Language: the page decides from the ?lang=hu or ?lang=en parameter, and without one from the
browser’s language, and it has a language switch on it. This is where your bilingual fields come in
useful, see Why two languages.
⚠ The Play now! button takes you to GreenCloth’s address, to play.greencloth.games, with the
game preselected, even when the Applications usage is switched on on the domain. The page never
links to your own play.<domain> address.
⚠ The content comes from the draft, not from a release. The page shows the game’s current draft’s details page and its published rules. What you change on the Details page is out on the public page within a minute of the autosave. For the same reason, the page does not depend on making it public either.
⚠ If Game page is not switched on on the domain, we redirect the visitor to the greencloth.games site; if it is switched on but the assigned game cannot be found, they get an error page.
The branded applications
play.<domain> serves the controller, view.<domain> the display. They are the same two
applications, only from your address. What the brand actually changes about them:
- The installed application’s name and icon. The PWA install manifest is made per domain: its name is the brand’s name, its theme colour your main colour, its background the darkest shade, and its icon the logo URL, if you gave one.
- The display’s background takes on the brand’s dark shade.
- A Powered by GreenCloth Games line appears at the bottom of the display.
- The controller’s game chooser narrows down to the games assigned to the brand.
⚠ The colours and the typeface do not show beyond that. Both apps get the whole palette and the typeface, but hardly any of it is visible today: only the display’s background takes on the brand’s colour. Do not promise a player a branded interface.
⚠ Filtering the game list gives an empty list today. The filtering works from the list of games
assigned to the brand, and such a list cannot be filled in anywhere in the Builder: there is no
interface for it on the brand’s page, at a domain or on the game’s details page. The list therefore
stays empty, and the filter filters down to nothing: at the branded play. address a player finds
not one game. While that is so, do not switch the Applications usage on on a domain you use
for real.
What the interface leaves unsaid
The page’s warnings in one place:
- The Slug is required, but does nothing, and cannot be edited later.
- The palette is made from a single colour, and cannot be overridden step by step.
- The verification switches nothing on in the serving: the address works off the CNAME, not off the TXT record.
- Routing Status expects an exact CNAME match, and says “Not connected” on a flattened record even when the page works.
- After verification the DNS records disappear from the interface.
- The branded game page works from the draft, and does not depend on making it public.
- The Play now! button takes you to greencloth.games’s controller, not to your own
play.address. - On the branded apps the colour and the typeface hardly show, and filtering the game list gives an empty list today.
- Deleting a brand takes all of its domains too, irreversibly.