Hand written front end, a small serverless function behind it. The contact form is not a decoration: it posts to POST /api/contact, the function checks every field, then emails the note straight through.
Set by hand, in public.
No shipped products yet. One real site, a stack I'm still growing, and the habit of finishing what I start. I learn in the open. The corrections still show, and I would rather you see them than a version that pretends they were never there. Based in Sri Lanka, open to a first role or an internship. Redlines welcome.
What I'm set in.
-
01HTMLsolid ink
Can: Structure a page with clean, semantic, accessible markup.
Still rough: I still check a reference for the rarer elements.
-
02CSSsolid ink
Can: Build responsive layouts with flexbox and grid.
Still rough: Getting animation timing right takes me a few passes.
-
03JavaScriptinked
Can: Handle events, fetch data, and update the DOM by hand.
Still rough: Async edge cases and scope still catch me out.
-
04Responsive designinked
Can: Hold a layout from 360px up to a wide screen.
Still rough: I lean on media queries more than intrinsic sizing.
-
05Node.jsstill wet
Can: Run a small server and read and write a JSON file.
Still rough: Streams, real error handling, and deploys are new ground.
-
06Expressstill wet
Can: Define a route and handle a POST end to end.
Still rough: Middleware, validation, and auth are next on the bench.
density = how far along, honestly. still wet = I'm on it now.
The one thing that's real.
No portfolio of shipped work to point at, so I will point at this. The site you are reading is the project.
Queued next, not printed yet: a small project that talks to a database instead of a flat file.
Send a note to the press.
This form posts to the same backend the rest of the site runs on. Say hello, or tell me what you would fix.