Bartosz Dymet bartek@zaur.app

Bartosz Dymet

Portrait of Bartosz Dymet

Product engineer · Svelte and TypeScript · Kraków

I've built websites since 1999. Now I make clean, fast products that still have a human heart inside. I run all of it myself: 5 products and 10 open-source packages.

The sky over Kraków

zaur-world
12:00

Radio Bartek, from Kraków

Products · 5

szkolyjogi.pl

Yoga and pilates schools in Poland: schedules, pass prices, reviews, booking.

Google Search, day by day

Reading Google Search…

What I built

  • Public directory in Polish, English and Ukrainian.
  • Panel app for schools: passes, recurring classes, refund rules, VAT split, staff roles.
  • Python scraper that reads school sites, price lists and timetable images with LLMs: schema-bound answers, null instead of guesses, monthly prices computed in code. A read that would shrink a stored schedule below 40% keeps the old classes.
  • A database trigger keeps the scraper off anything a school edited. CI builds both apps as images and deploys them.

Open szkolyjogi.pl

Details
Tests
83 test files (Vitest)
Models
Benchmarked first; one dropped for inventing 15 classes on an empty page
Speed
Home-page CLS 0.11 → 0.00 with metric-matched font fallbacks
Stack
SvelteKit, Svelte 5, Drizzle, Postgres, Better Auth
Packages
10 / 10
szkolyjogi.pl Open ↗

zaur.app

webmail.zaur.app

Mail, calendar, video calls and music on one private account, on servers I run.

What I built

  • JMAP mail client on SvelteKit 3 remote functions, begun on the pre-release: installable, offline, push notifications, calendar, contacts, files, rich compose, multiple accounts.
  • Mail is the OpenID Connect provider for Music, Photos and Bartube; sign-up creates real mailboxes through the Stalwart admin API.
  • Infrastructure: Stalwart on a VPS under Dokploy, restic backups to a second machine, errors and traces in self-hosted Traceway.

Open webmail.zaur.app Open register.zaur.app Source on GitHub

Details
Stack
SvelteKit 3, Svelte 5, TypeScript, JMAP, OpenID Connect
Tests
50 test files; Playwright for sign-up
Decisions
5 architecture decision records
Delivery
GitHub Actions deploys; agent conventions in AGENTS.md
AI
An LLM sorts mail into fixed labels, with a confidence floor, a timeout and a headers-only mode
Packages
1 / 10
webmail.zaur.app Open ↗
The real client on a sample mailbox. Nothing is sent; it resets every 30 minutes.
  • kino.net.pl

    Today's showtimes in Polish cinemas, including the studio, culture-centre and film-club screens the big apps miss.

    Details
    Stack
    SvelteKit, Svelte 5, Drizzle, Postgres, Tailwind
    Data
    230 cinemas in 174 towns, crawled every 6 hours
    Sources
    12 ticketing-site readers; an empty read keeps the last good data. When one site blocked the server, I switched source: 6% of films missed, none wrong
    Includes
    Town and film pages; a panel where cinemas fix their own data
    Packages
    2 / 10
  • kompi.pl

    Map of drop-off points for e-waste, batteries and bulbs in Poland, filtered by what each takes and how.

    Details
    Stack
    SvelteKit, Svelte 5, Drizzle, libSQL, MapLibre
    Data
    30,036 collection points in 1,951 cities, scraped by a Python crawler
    Map
    MapLibre, address search, nearest points from your location
  • festivals.zaur.app

    Worldwide directory of open-minded festivals, from ceremony and embodiment gatherings to boutique music and arts.

    Details
    Includes
    A year's calendar by month, a saved plan, lineups, editions, reviews, organiser claims
    Facts
    An LLM-read fact is kept only if its quote is on the fetched page; nothing publishes without approval
    Tests
    33 test files
    Packages
    5 / 10

Packages · 10

Shared by my products, published on npm as @nomideusz. Demos and docs for all of them: svelte.zaur.app

Your photo, in triangles

That’s a cat in a sink, rebuilt from shapes. Drop, paste or choose a photo of your own and your browser refits it. Move across the picture to compare.

It stays in this tab: nothing is uploaded.

svelte-geometrize

Docs Source0.9.4

0.1 kB  

npm i @nomideusz/svelte-geometrize

Used in Szkoły Jogi and kurcz.pl

svelte-media

Docs Source1.0.1
  • thumbnail—cover—
  • medium—inside—
  • large—inside—

svelte-media’s sizes and qualities, encoded here by your browser. Click one to save it. On a server, processAndStore does this with sharp.

npm i @nomideusz/svelte-media

Used in Szkoły Jogi, thebest.travel and Friendly Festivals

  1. The calls appear here as they run.

One booking, five packages

A class booked through the packages a real studio runs on. Pick a class, change the guests, refund it twice, then scan the ticket with your phone.

Sample data: no money moves and no email leaves this page.

svelte-calendar

