JanKimla


I build things.

I design and build custom web and mobile apps and business software — from validating your workflow to deployment and handover.

Custom app development · MVPs and prototypes · AI Product Builder

How I can help

App development and software for businesses.

Available to discuss remote projects in Czechia and across Europe. Working language, scope and local requirements are agreed before work starts.


01Selected work

Things I have built

Cestiq is live on the App Store, Google Play and the web. The other projects below are explicitly marked in development — they show current scope, not invented outcomes.

Try the products

Step inside. Try it yourself.

Explore the app interfaces with ready-made fictional data. No registration. Choose a product and its demo opens right here.

Cestiq demonstrates the school-management portal; exam practice is available in the mobile app. Demo interfaces are in Czech; invoicing also has an English switch. Faktury is in development. These demos show current functionality, not real customer results.

Cestiq

Driving-school learning platform

Year
2026
Built by
Jan
Status
Live on iOS, Android and web
Built with
Flutter · Firebase · Cloud Functions · Retrieval engine

Try the products

Try Cestiq right here

A working demo with fictional data. No registration, and no need to leave this page.

The original Cestiq administration interface with a fictional school. Mobile exam practice is available on the App Store and Google Play. Videos and online server services are not included in this demo.

  • Live on iOS, Android and web
  • 1,000+ Google Play downloads (October 2026)
  • 6 languages
  • 1,151 questions linked to legislation
  • 4 connected product surfaces
  • 63 server functions

The problem

Learner drivers practise by grinding through the same question bank until the answers stick. Nothing tells them which topics they are actually weak in, or whether they are ready for the exam. They find out at the test centre.

  • Cestiq home screen showing the readiness index and the Exam, Tricky and Quick cards
    Home — readiness index and the way into the exam
  • Cestiq practice screen showing question 9 of 1126 with answer options
    Practice — filtered, searchable, bookmarkable
  • Cestiq catalogue of mandatory road signs with codes and explanations
    Signs — the full catalogue, explained
  • Cestiq exam in progress with a countdown and a question built around a photograph
    Exam — timed and scored like the real thing
  • Cestiq error review showing the correct answer marked in green
    Error review — what was wrong and what was right
  • Cestiq settings with appearance mode, font size, daily reminders and shuffle answers
    Settings — appearance, type size, reminders

Cestiq turns exam preparation into something measurable. It scores readiness on a 0–100 index, shows exactly which topics are dragging that number down, and links every question back to the paragraph of law it comes from. Driving schools get their own portal to follow how their students are doing.

  1. 01Idea

    Every app on the market shipped the same question bank. None of them answered the only question a learner has: am I ready yet?

  2. 02Product

    A readiness index built from test scores, answer accuracy and how much of the material has actually been covered — one number, and the topics underneath it.

  3. 03System

    The bank grew into a corpus: 1 151 questions tied to the text of the road traffic act, a study track, and school-side administration on top.

  4. 04Launch

    Shipped on iOS, Android and web in six languages, with subscriptions and a separate portal for driving schools and their instructors.

What it does

  • Exam

    25 questions, 30 minutes, scored exactly like the state test.

  • Practice

    Filter by unseen, hard, or bookmarked questions. Full-text search across the bank.

  • Study

    Lessons, road signs, and the full text of act 361/2000 Sb. — searchable offline.

  • Readiness index

    One number from 0 to 100, combining results, accuracy and coverage.

  • Weak-topic analysis

    Per-topic success rate with a practice button on every row.

  • Study assistant

    Builds a plan from the learner's own pace and results.

  • Accounts & subscriptions

    Free tier, paid tiers, and school-managed seats.

  • School portal

    Instructors and administrators follow student progress from the browser.

