I build modern, scalable, and suspiciously beautiful web experiences. The moon is not a dependency.
Personal portfolio of apobyte, a full stack developer. By night the site is a rain-soaked lantern street under a purple moon. By day the same street wakes up under cherry blossoms. Pages are static Astro. The pieces that need a browser β theme, project filters, and the contact form β are React islands.
See it live: apobyte
Night mode. The moon is doing the heavy lifting. π
A few notes for anyone scrolling through:
- β Welcome. Wipe your feet. The street is wet on purpose.
- πΈ The petals are not a bug. They have a schedule.
- π If the page bows before it appears, that is the loading screen being polite.
- βοΈ Light mode is for people who open laptops near windows. The sun is optional. The code is not.
- π The skills page calls itself a grimoire. Your stack is probably in there, wearing a little seal.
- ποΈ The project filters exist so you can pretend you are not going to click all of them.
- π¬ The contact form says thank you, then admits it does not email anyone yet. A real human still reads the address on the page.
- π Copying this site will not make you apobyte. It will make you late, and it will make you wrong. The license is at the bottom. It is not a joke.
This is a one-person site with a whole street of atmosphere.
The home page is a short hello, a strip of featured skills, and a door into the work. About is the biography and the jobs. Skills is arranged like a spellbook: schools, seals, and named stacks such as MERN and PERN. Projects is a filterable gallery β web apps, CMS, dashboards, and tools β and each one carries a stack, a few features, and screenshots. Blog is short field notes. Contact is email, phone, and a form that currently lives entirely in the browser.
Flip the theme and the alley turns into daylight. Same torii. Fewer existential moons. Sakura still falls, because some habits are structural.
| π Home, after dark | πΈ Home, in the sun |
|---|---|
![]() |
![]() |
| π Projects at night | βοΈ Projects at noon |
|---|---|
![]() |
![]() |
- π Astro 7 for pages, layouts, view transitions, and static output
- βοΈ React 19 for client islands (
client:load) - π TypeScript, strict
- π’ Node.js 22.12 or newer
Fonts are self-hosted β Outfit, Kaushan Script, and a set of Japanese display faces β so a cold browser still gets the right letters.
npm install
npm run devThen open http://localhost:4321. Try not to get lost under the torii. β©οΈ
| Path | What you get |
|---|---|
/ |
Home β intro, featured skills, the alley |
/about |
About and experience |
/skills |
The grimoire, plus stack pacts |
/projects |
Filterable project gallery |
/blog |
Notes, one page each at /blog/[slug] |
/contact |
Email, phone, and the honest little form |
Header, footer, theme, loading screen, and the sakura overlay come from src/layouts/BaseLayout.astro.
| File | It controls |
|---|---|
src/data/site.ts |
Name, role, tagline, email, phone, socials, nav |
src/data/experience.ts |
Work history |
src/data/skills.ts |
Skills, schools, featured seals |
src/data/stacks.ts |
Named stacks on the skills page |
src/data/projects.ts |
Cards, filters, features, image paths |
src/data/blog.ts |
Titles, dates, excerpts, paragraphs |
Screenshots and icons sit in public/images/ and public/icons/.
React only wakes up where the page needs a brain:
<ThemeToggle client:load />
<ProjectGallery client:load projects={projects} />
<ContactForm client:load />The contact form confirms in the browser and does not send mail. Theme follows localStorage (theme) and otherwise trusts the system.
| Command | Action |
|---|---|
npm run dev |
Start the local dev server |
npm run build |
Build production output to ./dist/ |
npm run preview |
Preview the production build locally |
Copyright Β© 2026 apobyte. All rights reserved.
This portfolio is not a starter kit. The design, layout, copy, animations, and original artwork belong to apobyte.
You may look. You may not copy.
No cloning this repo to reskin it as your own site. No lifting the pages, the CSS, the components, the writing, or the images into another portfolio, product, or client job. Changing the colors does not make it yours. Written permission, or it stays here.
Astro, React, and the other dependencies keep their own licenses. Those licenses do not cover this portfolio.
The full notice is in LICENSE.



