Apache 2.4.66
tcp/443 tcp/80
Heroku
tcp/443 tcp/80
Open service 75.2.43.161:443 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:38:24 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=hI28neSKs1t9ZXWAZK00T2GUtjgky4kPLf2Li8Qzhjk%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041504"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=hI28neSKs1t9ZXWAZK00T2GUtjgky4kPLf2Li8Qzhjk%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041504"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3ACU7JZoS9ITQgktLyvdQP-4F3Yq_XuTyEf7XGkPFXUWelDIPXLl1qPs1pKUcLH3eAZ4ufQ9jFHLY5pzKBCCi_iWamUlu35AVclQtlXFWXsLM.blMxZEtVSnBpYlpuaGdGWg.q27AUm2WlDLnDARucAV8OknuVj5TUh7FWUp74viUQ-E; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoiY3kza2piZHg4enZ5NXRoNHVpZWY1NzN1IiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0.Dh6WGAkxr_tdrBaZAuI4oeMY_zLZ6gzSiLLooSIfrno; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: cy3kjbdx8zvy5th4uief573u=e%3AfyoDdpjBdCQZTqjzaq4R5tWwqxwmqSB-ashmN2evAVl4qJ6KcN6R-temfNYgTTa7VF6x9MVME6lPTrIXr934_HvLd8w9909VRgUEDX-ahI8yXBqNcYIE5MIvhGzd-qFW.bUdGR1ZJdDNmaWJuOVZqRA.BwvGk1IrdhYCE-JtOenyjHpJwWecPLZqTctiV7LQaOQ; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 873da757-1e84-c084-9f80-5213eccb4bcc
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 75.2.43.161:80 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:39:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041565"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041565"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3ALG_P0_LxckknvyyJedyGpv4__kF0oc4DaNsJ6aJbFwtJTj3o4EbAxpSrosDOxulu5eGV2RYR2UfcexzV6MSG9pXK9X1JvKLfIU1DHpfopZM.cFZWNjRiMEVHbkNIQjYwbg.KMoYlxItAPZRFoQBd4_629RC5aoZ5nqXokhb441opXw; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoicXNqaGNtcHI2bmluNnB2cXduMnVqeWQ4IiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0.4mp6KDkPuxrUy_nPeIAvrcNmhXj4GcRGyTCAoQqrOXE; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: qsjhcmpr6nin6pvqwn2ujyd8=e%3AMc5Bjy51wYv4hmdDKfLgxecUBaBAa98ODMTcJ3YNjMF9ZjU33axsN535bAPTJDLbOOANGix10Kt52dMhZREn_2FV4iO3UfxsSmWgxeNZH9TRTyB2TZMjO70_KVWTTwoB.NmRyRTJNSWg0UzBsRVRXTg.c7fb9jgsMo4fbxLvbg478nuU4vd43yYNwRUMBexsrWI; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 1d8ee820-2aa8-e802-45a3-62d14acf0d3d
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 15.197.129.158:443 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:38:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=u0PkSV0l7k6xQeiDfPtQWzNuaMNWKiOtV6hYSyqhUV4%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041505"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=u0PkSV0l7k6xQeiDfPtQWzNuaMNWKiOtV6hYSyqhUV4%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041505"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3A6_QIdOAeztwWu-UEGpsFaG8t7dQqNxIlDteCjJN2nOOlmMXlSU0hfIc9lJEvP9kA64w-TXr3S0rPZ66VMitkiVKYRPGLyCHyqddZI0gkKWU.MngtU18wb1RpRmpoNno2Tg.XM2xMlKDzQqtAr1q09-OzBQvrqBpCMK5PbMmCMEsaEk; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoidjN4aGM4djZoZ3Nwb29jaWw2bGU0ZWQ2IiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0.v6pGDyk9Ddb6hpFDLmvFHNUFx-m0Cq32Wk_KryedLfk; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: v3xhc8v6hgspoocil6le4ed6=e%3AwJktHLSKu1vZ9Gh6zDG6a8axJzX7XUiB5ZxiO0uPJL4nYRbR3eERQN3WITfTQ_Je6B-Pi9LgcYDK1yBrLn4s2pE1wXdlUe3VBw4zWRDc4QbQAeOnKHTKVVXt8ui6pH7d.cUxnRnNZS2NVbjZ3NE1zbw.SqEL1dtBRQl2hMDd9u3B3NAoj1FKozroYnS3NmZHFJ0; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 5092a069-d7e2-0231-9f93-933ae4e7b626
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 99.83.217.1:80 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:39:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041565"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041565"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3AFfXTWXuWrP8tp_lJ0H2-sbk2_zUCflxw1H1S8GGxCS6kXyZVPrxmeSh0rgvIjK-KxLV3VuUlze12lRhr9cxROjrqZL4oYoAebEiIg2leMTg.YUIxMGhMdVppRmo5VEtucw.fIKWaM1I0SYU_dtO9C1uyRbAWHnTNg9uM3yUOp46CMs; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoicHgyNTFndDAyaXVxNzEwcTdhN3U5cWZqIiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0.SuvW2S5_uT8aqsbKdpdmriasymmwKArHP5h0OQuQW-o; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: px251gt02iuq710q7a7u9qfj=e%3AiVrN-8zxNQf_Is0-ve0SMcls9R-irW_ZKTMIhUOQOxp-9qxy1ykIVXA4oJeSN84gMayKcMXJiUTOxBKgR_-bAcf8rYASCsNE81iDTNwxKZyRs5RWiQm6sdELu6XZZEw8.cC1ySXV1aWY1amlxZWl3Sw.NrP_UYxJriQ5CVItcKuZu2NdV1LB4pCU0YmfcOsOC8w; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: d505b35f-1302-761f-862b-f9977d17d207
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 2a01:238:20a:202:1092:::443 · lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 10:38:25 GMT Server: Apache/2.4.66 (Unix) Location: https://www.lemonsoftware.nl/ Content-Length: 277 Connection: close Content-Type: text/html; charset=iso-8859-1 Page title: 301 Moved Permanently <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.lemonsoftware.nl/">here</a>.</p> </body></html>
Open service 76.223.11.49:80 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:39:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041565"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041565"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3A6sRDTTtv9eL417ospRXzmpLGWeMhHxMVNpff8PTMMtVSz7TsTXtpr0BmHKvUoNApPP9IrwubECjyOB5Q7_TpR7VxLFmv9ofLrKNtaeHET10.M0UxdkFpeURxdEttOEZTXw.QJTx6VyXbe-wZgeKaCQhZyFifQ172WYMP1Num0BOOOU; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoicW52NnduZ2t0dTFpb2p3cXJ2Z21yNDM1IiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0._DcokNcHNtDU3WRhv1wN0O10xl3gBk--90oyRk915-U; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: qnv6wngktu1iojwqrvgmr435=e%3ATvpJQqHh660bdimOzpzH_c7zrZiYxhjSgYAiNB67YnVNsnq7W6pX_rxYGFu2gpvcxiyrP4KGPxgJKbgBfWjiSrAPQlRsVCCoFJlnQd3l6EWjLiL6PJ5Yi9KSMFa-ENgr.SXctenJNTnF2SXA2bHpWYw.DUq2nUsF5oaOdnozoHxCDRyBBszar9CPK3MOAlUWc7M; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 0db1ee65-912f-4413-2cba-35f66b30a6cd
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 76.223.11.49:443 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:38:24 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=hI28neSKs1t9ZXWAZK00T2GUtjgky4kPLf2Li8Qzhjk%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041504"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=hI28neSKs1t9ZXWAZK00T2GUtjgky4kPLf2Li8Qzhjk%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041504"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3ApJInDIupAEotpnJXRk7iGU46MroDp4tVEU08ZB5MViwn-WfSp9IKgrh9u0_ulp4Vxy4qKI7wWsScRkx82IvBCTLXaOICIYp74623mpL7Ab4.NWdrck9IdmNnSGVxbXZBbQ.OOni5epBYbbr-mIy6FmlYMa3hLWGGddWC0lcgJQ5Gow; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoiajk0N2JrdjkxMXBxcXUyNHU2YW4yZDQyIiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0.d25-x4hlcUXvht-Sqvp29aj7AKjENKGcucP2VwLh-bc; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: j947bkv911pqqu24u6an2d42=e%3AMubhDdFjabcTa2Fv6q8s8QMCgefTCtnM5LdxaDRqZ8tKEmbNeG-WSdOwfJXQSROdvjkh1tUL1bh1-hUWCxqWS_-aA4mMHzRSLbmZdEB4mkJzWPuutRkzdk6H680ihgyB.U0dYWmpIVC02NjZVOGczUg.VWbG2YGUY3F-4NFcwavKzDMi82AuWIKJOAkacg6E8kg; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 1b788b95-8af0-d682-19b0-acaa17b28543
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 81.169.145.92:80 · lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 10:39:22 GMT Server: Apache/2.4.66 (Unix) Location: https://www.lemonsoftware.nl/ Content-Length: 277 Connection: close Content-Type: text/html; charset=iso-8859-1 Page title: 301 Moved Permanently <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.lemonsoftware.nl/">here</a>.</p> </body></html>
Open service 2a01:238:20a:202:1092:::80 · lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 10:39:22 GMT Server: Apache/2.4.66 (Unix) Location: https://www.lemonsoftware.nl/ Content-Length: 277 Connection: close Content-Type: text/html; charset=iso-8859-1 Page title: 301 Moved Permanently <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.lemonsoftware.nl/">here</a>.</p> </body></html>
Open service 99.83.217.1:443 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:38:24 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=hI28neSKs1t9ZXWAZK00T2GUtjgky4kPLf2Li8Qzhjk%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041504"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=hI28neSKs1t9ZXWAZK00T2GUtjgky4kPLf2Li8Qzhjk%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041504"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3AtR6fRuTU8aO1E2-v3JmRi9L1ivR87kOOQgl13xieTUU5TrHBdn5bwCIk1YRkcJTFS0qJXpORm6SanCl9M1vJh8_ETdx53I0wPqbryaEsZrU.dHBucWpWU094SW9PQmtzeg.4-6ZRDf2wCme-MjOjyYmCedwYWWY5e2BtT4y_f29CIw; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoiZ3A5ZmNibHI5c2wxdmpiMWhqZTRhcTRlIiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0.xw5e0hA3Qp5NPWjiZLIkPpy45VLOiHIqmqp4E8X_Av4; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: gp9fcblr9sl1vjb1hje4aq4e=e%3A9Qy1FGYNEjNnKFZPII83Fv0460jOaYP0j1SViZDHqE0EDOSaAgCGQzlVKcsKp0Fh-kNHKQeIcP8F-WrGoy5br6ixP-m2L6xCV1mSmW6vaVFW_FXty0-JJg59LhfuNWbW.NS1YemtORGxHWjZWVEJFeg.7YWpvFWoPxUDmfQFsQWNqhXq7ZTspGpXAgycafSd1_c; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: aedb06d7-6a10-d00d-59e8-fc3a9e70265e
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 15.197.129.158:80 · www.lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 200 OK
Content-Length: 13638
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 10:39:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D\u0026sid=c4c9725f-1ab0-44d8-820f-430df2718e11\u0026ts=1768041565"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=Dyuxnmlk%2BWoSQjPIaHURuGpCicWiTzx82NRcXGaLQZ8%3D&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&ts=1768041565"
Server: Heroku
Set-Cookie: XSRF-TOKEN=e%3AKrUDghqOWZUTu-ZnVBB1vvPr8i_OLTrcPZwc_Fbfd6EmtBhfijWdtYTG4sSaYUCGEYnTdk0DZl5bJf42oAqYFaiX3hWE8R82cHfkBcPU-DE.ZkN2MUZhZjBfNjFJM25abQ.tlXBVa5-H4Nj6ZhTQo3GR3IeppqrcXTIbxBGJH2GZM4; Max-Age=7200; Path=/; Secure; SameSite=Lax
Set-Cookie: adonis-session=s%3AeyJtZXNzYWdlIjoiajVlZHduMGZrcmE3NWRmYnN0cGlzaTd4IiwicHVycG9zZSI6ImFkb25pcy1zZXNzaW9uIn0._7qvAQ34XFyj3A53JzIHS-LmlpNBp6s3WLxbqVmahEg; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Set-Cookie: j5edwn0fkra75dfbstpisi7x=e%3AJoZ9CVNuC9ZNMNCKXwl7aX32XJMqE8wL5ewelENUxryX9YoyOPJgaiQmKJHjVSIR2OAgLGTU93rmRTLJaZyYGPZhZrG0zIt7ftpAOEEsAr5Jzu3jf-Se5XonL9jljYur.QVppX2VYYl9hRlcya0ZscQ.kuk6tqBb8b0AOe8s3Hy7hUyr21kV756tAvruNVPecDI; Max-Age=7200; Path=/; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security: max-age=15552000
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 3cbab4b8-ccaf-ee89-2fdb-721682f6c0d7
Connection: close
Page title: AdonisJS x Inertia x ReactLemon Software
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title inertia>AdonisJS x Inertia x React</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />
<style>
:root {
--sand-1: #fdfdfc;
--sand-2: #f9f9f8;
--sand-3: #f1f0ef;
--sand-4: #e9e8e6;
--sand-5: #e2e1de;
--sand-6: #dad9d6;
--sand-7: #cfceca;
--sand-8: #bcbbb5;
--sand-9: #8d8d86;
--sand-10: #82827c;
--sand-11: #63635e;
--sand-12: #21201c;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Instrument Sans', 'sans-serif'],
},
colors: {
primary: {
DEFAULT: '#5A45FF',
},
sand: {
1: 'var(--sand-1)',
2: 'var(--sand-2)',
3: 'var(--sand-3)',
4: 'var(--sand-4)',
5: 'var(--sand-5)',
6: 'var(--sand-6)',
7: 'var(--sand-7)',
8: 'var(--sand-8)',
9: 'v and import it herear(--sand-9)',
10: 'var(--sand-10)',
11: 'var(--sand-11)',
12: 'var(--sand-12)',
},
},
},
},
}
</script>
<title inertia>Lemon Software</title>
<link rel="preload" as="style" href="/assets/app-V1pZY7xQ.css"/>
<link rel="modulepreload" href="/assets/app-BwOkDy3K.js"/>
<link rel="modulepreload" href="/assets/home-FmBi_v-9.js"/>
<script type="module" defer src="/assets/app-BwOkDy3K.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
<script type="module" defer src="/assets/home-FmBi_v-9.js"></script>
<link rel="stylesheet" href="/assets/app-V1pZY7xQ.css"/>
</head>
<body class="min-h-screen w-screen font-sans"><div id="app" data-page="{"component":"home","url":"/","version":"6cb41755a56900244f2851db65e8d688","props":{"translations":{"title":"Lemon Software","mailto.href":"info@lemonsoftware.com","header.title":"Jeffrey Lemein","header.job":"Freelance Developer","header.subtitle":"C++ / Graphics / Web (Node.js, TypeScript, React)","aboutme.title":"About Me","aboutme.content":"I'm a freelance software developer with a strong foundation in C++ and computer graphics. I specialize in advanced rendering techniques, including hair and fur simulation. I also build modern web applications using Node.js, TypeScript, and React.","services.title":"Services","services.content.0.title":"C++ Development","services.content.0.content":"Custom engines, simulations, high-performance applications, and native tools.","services.content.1.title":"Graphics & Hair Rendering","services.content.1.content":"Advanced real-time and offline rendering, shader development, and simulation.","services.content.2.title":"Web Development","services.content.2.content":"Modern web apps using Node.js, React, and TypeScript, from concept to deployment.","portfolio.title":"Portfolio Projects","portfolio.viewproject":"View Project","portfolio.projects.0.title":"Hair Rendering Engine","portfolio.projects.0.image":"/images/hair-rendering.jpg","portfolio.projects.0.alt":"Project 1","portfolio.projects.0.description":"Real-time GPU-based hair rendering system written in C++
Open service 81.169.145.92:443 · lemonsoftware.nl
2026-01-10 10:38
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 10:38:24 GMT Server: Apache/2.4.66 (Unix) Location: https://www.lemonsoftware.nl/ Content-Length: 277 Connection: close Content-Type: text/html; charset=iso-8859-1 Page title: 301 Moved Permanently <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.lemonsoftware.nl/">here</a>.</p> </body></html>
Open service 52.223.53.203:443 · qrcode-api.lemonsoftware.nl
2026-01-05 00:30
HTTP/1.1 401 Unauthorized
Content-Length: 67
Content-Type: application/json; charset=utf-8
Date: Mon, 05 Jan 2026 00:30:55 GMT
Etag: W/"43-n0NfxL6U0wrWxfFLPrh+AVEV5zo"
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=uZDdm%2B6l61lXeogdllWgX9zP6C8ZugtkT7PnzDNpXtQ%3D\u0026sid=812dcc77-0bd0-43b1-a5f1-b25750382959\u0026ts=1767573055"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=uZDdm%2B6l61lXeogdllWgX9zP6C8ZugtkT7PnzDNpXtQ%3D&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&ts=1767573055"
Server: Heroku
Via: 1.1 heroku-router
X-Powered-By: Express
Connection: close
{"message":"Missing token","error":"Unauthorized","statusCode":401}
Open service 99.83.185.157:443 · qrcode-api.lemonsoftware.nl
2026-01-05 00:30
HTTP/1.1 401 Unauthorized
Content-Length: 67
Content-Type: application/json; charset=utf-8
Date: Mon, 05 Jan 2026 00:30:54 GMT
Etag: W/"43-n0NfxL6U0wrWxfFLPrh+AVEV5zo"
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=UjNwrCJNh0Bw5tnBVL%2FT%2FVR4jbKavc4qdtBzVgfYlPE%3D\u0026sid=812dcc77-0bd0-43b1-a5f1-b25750382959\u0026ts=1767573054"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=UjNwrCJNh0Bw5tnBVL%2FT%2FVR4jbKavc4qdtBzVgfYlPE%3D&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&ts=1767573054"
Server: Heroku
Via: 1.1 heroku-router
X-Powered-By: Express
Connection: close
{"message":"Missing token","error":"Unauthorized","statusCode":401}
Open service 3.33.249.164:443 · qrcode-api.lemonsoftware.nl
2026-01-05 00:30
HTTP/1.1 401 Unauthorized
Content-Length: 67
Content-Type: application/json; charset=utf-8
Date: Mon, 05 Jan 2026 00:30:54 GMT
Etag: W/"43-n0NfxL6U0wrWxfFLPrh+AVEV5zo"
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=UjNwrCJNh0Bw5tnBVL%2FT%2FVR4jbKavc4qdtBzVgfYlPE%3D\u0026sid=812dcc77-0bd0-43b1-a5f1-b25750382959\u0026ts=1767573054"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=UjNwrCJNh0Bw5tnBVL%2FT%2FVR4jbKavc4qdtBzVgfYlPE%3D&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&ts=1767573054"
Server: Heroku
Via: 1.1 heroku-router
X-Powered-By: Express
Connection: close
{"message":"Missing token","error":"Unauthorized","statusCode":401}
Open service 15.197.253.240:80 · qrcode-api.lemonsoftware.nl
2026-01-05 00:30
HTTP/1.1 401 Unauthorized
Content-Length: 67
Content-Type: application/json; charset=utf-8
Date: Mon, 05 Jan 2026 00:30:57 GMT
Etag: W/"43-n0NfxL6U0wrWxfFLPrh+AVEV5zo"
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=9L%2FIFOy2Ihq22eQSSlLgb9HoMMLG%2FGnz9C7At%2FbCfRs%3D\u0026sid=812dcc77-0bd0-43b1-a5f1-b25750382959\u0026ts=1767573057"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=9L%2FIFOy2Ihq22eQSSlLgb9HoMMLG%2FGnz9C7At%2FbCfRs%3D&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&ts=1767573057"
Server: Heroku
Via: 1.1 heroku-router
X-Powered-By: Express
Connection: close
{"message":"Missing token","error":"Unauthorized","statusCode":401}
Open service 15.197.253.240:443 · qrcode-api.lemonsoftware.nl
2026-01-05 00:30
HTTP/1.1 401 Unauthorized
Content-Length: 67
Content-Type: application/json; charset=utf-8
Date: Mon, 05 Jan 2026 00:30:53 GMT
Etag: W/"43-n0NfxL6U0wrWxfFLPrh+AVEV5zo"
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=oSS9g2VajdTpZj8JuO8dZj5Ffi6ddUNRtlLKCh6pc%2Bo%3D\u0026sid=812dcc77-0bd0-43b1-a5f1-b25750382959\u0026ts=1767573053"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=oSS9g2VajdTpZj8JuO8dZj5Ffi6ddUNRtlLKCh6pc%2Bo%3D&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&ts=1767573053"
Server: Heroku
Via: 1.1 heroku-router
X-Powered-By: Express
Connection: close
{"message":"Missing token","error":"Unauthorized","statusCode":401}