What is underneath

  • Access decided in the database

    Student, instructor, manager and admin have separate rights enforced by Firestore rules on the server — not by hiding buttons in the app.

  • Statistics that survive

    Every write to a student's statistics is backed up automatically, keeping the last five versions.

  • It notices a bad write

    If a record would collapse from dozens of tests to zero, the previous state is saved as an emergency backup before the overwrite happens.

  • Four levels of aggregation

    Student, instructor, school and the whole community, each rolled up separately.

  • Per-question benchmarking

    Every question compares this school's success rate against all users.

  • Seven behavioural signals

    Weak results, never leaving the same questions, guessing instead of reading, repeated mistakes, barely studying, stopped, practice-only.

  • Licences and roles

    Seats, top-ups, granular manager permissions, invitations, QR sign-in.

  • Runs by itself

    Seven scheduled jobs, daily recomputation of global question statistics, daily subscription sync. 63 server functions in total.

  • Locked to the app

    App Check rejects calls that did not come from Cestiq itself.

  • One product, four surfaces

    An iOS app, an Android app, a web version for learners and a browser portal for the school — over one set of data, with one set of rules. The portal works on a phone too, so an instructor can check a student between lessons without opening a laptop.

  • School portal overview — upcoming exams, weekly record holders and seven signals for students who are struggling
    School portal — the daily overview. Seven rules watch for students who are falling behind.
  • One student's progress — score history, readiness index, weakest topics and repeatedly failed questions
    One student — score trend, coverage, weakest topics, and the questions they keep getting wrong
  • Register of students, instructors and administrators with invitation status and licence use
    Register — students, instructors and administrators, invitation status and licence use
  • The school portal on a phone — upcoming exams, weekly record holders and struggling-student signals
    The school portal on a phone — the same overview as on a desktop
  • Student register on a phone, filtered by invitation status
    The register on a phone — filters, not a squeezed-down table
  • A student's progress on a phone — score history, time in app and readiness index
    A student's progress on a phone — full history and readiness index

02

Autoškolník

The whole running of a driving school, in one place

Year
2026
Built by
Jan
Status
In development · no public demo
Built with
Flutter · Firebase · SQLite · Mapbox

The problem

A driving school runs on a paper diary, a spreadsheet of payments and an instructor's memory of where they drove. Nothing is connected: nobody can say what a course actually earned, or whether a student has driven the junction they will be examined on.

  • Autoškolník dashboard with today's lessons, student progress, payments and alerts
    Development preview · fictional data · no public demo
  • Autoškolník weekly lesson planner with instructors, cars and the student queue
    Development preview of the planner · fictional data

A project in development, not yet ready for public testing. The planned scope connects student records, lessons, scheduling and school operations. The screenshots show a development preview, not a finished product.

Planned scope

  • Students

    Records, categories and course types in one register.

  • Lessons

    Recorded as a route, replayed on the map afterwards.

  • Critical locations

    The school defines the junctions a student must handle; coverage is a table.

  • Calendar

    Who drives with whom, when, and in which car.

  • Capacity

    Instructor availability turned into an honest answer about start dates.

  • Vehicles

    The fleet, with what each car is used for.

  • Money

    Expenses, payments, loans and settlements — including a bank import.

  • Works offline

    Everything keeps running without signal and syncs when there is some.

03

Autoškola Kapr

Bilingual website for a driving school

Year
2026
Built by
Jan
Status
In development
Built with
Astro · YAML content

The problem

A driving school teaching both Czechs and foreigners was running on WordPress: the pricing lived in five different places, and nobody could tell a prospective student when a course would actually start.

  • Autoškola Kapr homepage split in two — for beginners and for refresher lessons
    Development capture — one half for people without a licence, one for people who have one
  • Autoškola Kapr pricing page with a licence-group switch and course packages
    Development pricing capture — amounts pictured are not the current course offer

A static site where price sits on the course page it belongs to, a calculator builds the real total including the extras people forget, and a capacity model turns instructor availability into an honest answer about start dates. Czech and English side by side. All content is YAML — the school edits its own site without touching markup.

What it does

  • Courses and prices

    The price sits on the page of the course it belongs to.

  • Price calculator

    Builds the real total, including the extras people forget.

  • Capacity model

    Availability, absences and load turn into an honest start date.

  • Study room

    Chapters, lessons and topics for students already enrolled.

  • Guide

    Articles answering what people ask before they sign up.

  • Two languages

    Czech and English side by side, not a translation bolted on later.

  • Fleet and instructors

    Cars and the people who teach in them, kept as content.

  • Self-service admin

    The school edits its own site without touching markup.

kaprdrivingschool.cz


04

RuriLab

A running plan built from what your body actually did

Year
2026
Built by
Jan
Status
In development
Built with
Flutter · Firebase · OpenAI · Strava · Suunto · Polar

The problem

Training plans are templates. The app tells you to run intervals on Tuesday whether you slept four hours or eight, and when you skip a week it carries on as though nothing happened. The data that would answer this is already on the watch you own — nobody reads it.

  • Weekly training plan in the RuriLab mobile app
    Development capture · test scenario · Czech UI · design may change
  • RuriLab mountain ultra plan with training load, hours and workout types
    Development capture · fictional mountain runner profile · Czech UI

Screenshots come from a development build of the app. A public interactive demo is not available yet.

