col•o•phon | ˈkäləfən, ˈkäləˌfän |

historical. a statement at the end of a book, typically with a printer’s emblem, giving information about its authorship and printing.

When I was a kid, I’d sometimes build little websites from scratch—just for fun, usually using an online website creator. I’d find some cute photos online to spruce them up, share them with my family and friends, and write funny blog posts to put on them. My first website from scratch was for my high school’s poetry club, which I’d founded. I wanted somewhere to put our poems, and I had a vision in my head of what I wanted the site to look like. So, I built it. I ended up turning some of those poems, and many more, into a physical poetry anthology that we published at the end of the year.

That poetry showcase, written from scratch in Next.js, forms the basis of this website. Over time, the codebase has evolved through major styling and backend changes, as well as web framework developments like the introduction of the Next.js App Directory and the adoption of the :has() selector in CSS. Some things are still the same—the site footer a clear copy—and the general ethos hasn’t changed: a clean place to publish whatever I create.

This site is a labor of love. There are many challenges I’ve given myself while writing it beyond what was needed: for example, I made it a rule that everything would work without client-side Javascript. That requirement may seem reasonable for a personal website, but it’s come with interesting challenges: all the sidebars are created in pure CSS, and there’s even support for stacking one sidebar on another. For optimization, there is a lot of server-side rendering: automatically generated tables-of-contents, an Integrated Fileserver for all media on the site, sitemaps and article indexes, metadata, OpenGraph images, Markdown rendering, and advanced footnotes and references are supported, all computed at build-time. For my drafts, an authentication system exists. There are also some very advanced CSS styles, reducing the need for custom per-page tweaks. From my love of publishing, I’ve made it a requirement that every page print well, so there are many custom parameters for that too.

I hope you enjoy it.

Sincerely,

Siddharth M. Bhatia

    Page Info
  • Privacy
  • Format