Website2026-08-21

3D Art Kragujevac — illuminated signage, dimensional lettering and CNC fabrication

A workshop that makes illuminated signs is sold by a picture, and the person making the call does not know the difference between acrylic, alubond and styrodur. The site had to do both jobs: to show over a hundred produced advertisements and to explain what they are made of and how long they last, without jargon and without hiding the answer behind technical jargon.

3D Art Kragujevac site homepage with the slogan Design that shines, quality that lasts
Header - slogan "Design that shines, quality that lasts" across the width
Client
3D Art Kragujevac
Business
Lighting advertising, 3D letters, CNC and laser processing
Area
Kragujevac and all of Serbia
Type
Multi-site site with art galleries
Technologies
PHP 8.3 · PHPMailer/SMTP · nginx · AVIF/WebP
Site
svetlecereklame3dart.rs
Status
Live site, under active maintenance
Technology
PHP 8.3 · PHPMailer + SMTP · nginx + FastCGI keš · AVIF/WebP
01

Problem and context

What does 3D Art Kragujevac do

3D Art Kragujevac is an advertising workshop that projects, creates and installs illuminated signs. The work goes from a complete advertisement on the facade of the building to the sign at the reception, and the assembly is done throughout the territory of Serbia — Kragujevac, Belgrade, Novi Sad, Niš and everything else.

The range is wider than the name suggests. There are 3D luminous letters made of acrylic and alubond, letters with backlight and HALO effect, light box advertisements in single and double-sided versions, totems, LED neon, billboards, window branding with foil and letters made of Styrofoam for indoor use.

The second part of the job is service processing of materials. The workshop has a CNC router with a working surface of 200 by 130 centimeters and a laser 130 by 100, so it cuts and engraves wood, alubond, acrylic, MDF, chipboard, paper, textiles and artificial leather — both for its own advertisements and for anyone who brings a file.

There is also a third, completely separate item: champagne fountain made of plexiglass with RGB lighting, in round and square versions, with trolleys and illuminated cake stands. It is the second customer and the second season, so it got its own page on the website.

Buttons to glowing ads and contact, above the Why choose section 3D Art
Two buttons immediately below the title and the beginning of the section "Why choose 3D Art?"
02

What needed to be solved

A workshop of this type is sold with a picture. A customer choosing who will do his ad above the store doesn't read the specs — he looks at what the company has already done and asks himself if he likes it. Everything else comes after that.

This resulted in five requests:

  • Galleries, and lots of them — each ad type has its own set of photos, and the image must open at full size without going to another page.
  • Explanation without jargon — acrylic, alubond, styrodur, HALO, light box and totem are the words that the customer sees for the first time. The page must explain what is what and when to use which.
  • Inquiry that arrives — phone, email, Viber and WhatsApp at your fingertips, and a form with reliable success and error handling.
  • Visibility on search by city — a good part of the business depends on the query "illuminated advertising Kragujevac".
  • No monthly cost — no platform, no subscription, no plugins to update.

With that came a condition that is rarely spoken out loud: the site must reflect the quality of the workshop’s work. A workshop that creates someone else's visual identity must not have a site that looks unfinished.

Four reasons for cooperation and the beginning of the Our Products section
Four reasons in one line, then the transition to "Our Products"
03

How the site is organized

Instead of one long homepage with everything on it, the content is broken up into eight pages. The home page gives a brief overview and leads on, About Us contains text about the company and the way of working, so there are four pages per product group: illuminated signs, styrofoam advertisements, Plexiglas products and champagne fountains. The seventh is service CNC and laser processing, the eighth is contact.

Partition is not an aesthetic decision. Each of those pages has its own title, its own description, its own address that can be sent to the customer, and its own set of search terms. A customer asking about styrodur is sent a link to styrodur, not a homepage with instructions to scroll to the third screen.

Each subpage has a path at the top, so the visitor always knows where he is and returns with one click. The same path is written in the structured data, so Google displays it in the search result instead of the bare address.

Underneath everything are the privacy policy and terms of use, written for this site, not copied.

3D Art Kragujevac website on the phone
Same site on phone
04

The page with the most work

Most of the content is on the page svetlece reklame. There are eight product types, and each is handled in the same order: a few-sentence description, a list of features, an offer button, and a gallery of built samples.

The descriptions retain the terminology used by the workshop. The alubond advertisement says that the material is a sandwich of two layers of aluminum and a layer of rubber, that thicknesses of two, three and four millimeters are used and that there are three ways to place the acrylic in relation to the Alubond cut-out — behind, flush or in front, for a 3D effect. The day-night effect is explained in the case of acrylic letters, where the letter is dark gray during the day and bright white. Such sentences sell, because you can see from them that they are written by someone who does it with his hands.

