arjunkuttikkat.com

The site you are reading: a public record of what I build, how the products work, and what I learned making them.

Live2025 to presentDesign and engineering

TL;DR

  • The site is open source under the MIT License, so its implementation and history can be inspected on GitHub.
  • This site exists so the work has one legible record instead of being rebuilt from links and messages in every conversation.
  • Project pages are records, not summaries: each one gets its own story and length, so a platform and a weekend prototype are not flattened into the same template.
  • Design rules are few: Inter everywhere, colour kept to the edges of a black surface, motion only on entry, and real screenshots instead of invented diagrams.
  • Next.js App Router, prerendered at build time. Projects are typed data, posts are MDX validated with Zod, and one newsletter endpoint is the only dynamic route.
  • Deployed continuously, MIT licensed, and rewritten whenever the status of the work changes.

Open source

If you did not know, this site is open source.

The complete implementation is public under the MIT License, including the project-page system, MDX publishing pipeline, terminal, analytics integration, and SEO infrastructure. You can inspect the decisions, follow the history, or reuse parts of the system in your own work on GitHub.

Why it exists

I was rebuilding the same context in every conversation.

What I was working on lived across links, messages, old project descriptions, and explanations written for a particular person. Someone could see one piece without understanding how it connected to the rest. The work was real; the record of it was fragmented.

I built this site to become the link that replaces that conversation. It should tell someone what I am building now, show enough evidence to understand the work, and let them go deeper without needing me to guide them through it.

The site is not meant to make the work look impressive. It is meant to make the work legible.

What changed

Project pages became records instead of summaries.

The first version treated every project the same: a title, a description, a stack, and a few repeated sections. That was efficient, but it flattened the difference between a platform I have spent months building and a prototype made over a weekend.

The current system gives each project its own story and length. Edgaze can explain the product, execution system, money flow, and difficult decisions. A hackathon project can show one idea, the path through it, and where the prototype stopped. Shared components keep the typography and spacing consistent without forcing the content into the same template.

Design

The rules are intentionally few.

01

Let type do most of the work

The site uses Inter everywhere. Scale, weight, spacing, and contrast create the hierarchy; borders appear only when one piece of information needs to be separated from another.

02

Keep colour at the edges

Cyan and magenta appear as low-contrast light around the black surface. The work stays readable in white and zinc rather than competing with a different gradient in every section.

03

Use motion to move attention

Sections reveal once as they enter. Project backgrounds drift with scroll. The terminal and projects index can be explored, but nothing animates simply because the page is idle.

04

Show the artifact when one exists

The Edgaze page uses the actual Studio, marketplace, and product interface. Engineering sections use the real system and the real services instead of decorative code or invented diagrams.

Engineering

Static where possible, structured where it helps.

The site runs on the Next.js App Router. Pages are prerendered at build time; the newsletter subscription is the only dynamic endpoint. Projects live as typed data, blog posts live as MDX, and a technology registry maps each stack entry to one logo and one source instead of repeating that information across pages.

The publishing path is intentionally small. Frontmatter is validated with Zod before a post can build. The same metadata produces reading time, related posts, the RSS feed, sitemap, and article metadata. That keeps the public surfaces in agreement without adding a CMS for a site maintained by one person.

JavaScript is reserved for things that need interaction: the terminal, project index, blog filters, newsletter form, and restrained reveal motion. Everything else is ordinary server-rendered HTML.

Stack

Content

remark-gfm, rehype-slug, autolinked headings, Shiki highlighting through rehype-pretty-code.

Newsletter

Delivery

Where it stands

Live, and changed whenever the work changes.

The site deploys continuously from the repository and is MIT licensed. Projects are rewritten, archived, or shortened as their real status changes. That is the point of keeping it as a public record rather than a finished portfolio frozen around one moment.