#What a senior WordPress developer does that a page-builder shop cannot
Most WordPress work in Krakow, as everywhere, is not development. It is assembly: a licensed theme, a page builder, a stack of plugins to paper over the gaps, and a designer arranging it all inside the browser. For a brochure site that is often the right answer, and a good WordPress developer will tell you so rather than sell you a build you do not need. The line gets crossed the moment your requirements stop fitting inside a visual editor: a content model that a page builder cannot express, a WooCommerce checkout that has to talk to KSeF and Przelewy24, a page that has to load fast under real traffic, or simply code a second developer can open in a year and understand.
That is where a senior WordPress developer earns the title. The work is writing code rather than clicking through settings: custom themes and plugins built to a standard, a data model designed on purpose instead of accreted from whatever plugin was installed that week, integrations that hold up when the third-party API changes, and a review trail so nothing ships that only one person understands. The output is not prettier admin screens. It is a system your team can operate, extend and hand to the next developer without a rescue project.
Krakow has a particular relationship with this distinction, because it is where the Polish habit of building software for foreign companies began. Long before Warsaw’s tech scene matured, Krakow was the country’s first outsourcing and shared-services destination, and the engineering discipline that comes with running an R&D centre for a multinational, code review, testing, documentation, release process, is simply how the city works. Two audiences meet on this page: Western companies looking for a senior WordPress developer in Krakow as nearshore capacity, and Krakow companies that want senior WordPress work carried out in English against international standards. Both are comparing providers on how the work is done, not just on how the mock-up looks.
#Custom themes and plugins, built to WordPress Coding Standards
A custom theme is not a licensed theme with the colours changed. It is a code base authored for your content, and on a new build the sensible default now is a block theme built on the editor APIs: theme.json for the design system, block patterns for the reusable layouts your editors actually use, and block variations where a pattern needs options. The reward is an editing experience that fits how your team writes, without a page builder loaded on every request to make it work.
The theme-versus-plugin boundary is where a lot of inherited Krakow projects have gone wrong, particularly on sites that a marketing team grew organically before anyone thought about maintenance. The rule is plain: if a feature is functional rather than presentational, it belongs in a plugin so it survives a theme switch. Custom post types that outlive the design, REST endpoints, integration logic, admin tools, the invoicing bridge that talks to your accounting system, all of it lives in a plugin with its own version history. Themes describe presentation and editorial structure and nothing more. When that boundary is respected, a redesign is a redesign; when it is ignored, a redesign becomes a data-recovery exercise because the last agency buried a custom post type and a Przelewy24 callback inside functions.php.
WordPress Coding Standards are not a badge, they are what makes a second developer productive on day one, and they matter more when the team is distributed across cities and companies. Consistent formatting, proper escaping and sanitisation on every input and output, nonce verification on forms, internationalised strings so the same code base can serve Polish and English, and PHP that a linter can check in the pipeline. On top of that sits the practice that separates development from assembly: code review on every branch, an architecture decision record for the non-obvious choices, and small reviewable changes with preview links rather than a single monolithic drop at the end. This is not an imported ideal in Krakow; it is the working culture of the city’s engineering centres, and it carries directly into how WordPress gets built here.
#WooCommerce for Polish and cross-border commerce
Krakow is a large consumer and commerce market in its own right, and a Polish WooCommerce store carries requirements a generic international build simply ignores. This is where a developer who actually works in the market pulls ahead of a template.
KSeF, the national e-invoicing system, is the clearest example. Structured invoices have to be generated in the correct XML shape and exchanged with the government platform, and a shop that treats invoicing as an afterthought discovers the gap the hard way at go-live. Omnibus is the second: when you show a promotional price, the law requires displaying the lowest price from the prior thirty days, and getting that right in WooCommerce is a data and display problem, not a checkbox. Then there is the delivery and payment texture that Polish shoppers take for granted. InPost Paczkomaty parcel lockers are the default fulfilment expectation, not an exotic add-on, and the checkout needs a proper locker selector rather than a plain address field. Payments run through Przelewy24, PayU or BLIK far more than through a bare card form, and each has its own callback and reconciliation behaviour to handle correctly.
Cross-border is the other half of the story, and it is especially pronounced in Krakow because the city sells to the world in more than one sense. Its tourism and culture sector, one of the largest in Poland thanks to a UNESCO-listed old town and a year-round stream of international visitors, runs storefronts and booking flows aimed squarely at buyers who do not read Polish. That pushes OSS VAT registration and the rate logic that follows, multi-currency and multi-language storefronts, and shipping rules that behave one way inside Poland and another across the EU border. The engineering discipline is the same as anywhere: correct code against real systems, a checkout that stays fast under a campaign spike, and a data model that keeps orders and invoices consistent through a seasonal surge. Where the shop side of an engagement grows large enough to stand on its own, the WooCommerce developer service covers it in full.
Editorial and commerce WordPress fails in a specific way: it is fine in the demo and falls over when a campaign lands or a story spikes. The cause is almost never the thing people reach for first. It is rarely the theme’s CSS. It is uncached database queries multiplying under load, a plugin stack that autoloads on every request whether the page needs it or not, and an options table that has quietly grown to megabytes of autoloaded junk that every single page view has to read.
Performance engineering on WordPress starts with a profiler, not an opinion. Query Monitor and server-side timing show which queries run, how many, and how long they take, and the first pass is usually about deleting work rather than adding cache: a plugin that runs a query on every request to render something used on one page, a meta query with no index behind it, an autoloaded option that should never have been autoloaded. Once the query count is honest, object caching earns its place, and a page cache in front of anonymous traffic absorbs the spike that a festival announcement or a viral post creates. On a WooCommerce store the cart and checkout are dynamic and cannot be cached whole, so the work shifts to keeping those paths lean while everything around them is served fast. The last step is a performance budget written into the project so the next editor who installs a plugin does not silently undo the work, measured against real user field data rather than a single flattering lab run.
#Security and compliance: GDPR, NIS2 and a code base you can audit
For a growing number of Krakow companies, and for the Western clients they build for, security is no longer a nice-to-have paragraph. In development terms it is concrete and unglamorous: disciplined escaping and sanitisation on every input and output, nonce verification on forms, hardened configuration, least-privilege database and file permissions, dependencies kept current through Composer, and code a reviewer can actually read rather than a plugin pile nobody has looked inside.
GDPR shapes what personal data a plugin stores, how consent is captured on forms and analytics, and how export and erasure requests are served without a manual database dig. NIS2, now transposed into national law across the EU, pulls more mid-sized companies into a formal cybersecurity regime than the old rules did, and while WordPress is rarely the core system in scope, a public-facing site connected to internal systems still needs patch discipline, logging, access control and a documented update path. In a city where a good share of clients are themselves the security and back-office arm of a larger group, this language is familiar and the bar is set accordingly. We build those controls into the handover rather than leave them as a policy document that nobody implemented. The point is not to sell fear; it is that a site put together as assembly cannot pass this bar, and one written as engineering can.
#When headless is the right call, and when it is scope creep
Headless WordPress, keeping WordPress as the editorial back end while a separate front end renders the site, is genuinely the right answer for a slice of projects: an app-like interface, a design system shared with a native application, or a publishing operation that wants a static front end sitting in front of a busy editorial back end. When one of those requirements is real, the work is worth doing and we do it, and where a static rebuild is the honest fix for a heavy front end rather than a slow origin, that is the Next.js and Astro migration path, with the broader headless WordPress service covering the architecture in full.
It becomes scope creep when it is chosen for a content site that a well-built block theme would serve at a fraction of the cost and half the ongoing maintenance surface. Headless doubles the number of moving parts, the number of deployments, and the number of things that can break at the seam between the CMS and the front end. Krakow has more React and Node talent per square kilometre than almost anywhere in Poland, which cuts both ways: the skills to build headless well are here, but so is the temptation to reach for a framework because the team enjoys it rather than because the project needs it. The recommendation is almost always to sequence: get the WordPress build right first, prove it against real numbers, and only reach for headless when a specific requirement is paying for the extra complexity.
#Three Krakow engagements from the workbench
The names and figures are withheld; the shapes recur, which is why they are worth describing.
The culture organisation that needed to speak four languages at once. A Krakow cultural institution, the kind that runs a festival programme, a ticketed exhibition calendar and a visitor-facing archive, had a WordPress site that had grown one language at a time and behaved differently in each. Polish content was rich, English was half-translated, and German and French existed as orphaned pages a search engine could not connect. The work was a proper multilingual architecture: a single content model with clean language relationships, editorial workflows the in-house team could run without a developer, and a front end fast enough to survive the traffic spike every time a programme was announced. The institution stopped maintaining four half-sites and started maintaining one that happened to speak four languages.
The SaaS marketing site that had to be fast and correct. A Krakow software company ran its marketing site and blog on WordPress alongside a separate product, and the site had become a liability: slow, hard for marketing to edit safely, and carrying analytics and consent handling that would not survive a GDPR review. The fix was a clean custom block theme so the marketing team could publish without breaking layouts, a performance pass that cut the page weight and query load, and a consent and data-handling setup the company’s own compliance reviewer could sign off. No headless rebuild, no framework migration, just the WordPress build done properly so the product team could stop being pulled in to fix the website.
The commerce build that overflowed from an internal team. A shared-services centre in Krakow had a capable internal engineering group, but it was a Java and back-office shop with no WordPress or WooCommerce depth, and a direct-to-consumer storefront had landed on its plate with a deadline. We worked as the WooCommerce specialists alongside their people: their infrastructure and their security review, our WooCommerce integration layer for payments, fulfilment and KSeF invoicing, reviewed on their branches so their engineers could see and question every change. The store shipped on time, and the internal team came away with a code base they could maintain because it was built to the standards they already worked to elsewhere.
#The Krakow context: R&D centres, gamedev, universities and the original nearshore market
Krakow is where Polish nearshore engineering started. It was the country’s first big outsourcing and shared-services destination, and it has since become a dense cluster of global research and development offices: engineering teams for companies across software, networking, aviation technology and industrial automation have chosen Krakow for the same reason clients choose it for WordPress, a deep and stable pool of engineers who work fluently in English inside a Western time zone. Alongside that sits a distinctive gamedev cluster, anchored by studios with international hits behind them and surrounded by smaller independent teams, which keeps a strong seam of graphics, performance and systems talent in the city.
The universities are the reason the pool never empties. AGH University of Science and Technology and the Jagiellonian University turn out computer-science and engineering graduates every year, many of whom cut their teeth on PHP and web work before moving into the R&D centres, and the local meetup and community scene keeps skills current between formal jobs. That mix shapes WordPress work in two directions at once. Outward, Krakow is a proven nearshore hub, and WordPress travels especially well remotely because the artefact is a reviewable pull request, not a presence in a meeting room. Inward, Krakow’s own organisations, culture and tourism bodies with multilingual audiences, SaaS companies treating the marketing site as a product surface, and back-office centres that suddenly need a customer-facing store, increasingly want their WordPress properties held to the same standard as the rest of their stack. None of these buyers is well served by a page builder and a plugin pile, which is precisely why senior WordPress development has a market here.
#When you do not need a dedicated WordPress developer
The section most agency pages leave out. If your site is a handful of pages, your content changes rarely, and you have no integrations or performance pressure, you do not need a dedicated WordPress developer and hiring one is money spent on capability you will never use. A reputable theme, a small number of well-chosen plugins and a designer who keeps it tidy will serve you, and a good developer will point you there rather than invent a build. The same applies when your real problem is content or marketing rather than code: no amount of custom development fixes a site that nobody visits.
There is a second, quieter case for declining. Custom code is a commitment, because a bespoke plugin needs an owner and a maintenance path. If a project cannot fund its own upkeep, an orphaned custom plugin that nobody understands is worse than the off-the-shelf one it replaced. The honest trigger for dedicated development is a genuine mismatch between what you need and what assembly can deliver: a content model that does not fit, a WooCommerce integration with KSeF or Przelewy24 that has to be built correctly, a multilingual publishing operation that has to stay consistent across languages, a performance target a builder cannot reach, or an inherited code base that needs rescuing. Where none of those is present, the recommendation is to save the budget.
#How the nearshore engagement works
We are a Krakow-based team and we build for Western European and US clients remotely, both directly and as white-label overflow for agencies, working in English. The mechanics are unremarkable, which is the point: standard B2B contracts, cross-border invoicing as a Polish company inside the EU single market with reverse-charge VAT handled the normal way, and everything shipped through version-controlled pipelines you can inspect. Central European Time is the quiet advantage; the working day overlaps UK and continental office hours completely and reaches into US morning hours, so reviews, standups and releases happen inside your day rather than overnight.
The way in is deliberately small: a codebase audit and a written scope that separates real requirements from the wish list, followed by staged delivery where the first reviewed branch is also the first point at which you can judge the work and decide how much further to go. Pricing is individual and tied to the scope the audit justifies, not to your company size or location. The exit is built in from the start, with living documentation and a handover session, so whether the project moves to your own developers, stays with an agency, or continues on an optional maintenance retainer, you own the result rather than depending on us to read our own code. If a broader engineering brief emerges from the audit, the WooCommerce developer service covers shop work in depth, and the headless WordPress service covers the front-end architecture when a specific requirement justifies it.
Last updated: 12 July 2026