Galleries are the heart of the site. There are eight of them on that site alone, and there are over a hundred photos of completed projects across the site. A click opens the image in full screen, with left and right arrows, closing on Esc and a keyboard that works the same as a mouse. The buttons have their own labels for screen readers, because without them the gallery for a blind visitor does not exist.

At the bottom of the page are six questions and answers — the difference between acrylic and styrodur, what is a light box, how long does an LED module last, what is the HALO effect, can advertising change color and is it repairable. These are questions that were previously asked by phone, one by one.

05

CNC and laser as a special business

The page CNC and laser services exists because not every inquiry is an advertisement. People who need a cut piece, an engraved board, a mockup, a prototype or a piece of custom-made furniture come forward. They don't need a branding story, they need numbers.

That's why the numbers are there: a router with a working surface of 200 by 130 centimeters, a laser 130 by 100, rectilinear bending of acrylic up to 130 centimeters long and two to ten millimeters thick. Each machine is accompanied by a list of the materials processed on it and a list of what that machine can do — contour cutting of complex shapes, 3D engraving, pocket milling, polished edges for Plexiglas.

Below is a four-step process, written as a guide and not as an advertisement: you send a file in DXF, DWG, AI, SVG or PDF format, you get an offer with a price and deadline, production goes, then download or delivery. This way the party answers in advance what would normally be the first phone call.

06

An inquiry that must arrive

The contact page does not offer one way to get in touch, but four — phone, email, Viber and WhatsApp. This deal is negotiated to suit the customer, not to suit the site. Working hours are listed with contacts, from Monday to Friday from eight to six, on Saturdays by appointment.

The form has a seven-item inquiry subject drop-down, because the difference between an inquiry about a champagne-glass fountain and an inquiry about a facade advertisement is big, and the owner wants to see it already from the email title. Two agreements, with the privacy policy and with the terms of use, are mandatory and not pre-marked.

Behind the form is a common gate that stands in front of all forms on the server: a hidden field that can only be entered by the bot, checking the content of the message and limiting the number of submissions per IP address. After that, there is a check for inserting new lines in the email headers, and only then sending. The message is sent via an SMTP account whose data is located above the root of the site and is not in the repository, and the reply field is set to the sender's address — the owner replies directly from his inbox.

One detail is deliberately unpleasant. If the gateway is not available for any reason, the form does not forward the message but returns a notification and phone number. An open path to the inbox is a worse outcome than a temporarily broken form.

On the phone, across the entire bottom of the screen, there is a strip with three buttons: call, Viber, WhatsApp. The colors on it were subsequently changed until the contrast exceeded the standard — orange on white is beautiful until someone with impaired vision looks at it.

07

Technical performance

The site is written in PHP 8.3, without CMS and without a database. Header and footer are shared files, everything else is plain pages. For a site that changes a few times a year, it's the right choice: no admin panel that someone has to maintain, no plugins that get out of date, and no table that can get damaged. The only library is PHPMailer and it's there purely for form.

On the server level, nginx is running. Everything from http goes permanently to https, everything from www to the version without it, and PHP responses are cached for an hour with a rule that bypasses the cache when it shouldn't be used. Along with this comes security headers, blocking access to backups and sensitive paths, and a maintenance mode that fires with one swipe while something is changing live.

Styles and scripts are called with a version number derived from the time the file was last modified. A visitor who was on the site yesterday gets new CSS today without manually clearing the cache — a small thing that is the most common cause of a false "change not visible" report.

The certificate is renewed automatically, and the source code of the site is stored in a private repository that serves as a backup copy off the server. Before every change on the live site, a copy of the file is made with a date stamp, so going back takes as long as a rename.

08

Speed, images and issues visible only on the live site

The site with over a hundred photos of works stands or falls on the pictures. All were translated to WebP, and the whole set was re-encoded in one pass at a lower quality without changing the dimensions — from about 9.4 to 7.4 megabytes in total, with no visible difference on the screen.

A server is running above that. When a browser says in a request that it receives AVIF, nginx serves it an AVIF version of the same image if it exists, with a Vary: Accept header so that the intermediary cache doesn't get confused and deliver the wrong format to someone else. Images are cached for one year.

The main cover image goes as a picture with an AVIF source, with a specified width and height so that the layout does not move while loading, and with a high priority tag. The fonts are local — the four cuts are preloaded from the same server, so the site doesn't send any requests to someone else's server just to display the text.

The loading screen was a problem in itself: when standing still, it locked the scroll and delayed the moment when the main content appeared. It now hides as soon as the document is ready, has a fallback if something gets stuck, and respects the reduced motion setting.

