CZ EN

References: projects and tools

A se­lec­tion of projects we work on: e-shops, web ap­pli­ca­tions, websites and in­ter­nal tools. Most of our ex­pe­ri­ence comes from in­ter­nal and non-public projects we worked on as con­trac­tors and as em­ploy­ees.

Case study · E-shop

Carspneu.cz: gradual modernization of a legacy e-shop

Starting point

A legacy project to take over

We took over Car­sp­neu.cz as a legacy ap­pli­ca­tion. Its logic was spread across hand-writ­ten PHP files with more than 1,000 lines each, and every bigger change car­ried risk. A re­write from scratch, how­ev­er, would have meant long months with­out any ben­e­fit for cus­tomers and a big risk for the run­ning busi­ness.

Approach

Small steps, measurable impact

In­stead of a big re­write, we chose a path of grad­u­al, safe changes. It is budget-friend­ly too: the in­vest­ment is spread over time, no money is locked in an un­fin­ished re­write, and every step has to bring a mea­sur­able ben­e­fit.

  • Gradual improvements for more than 10 years – no rewrite from scratch, no “big bang”, budget under control
  • We measure the impact of every change and revert bad decisions
  • New features are rolled out gradually using feature flags
  • From hand-written PHP structures to a modern, AI-assisted application

What we improved and what the e-shop does

Speed, tech­nol­o­gy, search and fea­tures – all grad­u­al­ly and in full op­er­a­tion.

Speed, SEO and SEM

We op­ti­mize both page speed and server re­source usage. Tech­ni­cal SEO, sitemaps and feeds for Heure­ka, Zboží.cz and Google Mer­chant are part of ev­ery­day development.

Modern technology

Huge PHP files were grad­u­al­ly re­placed by Sym­fony, tem­plates and re­us­able com­po­nents, with Vue pow­er­ing the in­ter­ac­tive parts. Au­to­mat­ed tests and CI/CD let us re­lease changes often and safely.

Catalogue and search

The cat­a­logue with fil­ters runs on Meilisearch and re­sults update with­out a page reload. Tests make sure they match the orig­i­nal SQL queries.

Workers, imports and feeds

Sup­pli­er im­ports, EPREL data, cur­ren­cy up­dates and cus­tomer e-mails run in back­ground work­ers, so they never slow down the website or its cus­tomers.

Customer features

Wheel se­lec­tion by car make and model, e-mail price and stock alerts, a re­quest for a better price, a Vue shop­ping cart and QR pay­ment.

Administration and operations

Orders with sta­tus­es and cus­tomer e-mails, PDF in­voic­es, ship­ment track­ing and fea­ture flags. The ap­pli­ca­tion runs in con­tain­ers with au­to­mat­ic de­ploy­ment.

Result

A happy owner and happy customers

The hand-writ­ten legacy ap­pli­ca­tion has become a modern, fast and main­tain­able e-shop that keeps evolv­ing safely. With­out a single big re­write – just hun­dreds of small, well-con­sid­ered steps.

Visit carspneu.cz
Case study · Web application

Poběžovice Firefighters: a website and internal system for SDH and JSDH

Brief

More than a business card

The Poběžovice fire­fight­ers, a vol­un­teer brigade (SDH) with a his­to­ry going back to 1880 and a vol­un­teer fire unit (JSDH), needed a modern website with news, call-outs and in­for­ma­tion about equip­ment. Above all they needed a back office where the unit keeps equip­ment records, in­clud­ing breath­ing ap­pa­ra­tus in­spec­tions, and mem­bers manage the con­tent them­selves.

Approach

One application, public part and administration

The public website and the in­ter­nal system are a single ap­pli­ca­tion built on Nuxt. De­pend­ing on their role, mem­bers only get access to what they need.

  • Editor, technician and admin roles, each with its own part of the administration
  • An audit log records every change, including the state before and after
  • Scheduled publishing, draft preview and protection against overwriting someone else’s edits
  • Developed continuously since 2024 according to the unit’s needs

What the application does

Public website, ad­min­is­tra­tion and au­to­ma­tion in a single system.

Public website and SEO

News, call-outs, his­to­ry, equip­ment, youth brigade or tent rental. Plus struc­tured data, a sitemap and share pre­views, so the fire­fight­ers are easy to find in local search.

Content editing

An editor for ar­ti­cles and events with ex­cerpt, photos and tags. Every text can be checked in a pre­view first and sched­uled for a spe­cif­ic time.

Equipment records

The unit keeps records of ve­hi­cles and gear, breath­ing ap­pa­ra­tus, their use, main­te­nance and his­to­ry. Plus print sheets for day-to-day work.

Automation

A weekly e-mail about over­due in­spec­tions or those due within 30 days, op­tion­al role-based no­ti­fi­ca­tions, sched­uled pub­lish­ing and au­to­mat­ic photo pro­cess­ing in­clud­ing thumb­nails and wa­ter­marks.

Roles and security

User roles, re­vo­ca­ble ses­sions, se­cure­ly stored pass­words and input val­i­da­tion. The audit log is cleaned up reg­u­lar­ly by a sched­uled job.

