22 điểm bởi GN⁺ 2025-05-30 | 3 bình luận | Chia sẻ qua WhatsApp
  • Có lẽ ai đó đã có thể làm website của tôi trông đẹp hơn, nhưng như vậy thì nó đã không còn là của tôi nữa
  • Cá tính của một website đến từ gu thẩm mỹ, sự ám ảnh và dấu tay trực tiếp của người tạo ra nó
  • Theo đuổi sự đơn giản và cảm giác gần gũi, tôi giảm thiểu CSS và JS, đồng thời áp dụng các quy tắc biến thể CSS trực tiếp để tạo ra cảm giác hỗn độn, lặp lại và chất thơ như một hiệu sách cũ
  • Website được thiết kế để phản hồi tương tác của người dùng chỉ bằng CSS, với đặc trưng là chất cảm mộc mạc và những thay đổi bất ngờ
  • Website liên tục thay đổi, lớn lên và biến hình cùng chủ nhân của nó, khiến “cái xấu” của riêng mỗi người sống động theo cách riêng

Website do tôi làm, và ý nghĩa của cái xấu đó

  • Nếu mẹ tôi muốn dán một bức tranh đẹp lên tủ lạnh, hẳn bà đã sao chép tranh của những họa sĩ nổi tiếng như Vermeer, Lichtenstein hay Wyeth để dán lên
  • Nhưng điều mẹ tôi muốn không phải thứ nghệ thuật đó, mà là bức tranh do chính tôi vẽ
  • Một nhà thiết kế có gu hoàn toàn có thể làm site của tôi đẹp hơn, nhưng làm vậy thì nó sẽ không còn là của tôi nữa
  • Có người muốn tự trồng lúa mì, khai thác muối và nuôi cấy men để nướng bánh, nhưng tôi thì không
  • Khẩu vị còn vụng về của tôi hài lòng với việc ăn thật nhiều breadstick của Olive Garden
  • Những sở thích như thế bắt nguồn từ cảm giác sở hữu khác nhau ở mỗi người
  • Vì những lý do của riêng mình, ai cũng đang tự trang hoàng không gian Internet của chính họ

Sự tồn tại của nhiều kiểu web cá nhân

  • Mọi hành động ấy đều bắt nguồn từ động lực nội tại và khao khát rằng “nếu không phải tôi thì sẽ không ai làm được”
  • Tôi không có động lực để làm bánh, dựng server hay chế tạo chip, nhưng khao khát ấy lại bộc lộ qua hài hước, hệ thống, phần mềm và cấu trúc
  • Khi cảm xúc trở nên quá mạnh, nó bùng ra thành tiểu thuyết, HTML/CSS, robot tồi tàn, những bài hát buồn
  • Vì thế website của tôi là của tôi

Sự cùng tồn tại của đơn giản và cá tính

  • Trước đây tôi chỉ muốn sự đơn giản và cảm giác thân thiện
    • Loại bỏ nhiễu
    • Nhấn mạnh tương phản sáng tối
    • Giảm độ sâu của menu
    • HTML nhàm chán
    • Tối giản CSS
    • Tránh JS v.v.
  • Website của tôi năm 2023 là như thế này (xem hình trong bài gốc)

