Lumen Painting: a website with its own CRM and AI assistant
A 48-page site for a Toronto painting company, a 27-screen admin with invoices and an AI assistant that takes estimate requests.
ProArts Productions brings performers to stages in Toronto, Montréal, Calgary and Vancouver, and ProArts Hub, its nonprofit, runs community music in Toronto. I built the website they share and the admin behind it, so the team changes a tour, a ticket or a line on a page by themselves and sees it the way visitors will.

Opens in a full-screen window on this page. You stay on this site the whole time. The admin panel runs on the website’s own public content.
ProArts is a concert promoter, a nonprofit and a free summer festival, and each has its own audience. The home page asks one question, where would you like to go, and answers it with three tickets: ProArts Productions for concerts and tours, ProArts Hub for community music, and Concerts on Connolly, the free concerts in Wadsworth Park, which has a website of its own. On a phone the three tickets fill the first screen.

A tour plays several cities, and each city sells its own tickets. So the tour page gives every city a ticket of its own: the date, the venue, door and show times, and a button to that city’s ticket seller. A ticket is orange while it is on sale, turns dark when the show sells out and closes by itself once its day has passed. Under each one sit Add to calendar, a map link and the name of the seller.
Every concert has its own page, the one on tour and each past show. The tour page tells search engines about each show in structured data, with its date, venue and ticket link, and the addresses of the old WordPress site lead to their new pages, following my SEO and AI search work.

ProArts Hub’s page sets out its mission, its programs and its festival, with ways to volunteer, partner or sponsor, and its funders and partners under With thanks. The organization’s facts, such as its legal name and registration, are entered in the admin, and a fact that is not entered is simply not shown.

One sign-in opens a separate admin for each ProArts website, each with its own dashboard, menu and colour. The dashboard starts with what is on now and what needs a look, such as a city with no show times yet.


The concert editor shows the cities the way visitors see them on a phone and updates as you type. Each ticket link says where it leads and opens with one click to test it. In Site content, a click on any text or photo of a page opens it for editing beside the page, on a computer or a phone, while a concert is ahead or after it.

The admin signs in through Supabase with no public sign-up, a confirmed email and a password of at least 12 characters. Row-level security in the database decides who may read or change what, by role, from owner to can look. A save carries a version number, so one person never overwrites another’s change without knowing, and the last 30 versions are kept. Photos and PDFs sit in private storage.
The website itself is static files on Hostinger, published from GitHub, with a strict Content Security Policy and no inline scripts. The contact and concert alert forms send email through a small PHP handler that takes messages only from the website’s own pages, turns robots away with a hidden field and limits how many one address can send. Every page was checked at 1280, 768 and 390 pixels wide, for contrast to WCAG AA and for a visible focus ring on every keyboard stop, and every photo is under 160 KB with alt text. More in website development.
A 48-page site for a Toronto painting company, a 27-screen admin with invoices and an AI assistant that takes estimate requests.
Treatment pages, a journal, English and French, an AI chat and analytics that asks for consent first.
Tell me about your business and what you want to change. A few sentences are enough, and I reply by email.
Ask Bugra’s AI
Powered by Claude, using this website
AI answers can be wrong and are not offers or advice. Please don’t share personal details in the chat. Privacy · Terms