Operations without downtime

The ap­pli­ca­tion is de­ployed au­to­mat­i­cal­ly and with­out down­time, data­base mi­gra­tions run before a re­lease and the data­base is backed up reg­u­lar­ly.

Result

The unit manages its website and records on its own

Fire­fight­ers have a single place for news, call-outs and equip­ment records, and get e-mail re­minders about up­com­ing in­spec­tions. We keep de­vel­op­ing the ap­pli­ca­tion ac­cord­ing to what the unit needs in prac­tice.

Visit hasicipobezovice.cz
Case study · Website with administration

HÁLEK interiér: a joinery website with administration

Brief

A website that shows the work

The join­ery from Plánice needed a modern website that shows its work: a gallery of fin­ished projects, an over­view of ser­vices and ma­te­ri­als and a simple con­tact. Above all it needed a back office where the owner man­ages the con­tent on their own.

Solution

Website and administration in one application

The public website and the ad­min­is­tra­tion are a single ap­pli­ca­tion built on Nuxt. In it the owner man­ages texts, photos, gal­leries and ref­er­ences with­out a de­vel­op­er.

  • References and galleries are added, edited and ordered directly in the administration
  • Texts and photos of the website change without a developer
  • A custom design without a CSS framework, sufficient text contrast and support for reduced motion
  • Enquiries from the website are delivered by e-mail

What the website does

Modern design, a gallery of fin­ished work and con­tent man­age­ment of your own.

Website and SEO

Home, ref­er­ences, about and con­tact. Plus struc­tured data, a dy­nam­ic sitemap, share pre­views and redi­rects of the orig­i­nal ad­dress­es.

Gallery of finished work

More than 300 photos of fin­ished work with cat­e­go­ry fil­ter­ing, a ma­son­ry layout and a full-screen viewer.

Home page and speed

A full-screen slider with a subtle an­i­ma­tion and ges­ture and key­board con­trol. Photos in desk­top and mobile vari­ants, self-hosted fonts with preload­ing.

Administration and content

A se­cured ad­min­is­tra­tion where the owner man­ages texts, photos and other website con­tent with­out a de­vel­op­er.

References and galleries

Fin­ished work is added, edited and or­dered in the ad­min­is­tra­tion, in­clud­ing cat­e­gories and photos. Changes show up in the gallery right away.

E-mails and operations

En­quiries from the website and no­ti­fi­ca­tions from the ad­min­is­tra­tion are de­liv­ered by e-mail. The ap­pli­ca­tion runs with au­to­mat­ic zero-down­time de­ploy­ment.

Result

A website the owner manages on their own

The join­ery has a modern website with its own ad­min­is­tra­tion. The owner man­ages con­tent, ref­er­ences and gal­leries on their own and gets en­quiries by e-mail.

Visit halek-interier.cz
More projects

Public and internal tools

Be­sides the case stud­ies we work on a number of other projects. Most of them are in­ter­nal and pri­vate tools that are not pub­licly avail­able, so we only men­tion them briefly. All projects are con­tainer­ized (Docker) and can run on Ku­ber­netes, except purely static websites.

Data collection, analysis and display

An in­ter­nal tool that au­to­mat­i­cal­ly col­lects data from public sources, an­a­lyzes it and dis­plays it clear­ly.

Vue · PostgreSQL

Personal finance tool

A pri­vate tool for pro­cess­ing fi­nan­cial doc­u­ments and pre­par­ing re­ports in PDF format.

Go · PostgreSQL

Learning applications

In­ter­ac­tive learn­ing ap­pli­ca­tions built on a shared foun­da­tion with var­i­ous learn­ing for­mats.

Go · Vue · PostgreSQL

Foundation for internal apps

An AI-native tem­plate with shared build­ing blocks: e-mail­ing, user man­age­ment, work­ers, op­ti­miza­tion and more. New in­ter­nal sys­tems start from it quick­ly.

Go · Vue · PostgreSQL

Local AI gateway

A local gate­way to lan­guage models with an OpenAI-com­pat­i­ble in­ter­face that switch­es be­tween model back­ends on demand.

Go

Smart home and ESP32

Home As­sis­tant au­toma­tions, custom in­te­gra­tions and custom hard­ware and firmware on ESP32.

Home Assistant · ESP32

SK Judo Poběžovice

A one-page website of a judo club at ju­dopobe­zovice.cz with a train­ing sched­ule, coach­es and a map. Cre­at­ed as a gift to the club.

HTML · CSS · JSGift

Goods search engine

A goods search engine op­er­at­ed since 2014, with reg­u­lar im­ports and an ad­min­is­tra­tion. A re­tired project today.

PHP · cronRetired

Classifieds and company directory

A clas­si­fieds portal with a com­pa­ny di­rec­to­ry that we used to run. A re­tired project today.

Retired

Running a legacy system
or have an app idea?

Get in touch. We'll dis­cuss how to move your system for­ward grad­u­al­ly and safely, or how to build a new one.

Request a quote