RuriLab builds an endurance plan from your own history and keeps adjusting it. Paces come from your recent performances rather than a questionnaire. Training load is split into metabolic and mechanical strain, so a descent counts differently from flat kilometres. Load, monotony and injury risk are tracked against your own baseline, and when a week goes wrong the plan is reshaped — after asking you first.

What it does

  • Paces from your own runs

    Daniels VDOT and heart-rate zones derived from recent performances, not a form.

  • Periodised plan

    Base, build, peak and taper, with taper length set by race type.

  • Load in two parts

    Metabolic strain from heart rate, mechanical from descent and terrain.

  • Risk from your baseline

    ACWR with exponential smoothing, plus Foster monotony and strain.

  • Reshapes after a bad week

    A missed session changes the plan — with your approval, not behind your back.

  • Reads your watch

    Strava, Suunto, Polar, Apple Health and Health Connect. Or a FIT, GPX or TCX file.

  • Every run, in full

    Route map coloured by gradient, weather along the track, surface from OpenStreetMap.

  • Built for long races

    Marathon, ultra and mountain running, with a whole season of races chained together.

rurilab.com

05

Faktury

From a project to a clear invoice

Year
2026
Built by
Jan
Status
In development · public demo
Built with
React · TypeScript · Firebase

Try the products

Try Faktury right here

A working demo with fictional data. No registration, and no need to leave this page.

Faktury is in development. Explore current functionality, not a real customer account.

The problem

A small business needs to know what it has invoiced, what customers have paid and what is overdue. Creating and reading an invoice should be simple.

Explore the invoicing app with the fictional Studio Javor. Six sample jobs cover web design, photography and other small-business services. Open an invoice, choose a design or create your own sample document. The demo works with local browser data and uses no real banking details or payments.

What it does

  • Invoice overview

    Issued invoices, amounts, due dates and payment status in one place.

  • Create an invoice

    Customer, line items, due date and the finished document in one flow.

  • Document design

    Choose how your invoices present your business.

  • No signup needed

    The fictional company and sample documents are ready to explore.


02About

Where this came from

I didn’t start as a traditional software developer.

I started with ideas and a desire to build them.

AI changed what was possible.

What I am good at has not changed: working out what a product should be, how it should feel to use, and why the first version was wrong. AI removed the step where that stayed a sketch.

So I build the whole thing — the idea, the interface, the data model, the parts nobody sees — and keep going until it is genuinely useful to the person it was made for. Usually that takes longer than the building did.


03How I work

Idea, then everything after it

Every project is a little different. This is just the path I usually take from an idea to a finished thing.

  1. 01Idea

    It all starts with an idea. Some are small; others get hold of me until I have to try building them.

  2. 02Problem

    First I work out who the product is for, and what it should genuinely make easier for them.

  3. 03Design

    Then how all of it should work. As simply as possible, clearly, and with nothing spare.

  4. 04Build

    The idea takes its first real shape. I build it, put it into use, and find out what works.

  5. 05Refining

    This is where it shows what was good and what was not. I change it, try again, and gradually get it right.

  6. 06Launch

    Finally I put it out to people. Because a product nobody uses is still only an idea.


04Collaboration

Built with the right people

I don’t believe every project needs a big team. Sometimes it’s just me and AI. Sometimes the right designer changes everything.

Most products here were built directly by me. When one needs a different perspective, I bring in specialists I trust — and I stay responsible for the whole of it either way.

  • Jan + AI

    Most projects.

  • Jan + designer + AI

    When visual direction decides whether it works.

  • Jan + selected collaborators

    When the problem is bigger than one head.


05What it costs

Roughly what and roughly when

Nothing here is a quote. Ranges, so you know whether we are in the same ballpark before either of us spends an afternoon on it.

  • Prototype

    A working version you can click through. About a week.

    €540fixed

  • A website

    Content, forms, no accounts. Like Autoškola Kapr.

    €1,800 – 3,150

  • An application

    Accounts, data and custom logic tailored to the project.

    €3,150 – 8,100

  • A platform

    Several roles, several platforms, a system inside. Like Cestiq.

    from €8,100

  • After launch

    Changes, new features, administration. Or a monthly retainer.

    €40per hour

What it costs exactly, I say after the prototype. Until then every number is a guess — mine as much as yours.


06Contact

Have an idea?

Let’s build it.

Tell me what should exist and who it is for. Answer a few questions and you get a written brief back — yours to keep, whether or not we work together.

Tell me about it

Or email me directly