Dynamic content
The only sections that are not static: the form posts to a receiver behind Turnstile, the portfolio pulls its projects from Redmine at build time.
ContactFormpopularsections/ContactForm.astroon 4 sites of the fleet
ContactForm — the contact form with the site's phone and e-mail beside it: name, e-mail, phone and message fields, a send button, a success message. Use for: the contacts page, or the last section of a landing. Its default id is "contacts", so menu entries and buttons can point at "#contacts" / "/#contacts". Shapes: theme="plain" (default) — a muted panel with the title, phone and e-mail on the left, the fields on the right with their labels as placeholders; theme="panel" — the same inside a raised card, the left part painted with the brand gradient and the fields carrying real labels. Children: none. Where it sends: the form posts to `contactFormReceiverURL` from pages.config.js, protected by Cloudflare Turnstile (`turnstileSiteKey`); with both empty it renders but cannot send. On preview hosts it shows a note instead of sending. Texts: phone and e-mail default to `defaultPhone` / `defaultEmail` of pages.config.js; the labels, the button and the success texts are content — translate them per locale. Ask the user: the two config values are issued by the Gitt One Pages team, who register the receiver (requests land in the site's Telegram group) and the Turnstile pair. Write the tag and its texts; leave `contactFormReceiverURL` and `turnstileSiteKey` as they are and never invent or copy them. When they are empty, end the reply with what the user has to do: ask the team to connect the form, naming the Telegram group that should receive requests, then put the two values into pages.config.js or paste them into the chat. Instructions for people: https://docs.pages.gitt.one/setup/contact-form-and-portfolio/
Talk to someone who has stood in a cold field
Tell us the crop and the field. We answer with a plan, not a quote.
- Phone
- +46 8 123 45 67
PortfolioSectionpopularsections/PortfolioSection.astroon 3 sites of the fleet
PortfolioSection — project cards pulled from the mgmt.tools portfolio at build time: picture, title, description and a source link per project. Use for: "our work", "recent installations", a case-study list — where the projects are maintained as Redmine issues rather than in the content repo. Not for: a hand-written list of projects (<Gallery> with <GalleryItem>, or <FeatureCards>). Children: none. The cards come from the API: `issuesId` names the Redmine issues, in the order they should appear. Shapes: default — a dark strip with a heading and the cards; page={true} — a full page with a big title on a dark band and the cards on white. Setup: needs `portfolioUrl` and `portfolioBearer` in pages.config.js; without them the section renders nothing and the build logs a warning. The cards show what the issues held at the last build — editing an issue needs a rebuild. Ask the user: the portfolio is a Redmine project hosted by the Gitt One Pages team, who also issue the two config values. Write the tag with the issue ids the user gives; never invent ids, URLs or tokens, and never copy `portfolioBearer` from another site. When the values or the ids are missing, end the reply with what the user has to do: ask the team for a portfolio, put `portfolioUrl` and `portfolioBearer` into pages.config.js themselves, and send the issue ids in the order the cards should appear. Instructions for people: https://docs.pages.gitt.one/setup/contact-form-and-portfolio/
Source links point to engine-astro@7b686388. Samples are demo content: the components are the real ones, the copy and the pictures are made up.