Browsing the live site on four screen sizes was the only thing left. The opening paragraph on the illuminated-signage page was white text on a light background, contrast 1.14 — practically invisible, and the only one of its kind on the entire site. Galleries cut portrait photos to a four-by-three format, so cropping was replaced by fitting the entire image into the frame. And the main title of the homepage stepped on the styles file that is loaded later, so a more precise rule had to be used to make the title fit in two lines instead of four.

09

The mistake that sent power to someone else's site

The most expensive mistake was not seen in any browser. In the code of the four pages was a canonical URL pointing to a completely different domain — a legacy of the template from which the site once started. Translated into the language of search engines, the site itself said that the original was not him but someone else, and neatly pushed his strength there.

It has been fixed in all places, along with addresses in og:url tags and a comment in robots.txt. Links to accounts on social media that also did not belong to this company were also removed from the structured data.

Since those addresses have already returned once after the changes, checking has become part of the process: after every touch of the PHP files, the entire site is searched for that domain before anything goes to the server. The invisible error keeps repeating itself until a check that sees it instead of a human is introduced.

10

SEO, schema and what had to be removed

Page titles are driven by what is being sought, not by the company name. The homepage begins with the words "Lighting advertising Kragujevac", and only then comes the brand; the same applies to the main product page. Descriptions are written on the page, not according to the template.

Structured data carries a LocalBusiness with address, coordinates, hours of operation and a list of cities where it works, along with a WebSite, a list of five services, a FAQPage with questions that are actually asked and breadcrumb data on every subpage. The page of illuminated signs also carries a Service record with a catalog of subtypes.

Two records had to disappear. The first is a five out of five rating with forty-seven reviews — a number not covered by any real reviews. Others are links to social media accounts that lead to another company. A fictitious rating in structured data is not a gray area but a punishable offense, so the client is asked to be patient: when the real reviews on the business profile arrive, the record is returned with the correct numbers.

The boring part is also sorted. sitemap.xml was incorrect XML and was overwritten from the beginning, robots.txt misses what needs to be indexed, added a standard security.txt file, and a set of icons and a manifest to add to the phone's home screen. Analytics works with consent: until the visitor consents, measurement is turned off, and the banner offers opt-out as a peer button, not a tiny link in the corner.

After that pass, the W3C validator returns zero errors on all eight pages, and the best practice measurement a full score on both views.

11

Outcome

What the client received

A site the client owns. No monthly subscription, no commission, no platform that changes the rules tomorrow. The code is on the server, can be copied and moved, and does not depend on any plugin maintained by a third party.

Practical: a person looking for illuminated signs in Kragujevac comes to a page where he sees about eighty photos of similar jobs, reads what they are made of and how long they last, and contacts the channel closest to him. The inquiry arrives at the e-mail with the specified subject, so the owner already knows from the title whether he is being called by a person who wants a facade advertisement or someone looking for a champagne-glass fountain.

There are also a few things that do not depend on the code and are openly told to the owner: verification in Google Search Console and in Bing tools, real reviews on the business profile, and own accounts on social media to be able to return to structured data. The site is still under active maintenance, and every change goes with the backup before it.

FAQ

Frequently asked questions

Why plain PHP and not WordPress?

Because this site has nothing to do with database or admin panel. Content changes several times a year, so WordPress would mean constant updates to the core and plugins, higher server usage, and another surface to attack — all because of changes that can be counted on the fingers. This way, the site has nothing to break just from standing.

Can the owner himself add photos to the gallery?

Not through the panel, because there is no panel. New images and texts go through me, in a package, and it was a conscious decision: the gallery is updated periodically, and the panel would be part of a system that is maintained for life due to a few changes a year. If the rhythm changes, the panel can be added afterwards, without rebuilding the site.

Why eight pages and not one long homepage?

Because each product group has a different customer and different search terms. With eight pages each has its own title, its own description and its own address that can be sent to the customer or appear in a search. On one long page, it's all shared by one title and one description.

What happens when someone sends an inquiry through the form?

The message first goes through protection against bots — a hidden field, a content check and a limit on the number of submissions per IP address. Then it is sent as an email to the company's address, with the subject of the inquiry in the title and the sender's address in the reply field. If protection is not available, the form intentionally stops and prints the phone number instead of letting unverified content go to the inbox.

Does the site work on a phone?

It does, and that was the requirement from the beginning because most people search for advertising on the phone, on the fly. Across the bottom of the screen is a permanent bar with three buttons — call, Viber, and WhatsApp — and galleries open full screen and scroll left and right with buttons.

What was the hardest thing about this site?

Not the code, but what you can't see. Canonical URLs that pointed to someone else's domain silently sent the search result to someone else, and one paragraph was white on a light background and practically invisible. Both glitches were found only by viewing the live site on multiple screen sizes, not reading the code.

Next step

Have a project that needs to work better?

Send me your goal and current situation. I will reply with a concrete scope proposal.

Start a project