- TypeScript 83.8%
- CSS 15.6%
- JavaScript 0.6%
Reuse stays wide open; making money from it does not. Restructures the licence around two named conditions instead of one, so neither can be missed: Section 4 is attribution, Section 5 is non-commercial. Everything after shifts down a number and all cross-references were re-checked against the new headings. Commercial Use is defined rather than left to instinct (§1): selling or charging for access, shipping it inside a paid product, using it in a client engagement, carrying ads or affiliate links, or using it to market a business. Explicitly not commercial: private and personal use, study and teaching, and a personal portfolio or CV site that sells nothing and carries no advertising — a job-seeker's own page stays inside the grant. Genuinely unclear cases resolve as commercial, and Section 13 says to ask. §5.2 closes the obvious routes around it — a fork, a rewrite in another framework, a contractor, a subsidiary, or an unpaid sample that leads to paid work. §5.3 covers a use that starts personal and later turns commercial. §6.2 now bars repackaging as a template whether or not money changes hands, since a free giveaway hollows this out just as well. Commercial terms still exist. They are just not this file. |
||
|---|---|---|
| public/fonts | ||
| src | ||
| .gitignore | ||
| colors.md | ||
| eslint.config.mjs | ||
| LICENSE | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| README.md | ||
| tsconfig.json | ||
Arka
Backend developer. Founder of Setka.
A single-page portfolio, printed like a dossier: ink covers, paper body, one violet, and nothing that phones home.
Static export · 5 runtime dependencies · zero third-party requests · zero cookies
What this is
The personal site of Arka — a backend developer from Cambrai, France, and the founder of Setka, a studio that designs, builds and hosts websites where security and privacy are the product rather than a line item.
All of my work runs through Setka. The site says so plainly, in six numbered sections, and then gets out of the way.
"I build what has to hold."
The sections
| § | Section | What lives there |
|---|---|---|
| 01 | Opening | Ink cover plate. Name, role, and the one-sentence version of everything below. |
| 02 | Setka | What the studio is, what it does, and the three clauses of the pledge it never negotiates. |
| 03 | About | The route from HTML in 2023 to backend work in 2026, plus how I actually work. |
| 04 | Work | A dated ledger of what I've built — opened by one entry that stays under seal. |
| 05 | Craft | Thirteen tools in three columns, one line each on why it earned a place. |
| 06 | Contact | One address. No form — forms need storage, and storage fills up with other people's data. |
Design
The whole page is driven by one token file: src/app/colors.css,
documented in colors.md. One brand hue — violet #9D4EDD —
against a violet-tinted neutral scale.
- Paper (
#FBFAFC) is the body of the document. - Ink (
#16131F) is reserved for the opening, the sealed entry, the 404 and the colophon. - Every band runs full width, edge to edge. Nothing is laid permanently over an ink section, so no element ever has to guess what colour the surface behind it is.
- The
.inkclass re-points the palette to its dark-surface values, so every utility keeps working inside a dark band without a single conditional in the markup. - Type is Monocraft throughout, with Green Energy kept for exactly one word.
- Contrast is audited: body text 10.5:1, muted 4.7:1, and violet only used small where
it is
--violet-700.
Engineering
The site is a static export. It ships HTML, CSS, and a small amount of JS for three client components — the masthead, the scroll hairline, and the reveal-on-scroll wrapper.
Framework → Next.js 16 (App Router, output: "export")
Language → TypeScript 5 (strict)
Styling → Tailwind CSS 4, tokens from colors.css
Motion → IntersectionObserver + CSS keyframes
Deps → clsx · tailwind-merge · next · react · react-dom
What it deliberately does not have:
- No analytics, no telemetry beacon, no third-party scripts
- No cookies and no local storage
- No runtime API calls — nothing is fetched from a forge, a chat platform, or anywhere else
- No animation library, no command-palette library, no icon package
- No contact form, and therefore no form storage
Every one of those was in the previous version of this site. Removing them made the page faster and made it consistent with what Setka sells.
Project structure
src/
├── app/
│ ├── colors.css # the palette — single source of truth
│ ├── globals.css # tokens → Tailwind theme, plus the editorial utilities
│ ├── layout.tsx # fonts, metadata, JSON-LD, page shell
│ ├── page.tsx # section composition
│ └── not-found.tsx # ink 404
├── components/
│ ├── layout/ # Nav (masthead + mobile bar), Footer
│ ├── sections/ # Hero · Setka · About · Work · Craft · Contact
│ └── ui/ # Reveal, ScrollProgress, SetkaMark
├── hooks/
│ └── useSectionSpy.ts # active section via IntersectionObserver
└── lib/
├── sections.ts # canonical § numbering
└── utils.ts # cn()
Running it
Requirements: Node.js ≥ 20, npm.
git clone https://git.setka.dev/arka/arka-portfolio.git
cd arka-portfolio
npm install
npm run dev # → http://localhost:3000
npm run build # → static export into ./out
npm run lint # → ESLint
There are no environment variables. There is nothing to configure. ./out is a
folder of files — serve it from anywhere that can serve files.
Deployment
Hosted by Setka, on Setka infrastructure, like everything else I build.
The repo carries no CI pipeline and no platform-specific configuration on
purpose: npm run build produces ./out, and the hosting side owns what
happens to it from there.
Licence
The Arka Portfolio Licence v2.1 — see LICENSE. Not open source. Owned, and lent on terms.
You may read it, learn from it, and build your own work on top of it — including using it wholesale as your base. Two conditions.
1 · Credit me. Anything you publish based on this must carry a visible credit, reachable in one step from the home page:
Based on the portfolio of Arka © 2024–2026 Arka — https://git.setka.dev/arkaReal and rendered — not an HTML comment, not
display: none. Keep the LICENSE file and the copyright notices intact.2 · Don't make money from it. No selling it, no client work, no ads, no using it to sell something else. A personal portfolio or CV site that sells nothing is fine; a business site, an agency deliverable or a paid template is not.
Also replace the personal content — my name, biography, contact details, and everything belonging to Setka are outside the licence. Private use carries no obligation at all.
Want it commercially? Ask. That licence exists, it just isn't this one: contact@setka.dev.
Work with me → contact@setka.dev
Every engagement runs through Setka. There is no second door.
© 2026 Arka · Sealed by default