# Project site standards

> The pages and components every project site published under Tignex is expected to share — what each one holds and how it is structured.

- Updated: 2026-10-08
- Source: https://tignex.com/standards/
- Language: en-US
- Author: Muhammet Şafak

---

This standard is a layer on top of the [Centvix site standard](https://centvix.com/en/standards/).
A Tignex project follows the Centvix standard first, and this page on top of it.
Whatever this page does not cover is taken directly from the Centvix standard.
Where the two disagree on the same point, this page applies.

Projects under Tignex keep their own names, identities and domains. What they
share is a small set of conventions, written down here so that a visitor moving
from one project site to another finds the same things in the same places — the
legal pages, the way back to the organization, the facts about who publishes
what.

This guide defines structure, not appearance. It says which pages exist and what
a component contains and in what order; colour, typography and visual design stay
with each project. It grows one component at a time: when a second project site
needs the same piece, the piece is described here.

## Required pages

Every project site carries these five pages, in every language it is published
in. The slugs are recommendations; a site that already uses different addresses
keeps them rather than breaking links.

| Page | Slug (EN · TR) | Purpose | Minimum sections |
| --- | --- | --- | --- |
| About | `/about/` · `/tr/hakkinda/` | Says what the project is, the problem it solves and who stands behind it. | What it is · The problem it solves · Status and maturity · Licence and source code · Ends with: About Tignex, then About the founder |
| Privacy Policy | `/privacy-policy/` · `/tr/gizlilik-politikasi/` | States what personal data the site and the project collect, and what happens to it. | Data collected · Why it is collected · Third parties and processors · Retention · Your rights and how to exercise them · Last updated |
| Cookie Policy | `/cookie-policy/` · `/tr/cerez-politikasi/` | Lists the cookies and similar storage the site uses, or says plainly that there are none. | Whether cookies are used · Each cookie: name, purpose, duration · Third-party cookies · How to refuse or withdraw consent |
| Terms of Use | `/terms-of-use/` · `/tr/kullanim-kosullari/` | Sets the conditions for using the site, separating the site's content from the software's own licence. | Scope · Site content versus software licence · Acceptable use · No warranty and limitation of liability · Changes and effective date |
| Contact | `/contact/` · `/tr/iletisim/` | Gives a working way to reach the people behind the project. | Email address · Where to report bugs (issue tracker) · How to report a security vulnerability |

Three rules hold for all of them:

- **Reachability.** The three legal pages — Terms of Use, Privacy Policy and
  Cookie Policy — are linked from the footer's copyright row. About and Contact
  are linked from the footer menu.
- **The About page ends the same way everywhere.** After its own content, every
  About page closes with two fixed blocks, in this order: About Tignex, then About
  the founder. Their structure is under [About page ending](#about-page-ending),
  their text under [Canonical texts](#canonical-texts).
- **No page is skipped for being empty.** A site that sets no cookies still
  publishes a Cookie Policy, and it says "we do not use cookies". A missing page
  reads as an unanswered question; a short page answers it.

## Components

A component is a repeated piece of a project site with a fixed structure. Each
entry below says which slots it has, what goes in each, how it behaves across
screen widths and what accessibility requires of it. The visual treatment of
every slot is the project's own.

### Footer

The footer is where a visitor looks for the legal pages and for who is behind a
project, so it is the first component every project site shares.

<FooterBlueprint lang="en" />

**Grid.** Twelve columns, split **6 – 2 – 4** on wide screens:

- **Project — 6 columns.** The project logo, and under it a four-to-five
  sentence introduction to the product or project.
- **Menu — 2 columns.** The site's general menu. It includes About and Contact
  at minimum.
- **About Tignex — 4 columns.** The [canonical Tignex text](#canonical-texts)
  and a link to [tignex.com](https://tignex.com). It is the same text the About
  page ends with, and it is not rewritten per project.

**Copyright row.** Under the columns: on the left, `Copyright © <YEAR> Tignex`,
where "Tignex" links to https://tignex.com and `<YEAR>` is the current year,
written when the page is built or rendered rather than typed by hand. On the
right, the legal links: Terms of Use, Privacy Policy, Cookie Policy.

The copyright line always names the umbrella brand, Tignex — never the project.
A project's own name appears in its logo and its introduction, not in the
copyright line.

**Responsive behaviour.** The breakpoints follow the common `md` and `lg`
steps:

| Width | Columns | Copyright row |
| --- | --- | --- |
| Below 768px | One column, stacked in order: Project → Menu → About Tignex | Stacked: copyright first, legal links under it |
| 768px – 1023px | Project spans the full row; Menu (4) and About Tignex (8) share the next | One row: copyright left, legal links right |
| 1024px and wider | 6 – 2 – 4 | One row: copyright left, legal links right |

The source order is always Project, Menu, About Tignex, so the stacked layout and
the reading order of assistive technology match the wide one.

**Accessibility.**

- The whole block is a single `<footer>` landmark.
- Every group of links is its own `<nav>` with an `aria-label` that names it —
  the site menu and the legal links are two navigation regions, not one.
- External links — tignex.com, and any link leaving the project's domain — are
  distinguishable both visually (an icon or a marker) and in text for screen
  readers. If a link opens a new tab, it says so.
- The logo's `alt` text is the project name.

#### Footer markup

The skeleton below is semantic structure only. Class names, the grid
implementation and every style decision belong to the project.

```html
<footer>
  <!-- 12-column grid: stacked below md, 12 + 4/8 at md, 6 / 2 / 4 from lg -->
  <div>
    <!-- Project — 6 columns -->
    <div>
      <a href="/">
        <img src="/logo.svg" alt="Project name" width="160" height="40" />
      </a>
      <p><!-- A 4–5 sentence introduction to the project --></p>
    </div>

    <!-- Menu — 2 columns -->
    <nav aria-label="Site">
      <ul>
        <li><a href="/about/">About</a></li>
        <li><a href="/contact/">Contact</a></li>
        <!-- The rest of the site menu -->
      </ul>
    </nav>

    <!-- About Tignex — 4 columns -->
    <div>
      <p><!-- Canonical Tignex text, in the page language --></p>
      <a href="https://tignex.com">
        tignex.com <span aria-hidden="true">↗</span>
        <span class="visually-hidden">(external site)</span>
      </a>
    </div>
  </div>

  <!-- Copyright row: copyright left, legal links right -->
  <div>
    <p>
      Copyright © 2026
      <a href="https://tignex.com">
        Tignex <span aria-hidden="true">↗</span>
        <span class="visually-hidden">(external site)</span>
      </a>
    </p>
    <!-- 2026: the current year, written at build or render time -->
    <nav aria-label="Legal">
      <ul>
        <li><a href="/terms-of-use/">Terms of Use</a></li>
        <li><a href="/privacy-policy/">Privacy Policy</a></li>
        <li><a href="/cookie-policy/">Cookie Policy</a></li>
      </ul>
    </nav>
  </div>
</footer>
```

### About page ending

Every project site's About page ends with the same two blocks, after whatever the
page itself has to say. They tell a visitor who publishes the project and who is
behind the publisher — the same answer on every project site.

<AboutFooterBlueprint lang="en" />

1. **About Tignex.** The [canonical Tignex text](#canonical-texts), three
   sentences, verbatim. Under it, on a line of its own, a link to
   https://tignex.com.
2. **About the founder.** The [canonical founder text](#canonical-texts), four
   sentences about Muhammet Şafak, verbatim. Under it, on a line of its
   own, a link to https://muhammetsafak.com.

Both are fixed texts: a project does not shorten, extend or reword them. Each
block is a `<section>` with its own `<h2>`, so the two show up in the page's
outline and in its table of contents.

#### About page ending markup

```html
<!-- …the About page's own content ends here -->

<section aria-labelledby="about-tignex">
  <h2 id="about-tignex">About Tignex</h2>
  <p><!-- Canonical Tignex text, in the page language --></p>
  <p>
    <a href="https://tignex.com">
      tignex.com <span aria-hidden="true">↗</span>
      <span class="visually-hidden">(external site)</span>
    </a>
  </p>
</section>

<section aria-labelledby="about-founder">
  <h2 id="about-founder">About the founder</h2>
  <p><!-- Canonical founder text, in the page language --></p>
  <p>
    <a href="https://muhammetsafak.com">
      muhammetsafak.com <span aria-hidden="true">↗</span>
      <span class="visually-hidden">(external site)</span>
    </a>
  </p>
</section>
```

## Canonical texts

These texts are used verbatim, in the language of the page. The Tignex text is
shared by the footer's About Tignex column and the About page's closing block, so
the two never drift apart.

### Tignex

> **English.** Tignex is an independent open-source engineering organization
> that builds tools, infrastructure, protocols and standards for developers and
> software teams. Its aim is software that gives developers more control, takes
> interoperability seriously, avoids unnecessary vendor lock-in and can be
> self-hosted. Projects published under Tignex keep their own names, identities
> and domains; Tignex is the engineering organization they share.

> **Türkçe.** Tignex, geliştiriciler ve yazılım ekipleri için araçlar, altyapı,
> protokoller ve standartlar geliştiren bağımsız bir açık kaynak mühendislik
> organizasyonudur. Amacı, geliştiriciye daha fazla kontrol veren,
> birlikte çalışabilirliği ciddiye alan, gereksiz vendor lock-in yaratmayan ve
> kendi sunucunuzda çalıştırılabilen yazılım üretmektir. Tignex altında
> yayımlanan projeler kendi adlarını, kimliklerini ve alan adlarını korur;
> Tignex, bu projelerin ortak mühendislik organizasyonudur.

### Founder

> **English.** Muhammet Şafak is the founder of Tignex — a software engineer, system architect
> and engineering researcher who has been building software since 2008. Today he
> works on the architecture, scalability and reliability of high-traffic
> distributed systems. He publishes independent
> research that examines system behaviour through reproducible measurements, and
> chooses technology by the problem rather than the language. In the rest of his
> time he builds open-source tools and infrastructure software under Tignex.

> **Türkçe.** Muhammet Şafak, Tignex'in kurucusu; 2008'den bu yana yazılım geliştiren bir
> yazılım mühendisi, sistem mimarı ve mühendislik araştırmacısıdır. Bugün
> yüksek trafikli dağıtık sistemlerin mimarisi, ölçeklenebilirliği ve
> güvenilirliği üzerinde çalışıyor. Sistem
> davranışını tekrarlanabilir ölçümlerle inceleyen bağımsız araştırmalar
> yayımlıyor ve teknolojiyi dile değil probleme göre seçiyor. Kalan zamanında
> Tignex çatısı altında açık kaynak araçlar ve altyapı yazılımları geliştiriyor.
