The starting point
Introduce the brand and make choosing cosmetics easier. Connect an up-to-date catalogue and guides with purchases at e-fontanna, while giving the team practical editing tools.
Brand website / Catalogue / Integrations
From discovering the brand to choosing a product.

Presentation of the actual website.
Project story
For INIKA, the visual website is only part of the work. Behind the brand presentation are a catalogue fed by store data, editing tools, guides and product-selection features. I took the project from a Replit application through Firebase to a custom WordPress implementation. Purchases take place at e-fontanna; the INIKA website helps visitors understand the range and choose beforehand.
Introduce the brand and make choosing cosmetics easier. Connect an up-to-date catalogue and guides with purchases at e-fontanna, while giving the team practical editing tools.
I handle application development, the backend and Shoper integration, the WordPress migration, a custom theme and plugins, editing tools, SEO, analytics, and desktop and mobile views.
Store data, with synchronisation kept separate from editorial content.
Short forms, a media picker and product search instead of a long settings list.
Guides and tools help visitors choose a cosmetic, then link to its product page at e-fontanna.
My work on the project
On 10 March, I took over a complete Replit project: React, TypeScript, an Express backend and PostgreSQL on Neon. I adapted builds, routing, sessions, image uploads and configuration to Firebase Hosting and Functions. I launched the public website and administration panel. Initially, I retained the existing database; moving data to Firestore came later.
After Neon availability problems, I improved fallback catalogue reads, timeouts and the website’s response to API errors. On 8 April, I migrated active data and sessions to Firestore, removing the running application’s dependency on Neon. I also fixed category assignments, availability filters and product links so the views presented a consistent range.
In the application, I connected the catalogue to the Shoper API and automated updates. I handled current, regular and promotional prices, plus the lowest price in the 30 days before a reduction. I refined availability, categories, images and the synchronisation schedule. Commercial data remained separate from editorial content. Purchases stayed at e-fontanna, on the corresponding product page rather than in a second cart.
I removed heavy base64 images from catalogue responses, introduced lighter image URLs and caching, and split application code into smaller parts. I improved the opening screen and product loading. In June, I reduced continuous cloud-function operation through scaling to zero and an instance limit. I returned to performance measurements after migration: the 20 October homepage PageSpeed test scored 97/100 on mobile and 100/100 on desktop. These are results from one laboratory test, not a permanent guarantee.
I expanded products, categories, bestsellers, promotions, guides and collections. The work covered galleries, ingredients, certifications and links between content and products. The July application stage included 82 active products and 18 guides and collections. These figures describe that release; the catalogue continued to evolve afterwards.
I expanded the original dashboard so real website content could be edited: banners, navigation, brand sections, products, categories, FAQs, newsletter, contact details and social links. I aligned editing fields with the public views, removed empty values and demo copy, and tested saving and reloading. This was the editing system I developed before the later decision to move to WordPress.
I built a custom theme and plugins to bring the application’s appearance, catalogue and functionality into WordPress. Content, images, ingredients, certifications and the quiz became editable in the dashboard. The catalogue gained a custom plugin supporting Shoper integration. I preserved search, whole-catalogue sorting, pagination and manual product hiding. Newsletter signup was connected to the e-fontanna list. I also checked that the new installation was independent of the old Firebase backend. Visitors still choose on the brand website and buy at e-fontanna.
During the October stage, I expanded galleries for 64 products to 2–6 images, with thumbnails and zoom. For 45 products, I prepared plain-language ingredient explanations based on verified INCI lists and the brand’s glossary. I added nine certification explanations with official sources. The photographs and source information belong to the brand; my work covers presentation, relationships and dashboard editing of these sections.
After migration, making content editable was not enough: a long settings list was still awkward. I replaced it with six clear tiles, short forms and one save button. I added a media picker, product search and collapsible advanced settings. I tested banner, product and quiz saves in narrow views too, restoring the data after the checks.
I first deployed a separate copy and checked its views. On 19 October, I published WordPress at inikaorganic.pl. The work covered HTTPS, the www variant, redirects, product and guide URLs, and the sitemap. I checked public responses and canonical URLs while preserving email configuration.
I added and refined a skincare quiz, product comparison and shade-selection tools. They use the real catalogue. The comparison tool presents selected cosmetics side by side; the quiz ends with a recommendation and relevant links. I also aligned navigation, the footer and the appearance of these pages.
After the migration, I connected the website to GA4 and preserved its Search Console property. Measurement starts after consent, which visitors can withdraw through footer settings. I tagged outbound links to e-fontanna to distinguish where visitors enter the store. I connected measurement across the two domains and tested the sequence from an INIKA visit through the store, a product, the cart and checkout initiation. A completed purchase still needs separate verification; clicks are not treated as sales.
I built a WordPress dashboard combining GA4 and Search Console: current activity, traffic sources, viewed pages, store referrals and successive journey stages. I added period selection, Google queries and CSV export. Realtime information, delayed reports and test visits are distinguished, so missing data is not presented as a confirmed result.
I organised metadata, canonical URLs, internal links, the sitemap and structured data for products and articles. Essential content is present in server-delivered HTML. The 21 October check covered 116 sitemap URLs: 200 responses, one H1 and self-referencing canonicals. That is a technical check, not a promise of search rankings.
I checked the new pages on wide and narrow screens: navigation, galleries, the quiz, comparison and shade selection. I refined header proportions, the mobile menu, button feedback, the footer and the brand icon. I tested actual navigation and tool results. A purchase test in the store remains a separate stage.
The frontend, Express, existing Neon database, images, sessions and administration panel.
Data and session migration, plus catalogue-resilience improvements.
Website sections, field mapping, content cleanup and dashboard testing.
Scaling functions to zero and limiting instance counts.
Synchronisation, products, guides, collections and CMS tests.
A custom theme and plugins, editing tools and a test copy.
WordPress, HTTPS, redirects and GA4 with consent controls.
Six editing tiles and a PageSpeed test: 97 mobile, 100 desktop.
Comparison, shade selection, visual consistency and a GA4/Search Console dashboard with CSV.
Reviewing 116 sitemap URLs and refining the favicon.
I continue to develop the brand website and its connection to e-fontanna. Further decisions are informed by visitor behaviour and the team’s needs. The INIKA brand, products and materials belong to their respective owners; my contribution is the website, integrations, tools and their development.