๐Ÿš€โ€โ€โ€Ž โ€Žโ€โ€โ€Žโ€โ€โ€Žโ€Žโ€Žโ€Žโ€Žโ€ŽCopper is a Go toolkit complete with everything you need to build web apps.

Copper logo

Go Report Card Go Doc


Copper

Copper is a Go toolkit complete with everything you need to build web apps. It focuses on developer productivity and makes building web apps in Go more fun with less boilerplate and out-of-the-box support for common needs.

๐Ÿš€ Fullstack Toolkit

Copper provides a toolkit complete with everything you need to build web apps quickly.

๐Ÿ“ฆ One Binary

Build frontend apps along with your backend and ship everything in a single binary.

๐Ÿ”จ Frontend Tooling

Comes with frontend tooling built-in for vanilla JS, React, Vue and other frameworks.

๐Ÿ“ Server-side HTML

Copper includes utilities that help build web apps with server rendered HTML pages.

๐Ÿ’ก Auto Restarts

Copper detects changes and automatically restarts server to save time.

๐Ÿ— Scaffolding

Skip boilerplate and scaffold code for your packages, database queries and routes.

๐Ÿ”‹ Batteries Included

Includes CLI, lint, dev server, frontend tooling, config management, and more!

๐Ÿ”ฉ First-party packages

Includes packages for authentication, pub/sub, queues, emails, and websockets.


Current Status

๐Ÿ’Ž๏ธ Copper is currently in preview as new features are added. While the APIs are unlikely to change in any major ways, some details may change as they are refined. Feedback and contributions are welcome!


Getting Started

Copper requires Go 1.16+, Node 12+


  1. Install the Copper CLI
โฏ go install github.com/gocopper/cli/cmd/copper@latest
  1. Install Wire CLI
โฏ go install github.com/google/wire/cmd/wire@latest
  1. Scaffold your project
โฏ copper init
? What's the module name for your project? xnotes

# Create Project Files

 SUCCESS  Create xnotes/config/local.toml (Took 1ms)
 SUCCESS  Create xnotes/go.mod (Took 0s)
 SUCCESS  Create xnotes/pkg/app/handler.go (Took 0s)
 SUCCESS  Create xnotes/pkg/app/wire.go (Took 0s)
 SUCCESS  Create xnotes/pkg/web/public/favicon.svg (Took 1ms)
 SUCCESS  Create xnotes/pkg/web/public/logo.svg (Took 0s)
 SUCCESS  Create xnotes/pkg/web/src/pages/index.html (Took 0s)
 SUCCESS  Create xnotes/config/prod.toml (Took 0s)
 SUCCESS  Create xnotes/cmd/migrate/wire.go (Took 0s)
 SUCCESS  Create xnotes/pkg/app/migrations.go (Took 0s)
 SUCCESS  Create xnotes/pkg/web/wire.go (Took 0s)
 SUCCESS  Create xnotes/.golangci.yaml (Took 0s)
 SUCCESS  Create xnotes/cmd/app/main.go (Took 1ms)
 SUCCESS  Create xnotes/cmd/app/wire.go (Took 0s)
 SUCCESS  Create xnotes/cmd/migrate/main.go (Took 0s)
 SUCCESS  Create xnotes/config/dev.toml (Took 0s)
 SUCCESS  Create xnotes/pkg/web/src/layouts/main.html (Took 0s)
 SUCCESS  Create xnotes/pkg/web/src/main.js (Took 0s)
 SUCCESS  Create xnotes/pkg/web/vite.config.js (Took 0s)
 SUCCESS  Create xnotes/.gitignore (Took 0s)
 SUCCESS  Create xnotes/pkg/web/package.json (Took 0s)
 SUCCESS  Create xnotes/pkg/web/router.go (Took 0s)
 SUCCESS  Create xnotes/pkg/web/src/styles.css (Took 0s)
 SUCCESS  Create xnotes/config/base.toml (Took 0s)

# First Commands

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
| cd xnotes    |
| copper build |
| copper watch |
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  1. Start Project
โฏ cd xnotes
โฏ copper build
โฏ copper watch
  1. Open http://localhost:5901 in your browser

License

MIT

Owner
Copper
Copper is a Go toolkit complete with everything you need to build web apps.
Copper
Similar Resources

Start and finish your Go apps gracefully, even in the case of panics

Relax Relax - verb antonym for panic. In the context of Go programs, relax means to make critical failures less severe so that graceful shutdown is ne

May 7, 2023

Pulp allows you to write dynamic web-applications entirely in go

