99 Francs
sales@99francs.agency

HQ Paphos, Cyprus · worldwide

Case study · Personal website
Client
Kyrylo SavenkovUkraine
Industry
Software development
Year
2026
Platform
AstroStatic HTMLnginx

Kyrylo Savenkov: A developer’s personal site, designed by us and built on Astro.

Kyrylo Savenkov is a full-stack developer in Kyiv — PHP and Laravel, Vue.js, TypeScript — who had no website of his own. We designed it and built the Astro foundation: the structure, the layout and the components. Kyrylo has developed it further himself since.

Kyrylo Savenkov's site in the dark theme — KYRYLO SAVENKOV as an oversized wordmark with a photo pill, over an ASCII shader background
Direct answer

A new personal site: our design, our Astro foundation, and then his to develop.

99 Francs designed the personal site of Kyrylo Savenkov, a full-stack developer in Kyiv, and built its Astro foundation — structure, layout and components — in 2026. The site runs in English and Ukrainian, with a light and a dark theme, and Kyrylo has developed it further himself since.

Challenge

A first website for someone who builds them.

A developer’s own site is judged on craft and then kept alive by its owner. It had to look considered, load as plain pages, and leave a codebase that he would want to work in.

There was no site to migrate

Kyrylo had no website before. This was a new site, built from a blank page rather than moved from another platform.

A developer will keep changing it

The site belongs to someone who writes code for a living, so the foundation is plain Astro components with a clear structure that he can read, extend and has since developed himself.

Two languages and two themes from day one

The site ships in English and Ukrainian, each with its own URL and hreflang tags, and a light and a dark theme that the visitor can switch.

The page should show how he works

A full-stack developer's site can say it through the page itself: a résumé that is also a shell, and a panel that puts a Laravel route beside the Vue component that calls it.
Terminal

The résumé is a shell.

Everything below the hero is also a shell: type about, stack, experience, projects or contact, press Tab to complete and ↑ for history. The theme and lang commands switch light and dark and English and Українська.
The Run the résumé terminal — a card listing backend, frontend, data, tooling and workflow, above a help command that lists about, stack, experience, projects, contact, theme, lang and clear
Both halves of one feature

A Laravel route beside the Vue component.

Most teams hand a feature from backend to frontend and lose something at the seam. The panel puts the server code on one side and the client code on the other, and the visitor drags the seam between them. It reads the same in both themes.
The seam panel in the dark theme — a Laravel routes/api.php route on a warm server half, the ProjectList.vue component on a green client half
The seam panel in the light theme — the same Laravel route and Vue component on pale coral and pale green halves
First visit and themes

A boot screen that knows when to stay out of the way.

The first visit of a session opens on a short boot sequence — a counter to 100 and a few log lines — and it is skipped for visitors who ask for reduced motion and for the rest of the session once it has played. The light theme keeps the same layout and the same shader.

The boot screen — a counter at 100 and four log lines ending in ready, on a near-black background
Kyrylo Savenkov's site in the light theme — the same wordmark and photo pill on a warm off-white page
What we built

One page, seven blocks, two languages.

The structure, the layout and the components of the site, in Astro. The content and everything built on top since belong to Kyrylo.

01

Hero

The name as an oversized wordmark with a photo pill, the role, a one-line pitch, the local time in Kyiv and an ASCII shader behind it all.

02

Terminal

“Run the résumé”: a shell with about, stack, experience, projects and contact commands, Tab completion and history, and theme and lang commands.

03

Both halves of one feature

A draggable seam between a Laravel route on the server side and the Vue component on the client side.

04

Experience

The career as a git log: commit hashes, branch lines and tags for server, client and both halves.

05

Projects

A list ready for case studies, with a note that they are coming soon.

06

Contact

“Let’s build.” A copy button for the email address, Telegram and a Work with me button.

07

Ukrainian version

The whole site again at /ua/, switched from the header, with hreflang pointing both ways.

On a phone

The same page, one column.

The wordmark scales down, the header collapses to the initials and a bottom bar holds the language, theme and Work with me controls.
Kyrylo Savenkov's site on a phone in the dark theme — the wordmark, the role and a bottom bar with UA, a theme toggle and Work with me
The Experience section on a phone in the light theme — a git-log style list with commit hashes and branch lines
Outcome

Delivered, then his to develop.

We handed over the design and the Astro foundation. Kyrylo has built on it himself since, and the footer of the live site credits 99 Francs Agency.

2

languages

English and Ukrainian, each on its own URL.

2

themes

Light and dark, switched with one button or the theme command in the terminal.

1

codebase he owns

Kyrylo has developed the site further himself since we handed over the foundation.
Astro development

Need a fast website you can keep building on?

We design and build Astro sites that ship as static pages, and move WordPress, Webflow and Framer sites to Astro. You get the code and the freedom to extend it.

Astro · Static-first · EN + UK · Kyiv · Ukraine
Case study FAQ

Questions about the Kyrylo Savenkov website.

99 Francs designed the personal site of Kyrylo Savenkov, a full-stack developer in Kyiv, and built its Astro foundation: the structure, layout and components. Kyrylo has developed the site further himself, and its footer credits 99 Francs Agency.

No. Kyrylo had no website before, so this is a new site. If you already have a site on WordPress, Webflow or Framer and want it on Astro, that is a separate service: migration to Astro.

Kyrylo does. We delivered the design and the Astro foundation, and he has built on it since, which is why the site is plain Astro that a developer can read and change.
Yes. Its HTML names Astro v5 as the generator and loads its assets from /_astro. It is served as static pages by nginx, with JavaScript for the interactive parts: the terminal, the theme switch, the shader and the split panel.
Yes. There is an English version at the root and a Ukrainian version at /ua/, linked to each other with hreflang tags, and the language can be switched from the header or with the lang command in the terminal.

Yes. We build fast static-first websites in Astro and move sites to Astro from WordPress, Webflow and Framer. See Astro development and migration for what we build, what it costs and when Astro is not the right choice.

Start a project

Planning something similar?

Tell us what you are building and we'll reply within 24 hours on business days.
Prefer to talk? Book a free intro call.

By sending this you agree to our Privacy Policy.