VulCode

Software house in Poland: nearshore development from Kraków for European businesses

Websites, apps, client portals and integrations built in Kraków, in your time zone or one hour from it, under EU law, in English, with the developer on the call instead of an account manager.

See our services
A project chat in the VulCode client panel, in English: the designer from Aphrodi, the client and the developer agreeing a change

Time difference from Kraków

Kraków uses CET (UTC+1) in winter and CEST (UTC+2) in summer, changing on the same dates as the rest of the EU.

A 9:00 to 17:00 office day in each city, on Kraków's clock in winter
  • Kraków
    CET, UTC+1, 9:00 to 17:00 on Kraków time
    The reference: Kraków's own office day, the light column in every row.
  • Berlin, Paris, Amsterdam, Vienna, Stockholm
    No difference, 9:00 to 17:00 on Kraków time
    The same working day, hour for hour.
  • London, Dublin, Lisbon
    Kraków is 1 hour ahead, 10:00 to 18:00 on Kraków time
    Almost the whole working day overlaps.
  • Helsinki, Athens, Bucharest
    Kraków is 1 hour behind, 8:00 to 16:00 on Kraków time
    Almost the whole working day overlaps.
  • New York, Toronto
    Kraków is 6 hours ahead, 15:00 to 23:00 on Kraków time
    Your morning is our afternoon; calls fit there.

Why Poland, and why a small team in Kraków

What working with us across a border actually changes, and what it does not.

VulCode in seven facts

Country
Poland, in the EU

Contracts sit within EU law.

Personal data
Under the GDPR

With a processing agreement wherever we process your data.

Time zone
CET, UTC+1

The same as Berlin, Paris and Amsterdam; CEST, UTC+2, in summer.

Languages
English and Polish

Documents, tickets and calls can all be in English.

Who you talk to
The developer

There is no account manager in between: the person who quotes your project builds it.

Code rights
Yours once paid in full

The economic rights to the code and graphics made for you pass to you, with the repository and documentation.

Prices
An individual quote

Every project is quoted for its scope, and the quote states what is and is not included.

How a remote project runs

The same steps as for a client in Kraków, without the train journeys. Everything after the first call lives in one client panel.

  • A quote in the client panel: the total, the validity, the items and the team's notes

    A call, then a written quote

    We talk through goals, scope and timing on a video call, in English, with the developer who will build it. Then the quote arrives in the client panel: every item of the scope on its own line, what is excluded, the stages with their dates, the revision rounds each stage includes and how long the quote stays valid. You accept or reject it with one button, and the screen says up front that acceptance is binding and that a change of scope means a new quote. Nothing is agreed in a chat thread that someone has to dig out later.

  • The documents of a project in the client panel: the order, the processing agreement, the terms and the code archive

    One account for the documents

    The accepted order, the terms and the data processing agreement sit in the client panel, next to the schedule and the invoices. Each file shows who added it and when, so the draft of an agreement and its signed version are never mixed up, and you can add your own files to the same project. After acceptance the code archive of the accepted version lands on the same tab. When you need a document for your own records, nobody has to search an inbox for the version that was actually signed.

  • A ticket in the client panel with its number, status and the conversation with the team

    A test version and tickets

    You follow progress on a staging environment and report changes in tickets, each with its number, status, priority and history. A ticket holds the whole conversation with the team, with screenshots attached, so a bug report does not get lost between emails and calls. The reply says what was found and, when the cause is a bug in our work, that the fix goes under the warranty at no extra cost. Closed tickets stay on the list, so you can always look back at what was changed and why.

  • The billing tab of the client panel: the wallet, invoices of a project paid in parts and their status

    Payments you can see coming

    Most projects start on a fixed price: unless agreed otherwise, an advance before we start and the rest after acceptance. Time and materials and a monthly subscription are the other two models; the schedule is written into the order first. In the billing tab every invoice shows which part of the project it covers, its amount, its date and whether it is paid. An unpaid invoice can be paid from the wallet in the same panel, so there are no bank transfers to match against an email.

  • The handover report in the client panel: repository, code archive, documentation, domain, hosting and keys passed to the client

    Launch and handover

    After deployment the repository, the documentation and the access go to you. Once the project is paid in full, the code rights pass to your company, with no lock-in to our infrastructure. The handover report in the panel lists each item with a tick: the repository with its full history moved to your account, a code archive of the accepted version, the documentation, the domain, the hosting and third-party keys generated anew on your accounts. The last line is our own access, which we remove and confirm in the same report once your team has taken over.

Work you can look at

Websites, panels and our own products, each with a page describing what we built.

WaveHost

  1. A new hosting brand site

    A multi-page site with transparent pricing, trust-building sections and a server configurator, not released by WaveHost yet.
  2. Delivered in three weeks

    With excellent Core Web Vitals as a hard requirement.
  3. Their client panel too

    Ordering and managing VPS and dedicated servers, a wallet, invoices and a referral program.

When we are and are not the right fit

Being honest about this saves both of us a call.

A good fit

  • A website, store, portal or integration with a clear owner on your side
  • A project where you want to talk to the person writing the code
  • Taking over and finishing code another vendor left behind
  • A Polish entity that needs KSeF e-invoicing connected to its systems
In short: Describe it in a few sentences, in English. The developer who would build it replies with questions or a quote.

Probably not a fit

  • Staff augmentation with several developers placed in your team
  • A dedicated support team available around the clock
  • Day-to-day communication in a language other than English or Polish
In short: We would rather say so before the first call than quote something we are not set up to deliver.

Questions from clients outside Poland

Currency, code ownership, data protection and KSeF.

Planning a project with a team in Poland?

Describe it in a few sentences, in English. The developer who would build it will reply with questions or a quote.