gochan

module
v0.0.0-...-8690547 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2025 License: AGPL-3.0

README ΒΆ

✧ο½₯゚: *✧ο½₯゚ 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 Screenshot

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
  • Go 1.16 or higher
  • Git
Running Locally
  1. Clone the repository:

    git clone https://github.com/Melchizedek6809/gochan.git
    cd gochan
    
  2. Install dependencies:

    go mod tidy
    
  3. Run the application:

    go run cmd/server/main.go
    
  4. Open your browser and visit: http://localhost:8080

Using Docker
  1. Build the Docker image:

    docker build -t gochan .
    
  2. 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:

  1. Create handlers in the internal/handlers directory
  2. Add models in the internal/models directory
  3. Update templates in the web/templates directory
  4. Add your routes in internal/handlers/routes.go

πŸ“ License

This project is licensed under the MIT License.

Directories ΒΆ

Path Synopsis
cmd
server command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL