About This Project

About "Hackers & Albums": An Indie Dev's Exploration in the Age of AI

A Product Manager "messing around," on an indie development exploration powered by vibe coding.

What you're looking at is, first and foremost, a public experiment, and only secondarily, a product.

To be honest, in terms of features, it's nothing extraordinary—no disruptive innovations, no hyper-complex business logic. And in terms of content, what's displayed here is merely the daily life captured through the lens of an amateur, not the masterworks of a world-renowned photographer.


So, what is the value of this project, then?

For me, its greatest value lies in being a complete, documented journey of a novice indie developer in the age of AI, exploring, learning, and ultimately succeeding in building a production-grade product that I actually use myself. I have unreservedly organized all the thoughts, all the pitfalls, and all the lessons learned from this journey into the series of tutorials on this website.


The Origin: "A Hundred Thoughts Are No Match for One Action"

In the current AI explosion, my social media feeds are flooded daily with hot takes like "AI can do anything" or "generate xxx with a single sentence." I'll admit, I was intrigued, but also skeptical: could the complex systems of traditional software engineering, built up over decades, really be overturned by a single sentence?


I've always felt that consuming secondhand information is like trying to scratch an itch with your boot on. You can't truly understand what's inside the black box. The most efficient way to investigate something new is always to get your hands dirty and try it yourself.


At the same time, as a photography enthusiast, I've always had a pain point: when I want to share my daily photos with friends, posting them on social media platforms often results in heavy compression that ruins the details.


And so, these two ideas clicked: why not build an "online album" for myself? With that, this project was born.

  • For myself: It solves a real pain point and becomes a product I will use long-term.
  • For my learning: Aiming for a production-grade project makes all the scattered knowledge points (be it Next.js, databases, or deployment) become three-dimensional and grounded in real-world scenarios, which dramatically increases learning efficiency.
  • For my exploration: It's the perfect "testbed" for me to personally get in the trenches and deeply experience the true capabilities of AI Coding.


The Collaboration: How We Divided the Labor

"Grasp with both hands, and grasp firmly." This classic saying perfectly encapsulates the division of labor between me and the AI in this exploration.

  • The "Visible" Parts — AI-Led Over 95% of the code, the first drafts of the blog posts, and the captions for the photos in this entire project came directly from the AI. It was my incredibly capable and tireless "executive co-pilot."
  • The "Invisible" Parts — Developer-Steered All the "directional" decisions were made by me. This includes defining the core product requirements, designing the technical architecture, course-correcting during development, and decomposing complex problems into executable tasks for the AI. I was the "captain" of this ship.

The captain is responsible for seeing the destination and charting the course; the co-pilot is responsible for precisely executing every command and handling most of the specific tasks during the voyage. This human-machine collaborative model was the theme throughout the entire project.

For more details on our specific collaboration, the pitfalls encountered, and the best practices I summarized, you can find an in-depth retrospective in the article "AI Co-Development: The Art and Contemplation of Human-Machine Collaboration"


The Result: What Did We Actually Build?

After this journey, we co-created a digital product that is feature-complete and has a decent user experience.


Its "Engine" and "Skeleton" (The Tech Stack):

  • Built on the latest Next.js App Router architecture.
  • Integrated with Clerk for enterprise-grade login authentication.
  • Integrated with Sanity as a flexible Headless CMS.
  • Integrated with Neon for Serverless Postgres database services.
  • Integrated with Sentry for comprehensive error and performance monitoring.
  • Deployed on Vercel, enjoying modern CI/CD and a global Edge Network.
  • Designed with a modern three-layer caching architecture (Cloudflare, Next.js, Sanity).

Its "Features" and "Experience" (The Product Capabilities):

  • An online photo album that supports a Masonry layout and an immersive Polaroid-style preview experience.
  • A globalized application with internationalization (Chinese/English) support from day one.
  • A mini community system supporting likes, comments, and replies, complete with a full backend anti-spam and content moderation mechanism.
  • A personal blog that supports real-time Markdown preview and one-click sync to Sanity.
  • A complete data tracking and reporting system, laying the groundwork for future data-driven iterations and smart recommendations.
  • An enterprise-grade security strategy, from hotlink protection and API rate-limiting to a secure proxy router, to protect personal digital assets in all aspects.
This is not a toy project. Every part of it was built to a production-grade standard. The complete record of the building process has been documented in the Development Logs. All the code has also been made open-source on GitHub.

A Tribute to "Hackers & Painters"

Finally, I'd like to talk about the origin of this site's name—「Hackers & Albums」.

It's not because my development skills are particularly "hacker-like" or my photography particularly "artistic"—quite the opposite. The name is my personal, deep tribute to Paul Graham's classic book, "Hackers & Painters". This book has profoundly shaped my values regarding technology.


There's an idea in the book that I believe shines brighter than ever in today's AI explosion:

Hackers are makers, like painters or architects or writers, who are trying to write interesting software, and for whom computers are just a medium of expression, as concrete is for architects or paint for painters.


In the past, only a few "painters" (developers) who had mastered the complex techniques of the "paintbrush" (coding ability) could turn the ideas in their minds into reality. Today, AI is becoming that incredibly powerful "paintbrush" in all of our hands. It allows us to focus more on what to paint and why to paint it, rather than getting overly bogged down in how to paint.

This, perhaps, is the most precious gift the age of AI has given to every one of us independent creators.

I am passionate about sharing knowledge & experience with fellow independent developers who love technology. For this reason, the source code for this site and all articles in the tutorial series are licensed under the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0 license. In simple terms, you are free to learn from, modify, and share these materials, as long as you follow the principles of Attribution, Non-Commercial use, and ShareAlike.


However, I ask that the photographic works displayed on this site be treated with a greater degree of respect. They are authentic records of my personal life, imbued with unique emotions and memories. Therefore, these photographs are All Rights Reserved by default, and any form of commercial use is strictly prohibited. If you particularly enjoy a photograph and wish to share it for non-commercial, personal purposes (such as on a personal blog or social media), I kindly ask that you please credit the author and provide a link back to this site. For any commercial collaboration inquiries, please contact me directly.


Thank you for your understanding and respect.


Edison

The last day of August, 2025

Edison - Profile Photo