12 Nov 2022 · 6 min read
Kecil, part 4 - frontend
npm i express body-parser ejsExpress serves, EJS renders. For the look I used SkyDash, a free Bootstrap admin template from BootstrapDash, and copied its css, js, fonts, images and vendors folders into /public.

Frame first, pages second
Before building any page I strip the template's dashboard down to an empty frame: sidebar, navbar, footer, and a blank content area. Every new page is then a copy of the frame plus content. It sounds obvious and it saves the entire project from drifting into five slightly different layouts.


The pages
- Home - the shorten form and the user's list of links
- Settings - account details and password change
- Auth - login, register, forgot password, reset password
- Error - one page, parameterised by status code






At the end of the part the server renders static HTML with no data behind it. That is fine. Wiring comes in part 6.