Thiết kế hỗn độn và câu chuyện CSS

  • Đến một lúc tôi quyết định dùng không gian ngang rộng hơn, và vấn đề bắt đầu từ đó
  • Kế hoạch ban đầu rất đơn giản: áp dụng flex-wrap cho ul
  • Nhưng vì văn bản cũng bị xuống dòng, ranh giới giữa các liên kết trở nên không còn rõ ràng
  • Có người đọc nó như inline, cũng có người cảm nhận nó như inline-block
  • Tôi cũng thử tăng thêm khoảng trắng, thêm viền quanh từng liên kết, hoặc chèn dấu chấm giữa các liên kết, nhưng đều không thấy ưng ý
  • Vì vậy tôi chọn cách thêm biến tấu cho các liên kết

  • Sự hỗn độn trên trang chủ thực ra đến từ một vài quy tắc đơn giản

    li:nth-child(4n + 0) { transform: rotate(1deg); }  
    li:nth-child(4n + 1) { transform: rotate(-0.6deg); }  
    li:nth-child(4n + 2) { transform: rotate(0.5deg); }  
    li:nth-child(4n + 3) { transform: rotate(-0.75deg); }  
    li:nth-child(6n + 0) { font-family: Times; }  
    li:nth-child(6n + 1) { font-family: Helvetica; }  
    li:nth-child(6n + 2) { font-family: Georgia; }  
    li:nth-child(6n + 3) { font-family: Times; }  
    li:nth-child(6n + 4) { font-family: Arial; }  
    li:nth-child(6n + 5) { font-family: "Trebuchet MS"; }  
    
  • Ban đầu tôi dùng các số nguyên nguyên tố cùng nhau (coprime integer) để tạo thêm nhiều biến đổi, nhưng rồi chính sự tinh tế của mẫu lặp lại lại khiến tôi thích hơn

  • Tôi yêu chủ nghĩa tối giản, nhưng ghét cảm giác lạnh lẽo
  • Để thể hiện chất cảm ấm áp như một “hiệu sách cũ”, tôi thêm vài yếu tố CSS gây bất ngờ
    li:nth-child(5n + 2) { font-weight: 100; }  
    li:nth-child(7n + 2) { letter-spacing: -1px; }  
    li:nth-child(41n + 31) { transform: rotate(181deg); }  
    
  • Web vẫn là một phương tiện tương tác, nên tôi muốn nó phản ứng với chuyển động con trỏ ngay cả khi không dùng JS
  • Nhờ CSS dưới đây, tôi tạo ra cảm giác như “chạm vào cỏ
    li:nth-child(2n + 0):hover { transform: rotate(-2deg); }  
    li:nth-child(2n + 1):hover { transform: rotate(2deg); }  
    
  • Nhờ đó website phản hồi theo thời gian thực với chuyển động con trỏ
  • Và vì tôi muốn nhấn mạnh cảm giác cuộn mà không cần scrolljacking, tôi làm cho trang trông như “giấy” bằng nền có texture
  • Dùng css-doodle để ghép texture
    svg {  
    viewBox: .5 .5 10 10;  
    fill: #000;  
    circle*1000 {  
      cx, cy: @r(10), @r(10);  
      r: @r(.005, .01);  
      }  
    }  
    
  • chế độ sáng là cảm giác bụi giấy, còn ở chế độ tối là cảm giác sao trên bầu trời đêm
  • Website của tôi năm 2024 đã thay đổi thành như thế này (xem hình trong bài gốc)

Tôi thay đổi, website cũng thay đổi

  • Chẳng bao lâu nữa website của tôi sẽ lại đổi sang một diện mạo hoàn toàn khác
  • Bởi vì tôi là chủ nhân của website của mình, và bản thân tôi cũng luôn thay đổi
  • Rồi bạn cũng sẽ thay đổi
  • Đam mê và hệ giá trị của bạn sẽ lan sang một điều gì đó khác
  • Dù có vẻ xấu xí, tác phẩm do bạn tạo ra vẫn sẽ tiếp tục sống và chuyển động

Taylor Troesh, tác giả bài viết, là thị trưởng của taylor.town, tác giả scrapscript, và là người thưởng thức những thứ tồi tàn

3 bình luận

 
secret3056 2025-05-30

Tôi vào xem thử rồi, đúng là khó hiểu thật...

https://taylor.town/

 
tsboard 2025-05-30