Docs Source 1.9.1
Import .ics

Click a class to book it. Drag it, and the email and ticket follow. Import your own .ics and book anything in it.

npm i @nomideusz/svelte-calendar

Used in Szkoły Jogi, Zaur and thebest.travel

svelte-scheduler

Docs 0.4.3

Total PLN 112.65

Vinyasa   75 min · PLN 55.00 per person

  • 2 × PLN 55.00PLN 110.00
  • Card feePLN 2.65
  • TotalPLN 112.65

50% back: PLN 56.33

npm i @nomideusz/svelte-scheduler

Used in Szkoły Jogi and thebest.travel

svelte-payments

Docs 0.9.0

derivePaymentStatus → unpaid

  • Nothing in the ledger yet.

derivePaymentStatus → unpaid

Each movement claims its key before the provider is called. Press either button twice.

npm i @nomideusz/svelte-payments

Used in Szkoły Jogi and thebest.travel

svelte-notify

Docs 1.1.2

 

npm i @nomideusz/svelte-notify

Used in Szkoły Jogi, thebest.travel, Kino and Friendly Festivals

svelte-qr

Docs Source 1.0.1
npm i @nomideusz/svelte-qr

Used in Szkoły Jogi and thebest.travel

  1. The calls appear here as they run.

Running on this page

Clients · 7

An online shop and six other sites I build and run.

  • fixtar.pl

    Power-tools shop I built and run for a client: catalogue, checkout, payments, orders.

    Details
    Products
    Synced from BaseLinker
    Payments
    PayU, Przelewy24; only the request that marks an order paid pushes it to BaseLinker and sends the email
    SEO
    To the client’s spec: Product and Offer schema, five split sitemaps, canonical and noindex rules
    Feeds
    Google Shopping feed from the same data as the schema
    Packages
    1 / 10
  • pikastro.eu

    Interior design studio in Kraków. The owner edits text and photos on the live page.

    Details
    CMS
    Custom click-to-edit, with history
    Storage
    Netlify Blobs, no database
    Languages
    Polish, English
  • wibroakustyka.ai

    Product site for the Graal vibroacoustic wellness chair.

    Details
    Explains
    What the chair is and how vibroacoustics works
    Includes
    News and the Health & Longevity Summit 2026
  • tutitutu.pl

    Image-first portfolio for an interior architecture studio (est. 1997) that edits it itself.

    Details
    CMS
    Michael Aufreiter’s Editable Website, extended by hand before AI: drag-and-drop ordering, image cropping
    Languages
    Polish, English
    Sections
    Realisations, workshop, publications, references
  • intertechpoland.pl

    Equipment catalogue and industry news for the Polish representative of Picarro and UGT.

    Details
    Energy
    Emissions monitoring and reduction, leak detection, pipe replacement
    Science
    CRDS spectroscopy, lysimeters, ecotrons, plant sensors
    Built
    My first hand-written Svelte site; rebuilt on Svelte 5 in 2025
  • gabinet-polaczenie.pl

    Acupuncture clinic in Kraków.

    Details
    Format
    One page, in Polish and English
  • kurcz.pl

    Muscle cramps: causes, first aid, prevention.

    Details
    Built with
    Astro, no JavaScript on article pages
    Languages
    Polish, English
    Packages
    2 / 10

Skills · 1

  • simple-web-design

    Agent skill to audit and build websites on Anthony Hobday's 15 principles of simple web design.

    npx skills add nomideusz/simple-web-design
    Source

Work in progress · 1

thebest.travel

Tour marketplace for Kraków: local guides, live availability, online booking.

What I built

  • Availability, time slots, pricing and cancellation policies, all from svelte-scheduler.
  • Stripe Connect checkout, in test mode until the business side is set up.
  • English and Polish, deployed on Railway.

Open thebest.travel

Details
Stack
SvelteKit, Svelte 5, Drizzle, Postgres
Payments
Repeated Stripe webhooks are ignored once a booking is paid
Packages
8 / 10
thebest.travel Open ↗

Side projects · 1

Made for myself, kept online.

  • kruk.live

    Five mini-apps on one site.

    Details
    Inside
    Draw, Kanban, Pixels, Friends, Properties
    Mode
    Real-time and collaborative
    Note
    Phoenix LiveView experiment; the Elixir is written by Claude Code

Railway templates · 183

One-click Railway deploys of open-source software, on unmodified upstream images. Where the app allows: admin created on first boot, sign-ups closed, nightly backups.

From them Railway counts 1,750 projects, 1,312 still running. Deploy links carry my Railway referral code.

AI and agents

Observability

Developer and automation

Business

Work and chat

Media and community

Browsers in the cloud

Desktop apps in the cloud

Linux machines

Sites, games and more

Everything on this page, matched in your browser: Polish letters folded, then each word tried exactly, by edit distance, then by trigrams.

svelte-search↑ ↓ to move · Enter to open · Esc to close