pulp Pulp allows you to write dynamic web-applications entirely in go, by reacting to events on the server-side. func (c index) Render(pulp.Socket) (p

Dec 5, 2022

Golanger Web Framework is a lightweight framework for writing web applications in Go.

/* Copyright 2013 Golanger.com. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except

Nov 14, 2022

re:Web enables classic web applications to run on AWS Lambda.

re:Web enables classic web applications to run on AWS Lambda.

re:Web re:Web enables classic web applications to run on AWS Lambda. re:Web interfaces with the Lambda Runtime API. It translates API Gateway requests

Jan 1, 2023

Roche is a Code Generator and Web Framework, makes web development super concise with Go, CleanArch

Roche is a Code Generator and Web Framework, makes web development super concise with Go, CleanArch

It is still under development, so please do not use it. We plan to release v.1.0.0 in the summer. roche is a web framework optimized for microservice

Sep 19, 2022

A powerful go web framework for highly scalable and resource efficient web application

webfr A powerful go web framework for highly scalable and resource efficient web application Installation: go get -u github.com/krishpranav/webfr Exa

Nov 28, 2021

A powerful go web framework for highly scalable and resource efficient web application

A powerful go web framework for highly scalable and resource efficient web application

Oct 3, 2022
Comments
  • cannot use r.db (type *

    cannot use r.db (type *"gorm.io/gorm".DB) as type *"github.com/jinzhu/gorm".DB

    I'm trying to build tutorial app using copper but following error occured.

    func (r *PostsRepo) GetPostByID(ctx context.Context, id string) (*Post, error) {
    	db := csql.GetConn(ctx, r.db)
    	fmt.Println(db)
    	return nil, nil
    }
    
    .\main.go:30:27: cannot use r.db (type *"gorm.io/gorm".DB) as type *"github.com/jinzhu/gorm".DB in argument to csql.GetConn
    
  • copper create error running HN tutorial: missing hn/web/package.json

    copper create error running HN tutorial: missing hn/web/package.json

    golang$ copper create -frontend=go:tailwind github.com/bfollek/hn
      ERROR   Create github.com/bfollek/hn with frontend=go:tailwind, storage=gorm:sqlite (Took 4.234s)
              failed to apply go:tailwind code mod because
              > failed to add npm scripts where wd=hn because
              > failed to open file where fp=hn/web/package.json because
              > open hn/web/package.json: no such file or directory
    
Go-app is a package to build progressive web apps with Go programming language and WebAssembly.
Go-app is a package to build progressive web apps with Go programming language and WebAssembly.

Go-app is a package to build progressive web apps with Go programming language and WebAssembly.

Dec 30, 2022
A web application framework with complete functions and good scalability
A web application framework with complete functions and good scalability

English | ไธญๆ–‡ Abuout Goravel Goravel is a web application framework with complete

Jan 6, 2023
Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.
Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework Flamingo is a web framework based on Go. It is designed to build pluggable and maintainable web projects. It is production ready, f

Jan 5, 2023
Goal is a toolkit for high productivity web development in Go language in the spirit of Revel Framework that is built around the concept of code generation.

Goal Goal is a set of tools for high productivity web development in Go language. Goal, being mostly inspired by Revel Framework and its discussions,

Sep 27, 2021
Web framework for creating apps using Go in Google AppEngine

Welcome to app.go v3.0 app.go is a simple web framework for use in Google AppEngine. Just copy the app folder to your working folder and import it fro

Mar 21, 2021
The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework.

jin About The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework. If thi

Jul 14, 2022
Vektor - Build production-grade web services quickly
Vektor - Build production-grade web services quickly

Vektor enables development of modern web services in Go. Vektor is designed to simplify the development of web APIs by eliminating boilerplate, using secure defaults, providing plug-in points, and offering common pieces needed for web apps. Vektor is fairly opinionated, but aims to provide flexibility in the right places.

Dec 15, 2022
based on go lang build WEB development framework for go lang beginners .

based on go lang build WEB development framework for go lang beginners .

Oct 31, 2021
A Microservice Toolkit from The New York Times
A Microservice Toolkit from The New York Times

Gizmo Microservice Toolkit This toolkit provides packages to put together server and pubsub daemons with the following features: Standardized configur

Dec 27, 2022
A framework for apps written entirely in YAML, powered by ytt.

yapp A framework for apps written entirely in YAML, powered by ytt. Highly experimental! Do not use! # start the server... go run . -f examples/hello-

May 6, 2022