Tôi rất đồng cảm sâu sắc với nội dung bài viết. Tôi cũng đang cố gắng dùng những framework do các nhà thiết kế dày công tạo ra để che giấu gu thẩm mỹ thiết kế tệ hại của mình, nhưng dù vậy tôi vẫn cứ kiên trì làm đến tận bây giờ.
Mỗi lần đều suy nghĩ về một thiết kế tốt hơn, vừa sửa cái này cái kia vừa xây dựng và vận hành, nên cũng có cái thú riêng.
Có lẽ nhờ những hoạt động như vậy mà tôi càng thấy gắn bó và cũng cảm thấy vui hơn. haha

 
GN⁺ 2025-05-30
Ý kiến trên Hacker News
  • Haha, đúng thật. Hầu hết bạn bè lập trình viên quanh tôi từ lâu đã chuyển site cá nhân sang các template có sẵn như Hugo hay Jekyll, nhưng tôi vẫn cố chấp duy trì blog của mình bằng một hệ thống do tự tay làm hết, từ CSS đến backend. Với tôi, niềm vui thật sự không nằm ở việc 'có một website', mà nằm ở 'quá trình làm ra website'. Tôi không hiểu tại sao lại phải giao phần thú vị nhất đó cho người khác. Nó giống như tự bảo dưỡng một chiếc xe cổ vậy. Tất nhiên bạn có thể mua một chiếc xe gọn gàng, bền bỉ, nhưng như thế thì chẳng còn vui nữa. Điều quan trọng không phải đích đến, mà là tôi là kiểu người theo đuổi niềm vui. Ở công ty, tôi phải dành cả ngày để làm những website mà mình không thể toàn quyền quyết định thiết kế hay tính năng theo ý thích, nên với site cá nhân của mình, tôi tuyệt đối không thể từ bỏ sự tự do được kiểm soát hoàn toàn
    • Website của tôi cũng là thứ được làm hoàn toàn bằng tay, và trong 10 năm qua tôi đã gần như làm lại nó khoảng 10 lần. Mỗi năm lại có cái thú cải tổ một chút. Có đoạn mã matrix JS trên trang chủ (bấm vào https://oxal.org có thể bạn sẽ giật mình), được build bằng Static Site Generator genox do tôi tự làm, dùng theme CSS sakura cũng do tôi tự tạo, vào blog (https://oxal.org/blog/) thì có một cyborg nhỏ đi theo bạn (ảnh nền tạo bằng chatgpt, còn sprite animation thì tôi tự làm bằng Piskel), deploy thủ công lên VPS (build bằng make), đang vận hành nhiều shell script để upload file tới các vị trí riêng tư, favicon cũng là pixel art tôi làm từ thời đại học (liên kết), từng thử tự làm font riêng nhưng bỏ cuộc rồi dùng một font lấy cảm hứng từ Naruto, và nếu dùng tính năng 'view-page-source' để xem mã nguồn thì lại có thêm một kiểu thú vị khác. Nhìn vào site của mình, tôi cảm thấy nó lưu lại dấu vết trưởng thành của tôi với tư cách một kỹ sư phần mềm, nên tôi rất trân quý tác phẩm giản dị này
    • Trang chủ của tôi (https://pablo.rauzy.name/) cũng được tự làm hoàn toàn từ đầu. Nó hoàn toàn tĩnh, chỉ dùng Bash script tùy biến và Makefile để build. Không có lấy một dòng JS. Trong lúc nghiên cứu CSS, tôi cũng tự triển khai responsive, menu mobile và các thứ tương tự. Có lẽ tôi đã tự nghĩ ra vài rubric hay phương pháp gì đó, và chính những thử-sai kiểu này mới dẫn đến niềm vui thật sự
    • Tôi cũng đi cùng một hành trình. Tôi bắt đầu với Hugo, rồi cuối cùng tự làm static site generator của riêng mình (Loulou). Suốt quá trình làm nó chỉ toàn là niềm vui, và tự tay làm ra đúng là một trải nghiệm đáng giá. Site của tôi ở đây
    • Câu 'niềm vui không phải là có website mà là làm ra website' chính là cốt lõi. Nó giống với niềm tin 'Journey Before Destination' của các hiệp sĩ Radiant. Đây là kiểu câu chuyện lặp lại trong nhiều thần thoại. Hercules khi còn là người đã làm được bao điều tuyệt vời, nhưng khi thành thần thì thôi không làm nữa. Thông điệp là đừng để bị tước mất phần gian nan và phần rất con người ấy. Nếu thấy buồn thì tôi khuyên nghe nhạc tiếng chim ở https://birdymusic.com. Có thể đây là site ngầu nhất hoặc kỳ quặc nhất tôi thấy hôm nay
    • Nếu đó đúng là mục đích thì quá tốt. Nhưng có những website chỉ muốn làm thật đơn giản để hoàn thành một mục tiêu cụ thể rồi thôi. Ví dụ như site này chỉ cần làm đúng một việc vậy là đủ
  • Hình minh họa site xấu xí (trong bài gốc) thì đầy các bài blog, nhưng bài viết thật lại nằm trên website khác. Nếu không có mấy thứ như cookie marketing hay popup membership, tôi thà vào thẳng cái site xấu xí kia còn hơn
    • Nhìn screenshot thấy có email hello@taylor.town. Tôi cũng tò mò y như vậy nên vào taylor.town (https://taylor.town/). Và sau khi bài này được đăng thì site tải chậm hẳn, nên chắc là đã dính hiệu ứng Hacker News (HN hug of death)
    • Tôi cứ tưởng đây là một bài chỉ trích kiểu web bị “enshittified” thông thường. Tôi nghĩ site này tệ, nhưng cũng thấy vài điểm buồn cười: (1) có banner bán sách in (2) có popup đồng ý cookie (3) header 'Good Internet' thấp thoáng giữa đủ thứ biểu tượng của những website hiện đại tệ hại (4) headline bị popup cookie che nên khó đọc (5) dẹp banner đồng ý cookie đi thì lại còn icon cài đặt cookie luôn hiện với nút "+ Become a Member". So với thế thì taylor.town mới đúng là web tốt thật sự
    • Có lẽ vì nền, font, hoặc cách chọn màu của site xấu xí kia không ổn nên đọc rất mệt, thành ra tác giả mới đăng bài lên site khác. Ví dụ: taylor.town/wealth-000. Tôi cũng tự làm site cá nhân nhưng đâu có xấu. Tôi nghĩ site của người đó là cố tình làm xấu, hơi giống tự mê bản thân quá mức
  • Tôi nghĩ nên tách riêng trường hợp 'xấu nhưng thú vị' và 'xấu lại còn chán'. Site này gần với vế sau hơn. Về cơ bản nó chỉ như một CMS quay vòng quanh một thư mục markdown rồi đẩy title ra dưới dạng link. Hoàn toàn không có kiến trúc thông tin, không category, icon, image hay date gì cả, nên mọi thứ hiện ra với cùng một trọng số. Tất cả chỉ được sắp xếp để trông 'lạ' mà thôi. Phần lớn blog của dev nhận traffic từ search engine nên có thể thiết kế trang chủ không quá quan trọng, nhưng nếu tác giả muốn xây dựng một kiến trúc để độc giả chủ động khám phá thì cả ý định lẫn kết quả đều hơi đáng tiếc. Cuối cùng cảm giác cũng chẳng khác mấy so với blog dùng template Ghost mặc định
    • Đâu cần phải thế. Điều quan trọng là tác giả không làm nó để làm hài lòng độc giả, mà để làm hài lòng chính mình. Vì vậy ý kiến bên ngoài không phải điểm cốt lõi
    • Có vẻ bạn đã bỏ lỡ thông điệp chính của tác giả
  • Dùng framework để làm website thì chỉ ra cùng một kiểu giao diện và cảm giác như mọi người khác, chẳng có gì vui cả. Nếu vì mục đích kinh doanh thì tôi hiểu, nhưng nếu là để thể hiện bản thân hay tác phẩm của mình thì một website có cá tính vẫn ý nghĩa hơn. Dù không hiệu quả cho SEO hay retention, tôi vẫn thích việc đưa dấu ấn cá nhân vào đó hơn. Tôi ghét việc các website builder ngày nay ngày càng cấu trúc hóa và na ná nhau. Tôi thật sự nhớ thời Geocities hay Freewebs, với ảnh nền khó đọc, nhạc tự phát, con trỏ chạy theo chuột, mấy cái đầu lâu quay trước ngọn lửa và đủ thứ như thế
  • Tôi rất thích triết lý này vì nó giữ nguyên cảm giác internet thuở ban đầu. Đó là thời mà các site Flash với kiểu điều hướng kỳ quặc hay đủ loại vấn đề bị chỉ trích rất nhiều, nhưng ngoài những nhược điểm ấy, tôi vẫn tôn trọng sự sáng tạo trong cách người ta làm ra những website độc đáo. Giờ internet đã quá đồng nhất, và tôi nghĩ còn sẽ tệ hơn nữa vì nội dung do AI tạo ra. Thật vui khi thấy những góc không bị chuẩn hóa như vậy
  • Tôi hoàn toàn đồng cảm với triết lý này. Website của tôi thể hiện trọn vẹn con người ‘tôi’. Dù ai đó nói nó xấu hay quá thiếu chuyên nghiệp, bản thân tôi vẫn hài lòng với phong cách này. Tôi mong trên web, và cả ngoài đời, sẽ có nhiều thái độ không thuận theo khuôn mẫu như thế hơn
  • Bài viết rất hay. Điều khiến "old web" ngày xưa đáng quý là không có chuẩn mực rõ ràng, nên ai cũng tự do thử nghiệm và làm ra thứ gì đó theo cách riêng. Có hỗn loạn hơn một chút, nhưng cảm giác tình cờ phát hiện ra một site thực sự ngầu và đầy cá tính thì rất tuyệt. Web ngày nay quá cấu trúc, quá chính thức, và phần lớn được dựng từ cùng một bộ template và framework nên đã trở thành một không gian tiêu thụ có thể đoán trước. Niềm vui khám phá đã biến mất
  • Website của người đó vào năm 2023 không xấu, mà mang hơi hướng tối giản. Còn bây giờ thì thật sự xấu rồi. Ban đầu tôi tưởng đang nói tới bản năm 2023 nên còn đồng ý với nội dung, nhưng khi thấy phiên bản xấu thật thì tôi lại có cảm giác tiêu cực với chính thông điệp đó
    • Tôi không hiểu lắm ý 'bây giờ nó xấu thật nên thông điệp nhìn khác đi'. Toàn bộ thông điệp của bài này là nó có ý nghĩa vì được làm theo cách mà chính người làm thích và tận hưởng, bất kể người khác nhìn thế nào. Việc nhiều người cho rằng nó xấu lại càng khiến site và thông điệp của nó hấp dẫn hơn. Ngay khoảnh khắc bạn bám vào vẻ ngoài và thấy tiếc nuối, bạn đã bỏ lỡ điểm cốt lõi rồi
    • Thiết kế cũ thì sạch sẽ, tối giản và... không có gì đặc biệt. Còn bây giờ là một mớ hỗn độn có chủ đích. Dù xấu hay không, nó rất khó quên. Cũng có nhược điểm (sau này khó tìm lại một link cụ thể), nhưng điều đó không quan trọng với người đó. Thứ họ thật sự muốn là 'sự bất tiện', 'sự chói tai', 'sự tò mò', và hơn hết là '/thứ của riêng tôi/'
  • Tôi vẫn chưa có site cá nhân. Khi làm thì tôi định thử cho ra trò bằng HTML+CSS+JS hoặc JQ thôi. Tôi đang cân nhắc web server như apache hay nginx. Chắc sẽ đưa lên AWS free tier hoặc shared hosting. Chỉ cần nắm được cách căn giữa div là có thể bắt đầu ngay rồi
    • Tôi đang chạy bằng tổ hợp S3+cloudfront trên AWS free tier, suốt 1 năm hết đúng 0 đồng. Có lẽ đây là phương án đáng tiền nhất. Site của tôi là một trang HTML+CSS duy nhất, template do ChatGPT tạo cho rồi tôi dùng luôn. Tôi không đủ khả năng để tự làm cho nó chạy tốt trên cả mobile lẫn desktop nên đành hài lòng với cách này
    • Chỉ cần bỏ vài phút là có thể bắt đầu ngay trên Neocities, tôi khuyên như vậy
    • Tôi không hiểu tại sao căn giữa div lại thành meme nữa
        width: 60%; // đặt độ rộng theo ý muốn
        margin: 0 auto;
      
      Giờ thì bắt đầu blog thôi
    • Tôi cũng đã làm đúng như vậy: domi.work tôi cũng làm nó xấu luôn :)
    • Tôi cũng tương tự, chỉ là thêm 11ty vào để static build rồi deploy lên netlify pages
  • Những site được làm từ template gọn gàng thì trông giống nhau cả, còn mỗi site tự làm lại có những 'góc kỳ quặc' riêng, độc nhất trên đời. Nếu là dự án cá nhân, tôi sẽ chọn ‘wabi-sabi HTML’ thay vì một trang đích Tailwind