~/portfolio — jovan@kalyx
Available
// no file open — select one from the explorer
~/portfolio $ node init.js
[✓] loading jovan.config.ts
[✓] resolving dependencies — 'React', 'TypeScript', 'Node.js', 'PostgreSQL'
[✓] experience: 7+ yrs · uptime: '100%' · status: 'available'
[~] currently building fiziohub68% complete
[✓] portfolio compiled in 0.42s
~/portfolio $ ready
/*
 * Building software
 * that matters.
 *
 * I'm Jovan Kitanovic — I design and engineer
 * web applications from concept to production.
 * Clean architecture, sharp interfaces.
*/
export const contact = 'jovankitanovic.work@gmail.com' ;
// let's build something
1/**
2 * @file about.tsx
3 * @author Jovan Kitanovic
4 * @description Full-Stack Software Engineer — Novi Sad, Serbia.
5 * Self-directed learner since 2015, professional since 2019 —
6 * founded KALYX in 2026. Adaptable, fast-learning, product-focused.
7 */
8import { Story, Principles, Interests } from '@kalyx/types';
9// ─── Story ────────────────────────────────────────────────
10const story: Story = {
11  started: 2015,
12  location: 'Novi Sad, Serbia',
13  origin: 'self-taught → intern at Infinitydev (2019) → founder of KALYX (2026)',
14  approach: 'Adaptable by nature, fast-learning by choice.',
15  mission: 'Close the gap between design and engineering.',
16  currentFocus: 'Growing KALYX — software built to last.',
17};
18// ─── Principles ───────────────────────────────────────────
19const principles: Principles[] = [
20  { rule: 'Build it right, ship it fast.', detail: 'Quality and speed are not opposites.' },
21  { rule: 'Clean architecture is a feature.', detail: 'Future-you will thank present-you.' },
22  { rule: 'UX is everyone\'s responsibility.', detail: 'Good interfaces are invisible.' },
23];
24// ─── Interests ────────────────────────────────────────────
25const interests: Interests = {
26  tech: ['system design', 'dev tooling', 'open source'],
27  outside: ['photography', 'coffee', 'hiking'],
28  reading: ['system design books', 'tech blogs'],
29  learning: ['Rust', 'Web Components'],
30};
31export default { story, principles, interests };
1/**
2 * @file details.tsx
3 * @author Jovan Kitanovic
4 * @description A closer look at the engineer behind the work —
5 * career timeline, primary stack, and what shapes the approach.
6 */
7import { Timeline, Stack, Context } from '@kalyx/types';
8// ─── Timeline ────────────────────────────────────────────
9const timeline: Timeline[] = [
10  { year: 2015, event: 'First line of code — self-directed from day one.' },
11  { year: 2019, event: 'Internship at Infinitydev — first professional environment.' },
12  { year: 2026, event: 'Founded KALYX — turning software craft into a company.' },
13];
14// ─── Primary Stack ───────────────────────────────────────
15const primaryStack: Stack = {
16  frontend: ['React', 'Angular', 'TypeScript', 'Tailwind CSS'],
17  backend: ['Node.js', 'Express', 'Python'],
18  mobile: ['React Native', 'Android'],
19  data: ['PostgreSQL', 'MySQL', 'OWL'],
20};
21// ─── Context ─────────────────────────────────────────────
22const context: Context = {
23  type: 'product-minded full-stack engineer',
24  strengths: ['fast-learning', 'adaptability', 'end-to-end ownership'],
25  builds: ['web apps', 'mobile apps', 'SaaS tools', 'AI products'],
26  location: 'Novi Sad, Serbia',
27  company: 'KALYX',
28};
29export default { timeline, primaryStack, context };
1/**
2 * @file work-philosophy.tsx
3 * How I think about building software.
4 * The principles and rules I carry into every project.
5 */
6import { Principle, Rule } from '@kalyx/types';
7// ─── Principles ───────────────────────────────────────────
8const principles: Principle[] = [
9  {
10    title: 'Architecture is a long-term investment.',
11    detail: 'Shortcuts compound. A clean structure pays dividends every sprint.',
12  },
13  {
14    title: 'Speed and quality are not a trade-off.',
15    detail: 'The fastest path is the one that does not require a rewrite.',
16  },
17  {
18    title: 'The interface is the product.',
19    detail: 'A brilliant backend behind a confusing UI is still a bad product.',
20  },
21  {
22    title: 'Own the full stack, own the outcome.',
23    detail: 'Understanding both sides prevents dead ends and blame games.',
24  },
25];
26// ─── Rules ────────────────────────────────────────────────
27const rules: Rule[] = [
28  { rule: 'Read the requirements twice. Build once.', weight: 'critical' },
29  { rule: 'Name things as if the next reader is future-you.', weight: 'high' },
30  { rule: 'Commit small, ship often, monitor always.', weight: 'high' },
31  { rule: 'Ask: will this still make sense at twice the scale?', weight: 'medium' },
32];
33export default { principles, rules };
1/**
2 * @file interests.tsx
3 * What I think about when I am not writing code — and when I am.
4 */
5import { Focus, Curiosity } from '@kalyx/types';
6// ─── Technical Focus ──────────────────────────────────────
7const technicalFocus: Focus[] = [
8  { area: 'AI Integration & Prompt Engineering', level: 'deep' },
9  { area: 'Developer Tools & Automation', level: 'deep' },
10  { area: 'SaaS Architecture & Platforms', level: 'deep' },
11  { area: 'UI/UX Implementation', level: 'high' },
12  { area: 'Performance Optimization', level: 'high' },
13  { area: 'Statistical Modeling & Predictive Analytics', level: 'growing' },
14];
15// ─── Curiosities ──────────────────────────────────────────
16const curiosities: Curiosity = {
17  building: ['tools that remove friction', 'products that feel instant'],
18  exploring: ['LLM agent design', 'edge rendering', 'design systems'],
19  reading: ['engineering blogs', 'system design case studies'],
20};
21export default { technicalFocus, curiosities };
PROJECTS
// 11 repositories · mixed status
📁synapse/● live
A web application offering a library of detailed, well-defined starter prompts, along with predefined AI agent architectures.
App.tsx420 lines
PromptLibrary.tsx318 lines
agents.config.json94 lines
ReactTypeScriptViteTailwindCSS
📁fiziohub/● in progress
An application featuring a 3D model of the human body for physiotherapists and fitness trainers, enabling clear organization of patient and client data.
BodyModel.tsx654 lines
PatientDashboard.tsx287 lines
README.md76 lines
ReactTypeScriptNode.jsPostgreSQL
📁programmer-tools/● in progress
A web application that consolidates a set of useful tools for software engineers in one place, aimed at speeding up daily development workflows.
ToolsLayout.tsx198 lines
tools.config.json112 lines
Converter.tsx243 lines
ReactTypeScriptViteTailwindCSS
📁mini-apps/● in progress
A web application that consolidates multiple useful tools within a single window, enabling more efficient use of workspace.
WindowManager.tsx512 lines
AppRegistry.tsx167 lines
apps.config.json88 lines
ReactTypeScriptViteTailwindCSS
📁body-blue-print/● live
A website for a fitness brand, providing appointment booking functionality and a detailed overview of all services offered by the brand.
BookingFlow.tsx389 lines
Services.tsx214 lines
README.md58 lines
ReactTypeScriptNode.jsTailwindCSS
📁prompt-enhancer/● live
A web application for creating precise, well-structured, and properly formatted prompts for AI models.
Editor.tsx476 lines
EnhancerEngine.tsx301 lines
templates.config.json143 lines
ReactTypeScriptViteTailwindCSS
📁jk-pf/● live
A personal portfolio website showcasing professional experience and work.
main.js312 lines
style.css748 lines
index.html94 lines
ViteTypeScriptNode.jsREST
📁vk-pf/● live
A professional portfolio website for a fitness trainer, presenting their work experience and providing an overview of all services offered.
App.tsx187 lines
Services.tsx143 lines
README.md42 lines
ReactTypeScriptViteTailwindCSS
📁mp-pf/● live
A professional portfolio website for a physiotherapist, presenting their work experience, education, and the services they offer.
App.tsx224 lines
Education.tsx118 lines
README.md38 lines
ReactTypeScriptViteTailwindCSS
📁kalyx-pf/● live
The official website of the software company KALYX, with a detailed overview of services, technologies, and approach to work.
App.tsx276 lines
Services.tsx198 lines
kalyx.config.json67 lines
ReactTypeScriptNode.jsTailwindCSS
📁infinitydev-pf/● live
The official website of the software company Infinitydev, developed as part of an ongoing business partnership, with a detailed overview of services, technologies, and approach to work.
App.tsx261 lines
Technologies.tsx172 lines
README.md44 lines
ReactTypeScriptViteTailwindCSS
1{
2 "frontend": {
3 "languages": ["JavaScript", "TypeScript"],
4 "frameworks": ["React", "Angular"],
5 "mobile": ["React Native"],
6 "styling": ["Tailwind CSS", "SCSS"]
7 },
8 "backend": {
9 "languages": ["JavaScript (Node.js)", "Python"],
10 "frameworks": ["Express"]
11 },
12 "databases": {
13 "relational": ["MySQL", "PostgreSQL"],
14 "semantic": ["OWL (Web Ontology Language)"]
15 },
16 "platforms": {
17 "mobile": ["Android"],
18 "cms": ["WordPress"]
19 },
20 "tooling": {
21 "vcs": ["Git", "GitHub", "GitLab"]
22 },
23 "areas_of_focus": [
24 "AI Integration & Prompt Engineering",
25 "Full Stack Web Development",
26 "Cross-Platform Mobile",
27 "Custom Software Solutions",
28 "Portfolio & Brand Websites",
29 "Booking & Scheduling Systems",
30 "SaaS & Web Platforms",
31 "UI/UX Implementation",
32 "Developer Tools & Automation",
33 "Performance Optimization",
34 "Statistical Modeling & Predictive Analytics"
35 ]
36}
1{
2 "languages": {
3 "primary": ["JavaScript", "TypeScript"],
4 "markup": ["HTML5", "CSS3"]
5 },
6 "frameworks": {
7 "web": ["React", "Angular"],
8 "mobile": ["React Native"]
9 },
10 "styling": {
11 "utilities": ["Tailwind CSS"],
12 "preprocessors": ["SCSS"],
13 "approach": "component-scoped, token-driven"
14 },
15 "tooling": {
16 "bundlers": ["Vite"],
17 "patterns": ["hooks", "context", "lazy loading"]
18 }
19}
1{
2 "languages": {
3 "runtime": ["JavaScript (Node.js)"],
4 "scripting": ["Python"]
5 },
6 "frameworks": {
7 "http": ["Express"]
8 },
9 "databases": {
10 "relational": ["PostgreSQL", "MySQL"],
11 "semantic": ["OWL (Web Ontology Language)"]
12 },
13 "patterns": {
14 "api": ["REST"],
15 "arch": ["MVC", "service layer", "middleware"]
16 }
17}
1{
2 "version_control": {
3 "vcs": ["Git"],
4 "hosting": ["GitHub", "GitLab"]
5 },
6 "build": {
7 "bundler": ["Vite"],
8 "package": ["npm"]
9 },
10 "deployment": {
11 "platforms": ["Netlify"]
12 },
13 "environment": {
14 "cms": ["WordPress"],
15 "mobile_platform": ["Android"],
16 "editor": ["VS Code"]
17 }
18}
1/**
2 * @file contact.tsx
3 * Let's build something together.
4 * Fill out the form or reach out directly.
5 */
6const name = 'your name';
7const email = 'your@email.com';
8const subject = 'what is this about?';
9const message = `
10  // what are we building?
11`;
12// ─── direct contact ─────────────────────────────────────
13const links = {
18};
19// ─── send ────────────────────────────────────────────────
20send_message();
1# Terms of Use
2Last updated: 2026 · jovankitanovic.work@gmail.com
3## 1. Purpose
4This is a personal portfolio website. Its sole purpose is to
5present the professional work, skills, and contact information
6of Jovan Kitanovic. It is not a commercial product or service.
7## 2. Intellectual Property
8All content on this site — including text, code, design, and
9project descriptions — is the property of Jovan Kitanovic.
10Reproduction or redistribution without permission is not permitted.
11## 3. No Warranty
12This portfolio is provided as-is. While every effort is made
13to keep information accurate and up to date, no warranties
14of any kind are expressed or implied.
15## 4. External Links
16Links to external sites (GitHub, LinkedIn, project demos) are
17provided for reference. I am not responsible for their content
18or availability.
19## 5. Contact
20For questions or concerns, reach out at
21jovankitanovic.work@gmail.com
TERMINAL
~/portfolio $
UTF-8 · TSX
Ln 1