Why I Started This Project

Two reasons.

First, personal branding in the AI era.

It's been two years since ChatGPT launched. Now anyone can write decent prose, generate code, and create designs. Paradoxically, in such an era, I felt the need for a space to prove "who I am." A single resume or a few PowerPoint slides aren't enough. I needed my own space to showcase the depth of my thinking, the breadth of my interests, and my perspective on problems.

Second, I just enjoy building things.

I could have set up a blog on Medium or Substack in five minutes. But living as a tenant on someone else's platform felt constraining. I wanted full control over how my content looks and feels. So I decided to build my own house.

GIF

Development Context

  • Duration: 3 days (after work + weekend)

  • Investment: Vercel Pro subscription, domain costs

  • Coding experience: I know JavaScript and Java are different languages. That's about my level.(LoL)

Experiencing the Power of AI

Honestly, what shocked me most about this project wasn't the result I built—it was the capability of AI.

Three days. Someone who barely knows how to code. Built a full-stack blog with a custom editor, dark mode, PWA support, and an admin dashboard. This would have been impossible two years ago.

I used Claude, Gemini Pro, ChatGPT, and Antigravity in combination, depending on the situation.

Tool

Usage

Claude

Code architecture design, complex logic implementation, debugging. Excellent at understanding context with precise explanations.

Gemini Pro

Rapid prototyping, idea brainstorming. Sometimes offers unexpected approaches.

ChatGPT

Documentation, error message interpretation, general development questions.

Antigravity

No-code platform for non-developers. Used for initial structure.

I learned that each AI has different strengths. Claude excels at deep code work, Gemini at divergent thinking, and ChatGPT at general-purpose queries. Orchestrating them together allowed me to produce something respectable on my own.

Key Features

Custom Rich Text Editor

A WYSIWYG editor built on Tiptap. Supports autosave, slash commands, bubble menus, and image/video embedding. I believed the writing experience itself needed to be pleasant to encourage consistent writing.

Design System

Defined design tokens based on SCSS variables, applied consistently across the site. Implemented dark mode that follows system preferences. Responsive layout designed mobile-first.

PWA Support

Made the site installable as a Progressive Web App. However, I disabled the install prompt on first visit as I felt it hurt UX.

Admin Dashboard

A private area for managing posts, drafting content, and viewing analytics. Secured with JWT-based session management.

Tech Stack

Layer

Technology

Rationale

Framework

Next.js 14 (App Router)

SSR for fast loading and SEO optimization

Database

Vercel Postgres

Serverless, auto-scaling, minimal configuration

Styling

Sass (SCSS) Modules + CSS Variables

Modular styling with global theming

Editor

Tiptap (ProseMirror-based)

Full customization capability

Auth

Jose (JWT) + Bcrypt

Lightweight self-managed auth, minimal external dependencies

Deployment

Vercel

Automated CI/CD, global edge caching

Challenges & Lessons

1. The Importance of Environment Isolation (The Database Leak)

Early in development, test posts created locally started appearing on the production site. The cause: my local environment was connected to the production database. I completely restructured the environment variable architecture and added explicit environment verification logic to the database connection.

Lesson: Dev/Prod environment separation must be established early in the project. Fixing it later is costly.

2. Responsive Image Handling

When resizing images in the editor, inline styles with fixed values were applied, breaking layouts on mobile viewports. I forced max-width: 100% and height: auto in CSS while maintaining aspect-ratio.

Lesson: Don't trust the markup generated by the editor. Apply defensive styling at the rendering layer.

3. Recognizing the Limits of AI Collaboration

AI isn't omnipotent. Large-scale refactoring is particularly risky. When trying to restructure multiple files at once, the AI loses context and existing functionality can break. It's safer to make incremental changes in small units.

Insights

Development in the AI era is a combination of "prompt engineering + architecture understanding."

The ability to write code line by line matters less than the ability to design the overall structure and give clear instructions to AI. Like an orchestra conductor.

The era of solo development has arrived. But.

Building something, operating it, and making money from it are entirely different domains. AI has lowered the barrier to development, but creating a good product remains difficult.

Personal branding is no longer optional.

In an era where AI churns out generic outputs, differentiation comes from "your unique perspective." Having a space to accumulate and showcase that perspective will be a significant long-term asset.

GIF

Closing

Three days. Less than 100 hours.

Is it perfect? No. There's a mountain of things to fix. But now I have a space for my thoughts. And the fact that I built it with my own hands feels pretty satisfying.

With AI, if you have an idea, you can build it. Of course, you still need googling skills, the ability to ask good questions to AI, and the persistence to keep going until it works.

In my next post, I'll dive deeper into how I actually combined these AI tools in practice.