β§ο½₯οΎ: *β§ο½₯οΎ GoChan - A Cute Imageboard β§ο½₯οΎ: *β§ο½₯οΎ
[!NOTE]
Another imageboard I vibecoded, just to see how Go is. Quite interesting to see how
different Cursor was here, really leaned into the kawaii side for some reason. I didn't
tell it anything different from the Next.js attempt. Maybe Go is just a cuter language?
Well, use at your own risk, it was rather fun to "create". Next.js was more relaxed though since here Cursor/Claude was using the shell very heavily, always starting servers left and right which didn't work because there was another one still running in the background, probably because it doesn't do HMR / auto reloading on file changes.
That last bit actually put me a bit off Go, though I gotta say Claude did a great job here, and never messed up too badly. Just guiding it through the dev process was enough.

GoChan is a kawaii-themed imageboard written in Go using the Gin web framework, featuring a modern, responsive design with a cute aesthetic! (ββΏββΏ)
π Features
- Board System: Create and browse multiple boards for different topics
- Thread Creation: Start new discussions with title, message and file attachments
- Reply System: Respond to threads with text and optional file uploads
- Image Handling: Upload, display, and automatic thumbnail generation for images
- Responsive Design: Beautiful UI that works on desktop and mobile devices
- Kawaii Aesthetic: Cute color scheme, animations, and design elements
- Modern UI: Card-based layouts, interactive elements, and smooth transitions
πΈ Project Structure
gochan/
βββ bin/ # Compiled binaries
βββ cmd/ # Application executables
β βββ server/ # Main server application
βββ data/ # Application data storage
βββ internal/ # Private application code
β βββ database/ # Database interaction
β βββ handlers/ # HTTP request handlers
β βββ models/ # Data models
β βββ utils/ # Utility functions
βββ web/ # Web assets
β βββ static/ # Static files (CSS, JS, images)
β βββ templates/ # HTML templates
βββ Dockerfile # Container definition
βββ go.mod # Go module file
βββ Makefile # Build automation
π UI Features
- Landing Page: Hero section with mascot, feature highlights, board listing, and statistics
- Board Page: Attractive board layout with thread cards and image thumbnails
- Thread Page: Beautifully designed thread view with original post and replies
- Responsive Design: Optimized layouts for all device sizes
- Interactive Elements: Collapsible forms, hover effects, and animations
π Getting Started
Prerequisites
Running Locally
-
Clone the repository:
git clone https://github.com/Melchizedek6809/gochan.git
cd gochan
-
Install dependencies:
go mod tidy
-
Run the application:
go run cmd/server/main.go
-
Open your browser and visit: http://localhost:8080
Using Docker
-
Build the Docker image:
docker build -t gochan .
-
Run the container:
docker run -p 8080:8080 gochan
π· Thumbnail Generation
GoChan automatically generates thumbnails for uploaded images:
- Thumbnails are created upon image upload
- Stored efficiently in the database
- Served via dedicated endpoint
- Used in thread listings for improved performance
π Development
GoChan follows standard Go project layout and conventions. To add new features:
- Create handlers in the
internal/handlers directory
- Add models in the
internal/models directory
- Update templates in the
web/templates directory
- Add your routes in
internal/handlers/routes.go
π License
This project is licensed under the MIT License.