
Natsionalna Asansyorna Kompania: website with a quote calculator
Corporate website for a Bulgarian elevator company with a portfolio, quote calculator and CRM integration.
Church in Sofia: 17 pages with bespoke design, card donations through Stripe, and a custom CMS where the team edits the site directly on the page, in Bulgarian and English.
Saitami.bg built the website for Christian Center Sofia (Church and donations) in 2026. Live at ccsofia.com.

The church team opens the site inside the panel, points to a text, time or photo and changes it on the spot, just as they would in WordPress with Elementor, but without being able to break the design: only the content and its translation can be edited. Every field has Bulgarian and English. About two minutes after “Save”, the site is rebuilt and the change is visible to both Google and AI search engines.

Events, leaders, schools and their subjects are form-based lists: date, time, title, description and photo. Past events disappear from the site automatically, while sermons arrive from YouTube and can be hidden with a single checkbox. The editor’s access ends there: no donations, no users, no settings. The site’s design and HTML remain identical down to the last pixel, which we verified by comparing the DOM of all 17 pages.

The church wanted a homepage without a menu: a photo of the pastors with buttons around them. A round button does not behave like a rectangle, and six circles around a person in a photo had to remain readable on both a phone and a wide monitor. At the same time, donations had to work by card, support a monthly option, and not depend on a third-party platform that takes a percentage and holds the donors' data.
We arranged the buttons along a curve around the figure and recalculated them separately for every screen width instead of scaling them proportionally. For payments, we wrote a custom Node and PostgreSQL API: one-time donations, monthly and weekly partnerships, recording only after webhook confirmation, and protection against recording the same event twice. Bank transfer details appear on the same page for people who do not donate by card.
The pastors are shown full-length, with the buttons around them, while Give and Give Your Life use a different color because these are the two actions the church wants visitors to take. Beneath the photo, a countdown shows how many days, hours and minutes remain until the next service, calculated from a schedule within the site rather than entered manually.

Two cards side by side: one for payment by bank card through Stripe and one for bank transfer, whose IBAN can be copied with one tap. The amounts are preset, but donors can also enter their own. A partnership requires a name, email and frequency because it is a subscription that will renew. Each payment enters the database only after Stripe confirms it, and every event is tracked by ID, so a resent webhook does not record a second donation.

There is no repeating template. The Bible schools, Pistis with its questions and answers, the children's ministry, home groups, team, sermons and family sections were all created separately, with each page having its own color and structure. That is also why the site took so long: you arrange it seventeen times, not once.

Hristiyanski tsentar Sofia is a church in Lyulin with a Sunday service, a children’s ministry, two Bible schools and home groups. They wanted a website that would look unlike any other church website in Bulgaria, and through which people could donate by card without having to copy out an IBAN.
This was the most demanding website we have built in this category, for three separate reasons.
The first is the home page. Instead of a menu at the top, it features a full-length photo of the pastors, with six round buttons around them: Family, Team, Bible Schools, Learn More, Donate and Give Your Life. The circle is the least forgiving shape in web design because it does not behave like a rectangle when the screen changes. Six circles that had to sit around a person in a photo without covering them, overlapping one another or becoming harder to read on a phone or a wide monitor were reworked more times than the rest of the page combined. Beneath them, we added a countdown that automatically calculates how long remains until the next service.
The second is donations. We did not attach a button to somebody else’s platform; we wrote our own API: Node and PostgreSQL, separate from the website. The donor chooses a one-time donation or a partnership, and the partnership can be monthly or weekly, in other words, a Stripe subscription, not a one-time payment. Each payment is recorded in the database only after Stripe confirms it by webhook, not when the browser returns to the thank-you page, because browsers lie. Stripe sends the same webhook more than once by design, so every event is recorded by its identifier and the second pass records nothing: a duplicate donation cannot appear. The second and every subsequent payment under a monthly partnership arrives as an invoice, not as a new session, and lives in its own table. Anyone who prefers a bank transfer sees the account holder, bank, IBAN and BIC on the same page, and the number can be copied with a single tap.
The third is the design. There is no bought template and no repeated layout: each of the seventeen pages was created separately, with its own colours and structure. The Pistis school has questions and answers, the donation page has four giving declarations, and the children’s ministry, home groups, team and sermons all look completely different. The website went live at ccsofia.com in September 2026.
After launch, we also carried out GEO optimisation: the site is a Vue application, and every page returned zero words to a bot that did not execute JavaScript, in other words, to the bots used by ChatGPT, Claude and Perplexity. We wrote a build-time prerendering process that opens every route in a browser and saves the finished HTML. All seventeen of seventeen pages can now be read by AI search engines.
In October 2026, we also added a custom CMS. The church wanted to change the service times, address, team photos and upcoming events itself, without contacting us for every change, while the English version up to that point had been a machine translation that did not work. We had one requirement: the site’s design and HTML had to remain identical down to the last pixel. We placed Directus on the same database and modelled the entire site as content: 71 collections, each page with its own fields, lists of events, leaders, schools and subjects, and a translation of every text field in both languages.
The editor is visual: the team opens the site inside the panel, points to a piece of text, a time or a photo, a pencil appears, they make the change and press “Save”. About two minutes later, the site is prerendered again, the static HTML for Google and AI search engines is generated again, and the change is live without any of us touching a thing. Sermons continue to arrive automatically from YouTube and can be hidden with a single checkbox. The English is now a proper translation, not Google Translate, and can be edited from the same place.
We gave the client the minimum access possible: an “Editor” role that can see only the visual editor, six lists and their own profile, with no access to donations, users or settings. A password of at least 12 characters, a delay after an incorrect login attempt, and uploads limited to photos and PDF files. Before launch, we automatically compared the DOM of all 17 pages before and after the panel was added: identical.

Corporate website for a Bulgarian elevator company with a portfolio, quote calculator and CRM integration.

Website for an aesthetic clinic offering laser hair removal and other treatments, with a luxurious dark design and online appointment booking.

Manufacturer of steel grating and stair treads from the Lichtgitter Group: 17 pages, an enquiry form with drawing upload, and a built-in editor that lets the company change text and photos directly on the website and add articles, without coding and without a monthly fee.
We only use analytics and advertising cookies if you accept them. The site works without them too. Details ·