initial page

This commit is contained in:
2026-08-31 21:49:20 +02:00
commit cb65b574f9
10 changed files with 308 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# codevisoft.com
Static about/portfolio page for Codevisoft (Paweł Szudarek), meant to be hosted on a Raspberry Pi.
## Structure
- `index.html` — page content
- `styles.css` — styling
- `script.js` — small footer-year script
- `images/` — logo assets
No build step — plain static files.
## Deploying on the Raspberry Pi (nginx)
1. Install nginx if not already installed:
```
sudo apt update && sudo apt install nginx
```
2. Copy the site files to the web root, e.g.:
```
sudo mkdir -p /var/www/codevisoft
sudo cp -r index.html styles.css script.js images /var/www/codevisoft/
```
3. Create an nginx server block, e.g. `/etc/nginx/sites-available/codevisoft`:
```
server {
listen 80;
server_name codevisoft.com www.codevisoft.com;
root /var/www/codevisoft;
index index.html;
}
```
4. Enable it and reload nginx:
```
sudo ln -s /etc/nginx/sites-available/codevisoft /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
5. Point your router's port forwarding (80/443) and DNS `A` record for `codevisoft.com` at your public IP, or use a tunnel (e.g. Cloudflare Tunnel) if you don't want to expose the Pi directly.
6. For HTTPS, use `certbot` (`sudo apt install certbot python3-certbot-nginx`) once DNS is pointed at the Pi.
## Editing content
Edit `index.html` directly — sections are marked `About`, `Portfolio`, and `Contact`. Update the email address, portfolio entries, and links as needed.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="120mm" height="25.44mm" viewBox="0 0 2160 458">
<title>CODEVISOFT logo</title>
<path d="M 35 243 L 13 320 L 90 320 L 112 243 Z M 97 13 L 41 216 L 59 216 L 69 179 L 81 144 L 167 144 L 183 93 L 179 87 L 179 81 L 186 74 L 195 75 L 200 82 L 200 86 L 198 90 L 191 95 L 174 152 L 87 153 L 68 216 L 94 216 L 108 168 L 110 166 L 196 166 L 212 115 L 208 109 L 208 103 L 213 97 L 222 96 L 227 100 L 229 108 L 227 112 L 219 119 L 203 174 L 116 175 L 104 216 L 216 216 L 246 116 L 243 110 L 243 102 L 249 96 L 257 96 L 263 102 L 263 110 L 259 115 L 254 117 L 226 215 L 244 216 L 300 13 Z" fill="#FFFFFF" fill-rule="evenodd"/>
<path d="M 159 243 L 102 446 L 135 446 L 172 328 L 169 324 L 169 317 L 174 311 L 182 310 L 189 316 L 189 325 L 184 330 L 180 331 L 145 446 L 182 446 L 218 332 L 215 318 L 218 313 L 223 310 L 231 311 L 235 315 L 236 324 L 231 330 L 227 331 L 191 446 L 224 446 L 260 332 L 257 318 L 260 313 L 265 310 L 273 311 L 277 315 L 278 324 L 268 333 L 233 446 L 305 446 L 362 243 Z M 1838 208 L 1830 254 L 1857 254 L 1865 208 Z M 1059 209 L 1058 222 L 1060 232 L 1064 240 L 1077 251 L 1087 254 L 1168 254 L 1172 227 L 1098 227 L 1092 226 L 1087 222 L 1087 208 Z M 2095 152 L 2067 152 L 2050 254 L 2077 254 Z M 297 115 L 269 216 L 370 216 L 398 115 Z M 2023 141 L 2143 141 L 2148 114 L 2028 114 Z M 1858 132 L 1848 150 L 1840 194 L 1841 198 L 1941 198 L 1947 170 L 1874 170 L 1873 163 L 1876 150 L 1882 143 L 1887 141 L 1966 141 L 1970 114 L 1890 114 L 1871 121 Z M 1774 118 L 1762 114 L 1717 114 L 1698 121 L 1684 133 L 1674 153 L 1667 194 L 1668 198 L 1694 197 L 1701 155 L 1704 148 L 1711 142 L 1755 141 L 1762 146 L 1763 155 L 1754 207 L 1750 220 L 1742 226 L 1698 226 L 1692 221 L 1692 208 L 1665 208 L 1665 231 L 1668 238 L 1676 247 L 1694 254 L 1736 254 L 1756 247 L 1769 236 L 1779 218 L 1791 148 L 1787 131 L 1782 124 Z M 1610 114 L 1543 114 L 1523 122 L 1511 133 L 1504 144 L 1500 159 L 1501 174 L 1506 184 L 1513 191 L 1527 197 L 1574 198 L 1580 204 L 1580 211 L 1577 220 L 1568 226 L 1495 226 L 1490 254 L 1563 254 L 1583 247 L 1596 236 L 1604 223 L 1608 208 L 1607 194 L 1601 182 L 1593 175 L 1578 170 L 1533 169 L 1528 164 L 1528 155 L 1530 149 L 1536 143 L 1541 141 L 1605 141 Z M 1451 114 L 1424 114 L 1399 254 L 1427 253 Z M 1366 114 L 1337 115 L 1293 204 L 1291 203 L 1279 115 L 1250 114 L 1266 236 L 1271 250 L 1278 254 L 1289 254 L 1297 250 L 1303 244 Z M 1076 114 L 1062 192 L 1063 198 L 1164 197 L 1168 170 L 1095 170 L 1094 167 L 1098 144 L 1100 141 L 1187 141 L 1192 114 Z M 903 114 L 888 197 L 916 197 L 925 143 L 927 141 L 976 141 L 984 146 L 984 160 L 975 211 L 971 221 L 968 224 L 963 226 L 912 226 L 911 223 L 914 208 L 887 208 L 879 254 L 958 254 L 976 248 L 989 238 L 998 225 L 1001 217 L 1012 156 L 1012 140 L 1007 128 L 996 118 L 984 114 Z M 823 118 L 811 114 L 765 114 L 748 120 L 732 134 L 723 152 L 716 198 L 743 197 L 750 154 L 753 147 L 760 142 L 803 141 L 808 143 L 811 147 L 811 159 L 801 215 L 795 224 L 790 226 L 747 226 L 740 220 L 740 208 L 713 209 L 713 229 L 718 240 L 726 248 L 742 254 L 784 254 L 803 248 L 820 233 L 828 217 L 839 156 L 839 141 L 837 134 L 833 127 Z M 653 120 L 638 114 L 592 114 L 581 117 L 570 123 L 558 135 L 549 156 L 539 213 L 541 233 L 545 240 L 553 248 L 569 254 L 611 254 L 623 251 L 633 246 L 646 234 L 653 222 L 656 208 L 629 208 L 625 221 L 617 226 L 573 226 L 567 220 L 567 210 L 577 153 L 583 144 L 590 141 L 630 141 L 635 143 L 638 147 L 637 159 L 665 159 L 666 141 L 660 127 Z" fill="#36A9E1" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

+97
View File
@@ -0,0 +1,97 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Codevisoft — Paweł Szudarek</title>
<meta name="description" content="Codevisoft — IT services, software & game development by Paweł Szudarek.">
<link rel="icon" type="image/png" href="images/Emblem.png">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="site-header">
<div class="container header-inner">
<nav>
<a href="#about">About</a>
<a href="#portfolio">Portfolio</a>
<a href="#contact">Contact</a>
</nav>
</div>
</header>
<main>
<section class="hero">
<div class="container">
<img class="hero-logo" src="images/FullLogo_transparent.png" alt="Codevisoft">
<p class="tagline">Software &amp; game development, IT services and consulting.</p>
</div>
</section>
<section id="about" class="section">
<div class="container">
<h2>About</h2>
<p>
Codevisoft is the sole proprietorship of <strong>Paweł Szudarek</strong>, an independent
software developer working across IT services &amp; consulting and game development.
From small competition projects to freelance IT work, Codevisoft focuses on building
solid, well-crafted software.
</p>
<p class="links-inline">
<a href="https://www.linkedin.com/in/pawel-szudarek/" target="_blank" rel="noopener">LinkedIn — Paweł Szudarek</a>
&middot;
<a href="https://www.linkedin.com/company/codevisoft/" target="_blank" rel="noopener">LinkedIn — Codevisoft</a>
</p>
</div>
</section>
<section id="portfolio" class="section alt">
<div class="container">
<h2>Portfolio</h2>
<div class="portfolio-grid">
<article class="card">
<h3>Jeżmin</h3>
<p class="card-meta">Action-RPG &middot; by CD Pink &middot; ZTGK 2025 competition entry</p>
<p>An action-RPG built for the 2025 ZTGK game development competition.</p>
<a class="card-link" href="https://codevisoft.itch.io" target="_blank" rel="noopener">View on itch.io →</a>
</article>
<article class="card">
<h3>PanDa 3</h3>
<p class="card-meta">Educational &middot; by OgórkiKiszone &middot; ZTGK 2026 competition entry</p>
<p>An educational game developed for the 2026 ZTGK game development competition.</p>
<a class="card-link" href="https://codevisoft.itch.io" target="_blank" rel="noopener">View on itch.io →</a>
</article>
</div>
<p class="more-link">
More projects on <a href="https://codevisoft.itch.io" target="_blank" rel="noopener">codevisoft.itch.io →</a>
</p>
</div>
</section>
<section id="contact" class="section">
<div class="container">
<h2>Contact</h2>
<ul class="contact-list">
<li><a href="mailto:pszudarek@codevisoft.com">pszudarek@codevisoft.com</a></li>
<li><a href="https://www.linkedin.com/in/pawel-szudarek/" target="_blank" rel="noopener">linkedin.com/in/pawel-szudarek</a></li>
<li><a href="https://www.linkedin.com/company/codevisoft/" target="_blank" rel="noopener">linkedin.com/company/codevisoft</a></li>
<li><a href="https://codevisoft.itch.io" target="_blank" rel="noopener">codevisoft.itch.io</a></li>
</ul>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container">
<p>&copy; <span id="year"></span> Codevisoft — Paweł Szudarek</p>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>
+1
View File
@@ -0,0 +1 @@
document.getElementById("year").textContent = new Date().getFullYear();
+159
View File
@@ -0,0 +1,159 @@
:root {
--bg: #0d1117;
--bg-alt: #11161d;
--text: #e6edf3;
--text-dim: #9aa7b4;
--accent: #36A9E1;
--border: #1f2732;
--max-width: 960px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
}
a {
color: var(--accent);
text-decoration: none;
}
a:hover { text-decoration: underline; }
.container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 1.5rem;
}
.site-header {
border-bottom: 1px solid var(--border);
position: sticky;
top: 0;
background: rgba(13, 17, 23, 0.9);
backdrop-filter: blur(6px);
z-index: 10;
}
.header-inner {
display: flex;
align-items: center;
justify-content: center;
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
nav a {
color: var(--text);
margin-left: 1.5rem;
font-weight: 500;
}
nav a:hover { color: var(--accent); text-decoration: none; }
.hero {
text-align: center;
padding: 5rem 0 4rem;
}
.hero-emblem {
width: 88px;
height: auto;
margin-bottom: 1.5rem;
}
.hero h1 {
font-size: 2.75rem;
margin: 0 0 0.5rem;
letter-spacing: 0.02em;
}
.tagline {
color: var(--text-dim);
font-size: 1.15rem;
margin: 0;
}
.section {
padding: 3.5rem 0;
}
.section.alt {
background: var(--bg-alt);
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
}
.section h2 {
font-size: 1.75rem;
margin-top: 0;
margin-bottom: 1.5rem;
}
.links-inline {
color: var(--text-dim);
}
.portfolio-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 1.5rem;
}
.card {
background: var(--bg);
border: 1px solid var(--border);
border-radius: 10px;
padding: 1.5rem;
}
.card h3 {
margin: 0 0 0.25rem;
}
.card-meta {
color: var(--text-dim);
font-size: 0.85rem;
margin: 0 0 0.75rem;
}
.card-link {
display: inline-block;
margin-top: 0.75rem;
font-weight: 500;
}
.more-link {
margin-top: 2rem;
color: var(--text-dim);
}
.contact-list {
list-style: none;
padding: 0;
margin: 0;
}
.contact-list li {
padding: 0.4rem 0;
}
.site-footer {
border-top: 1px solid var(--border);
padding: 2rem 0;
color: var(--text-dim);
font-size: 0.9rem;
text-align: center;
}
@media (max-width: 600px) {
.header-inner { flex-direction: column; gap: 0.5rem; }
nav a { margin: 0 0.75rem; }
.hero { padding: 3.5rem 0 2.5rem; }
.hero h1 { font-size: 2.1rem; }
}