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

Overview

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/[email protected]
  1. Install Wire CLI
โฏ go install github.com/google/wire/cmd/[email protected]
  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

Issues
  • 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
    
    opened by mattn 6
Owner
Copper
Copper is a Go toolkit complete with everything you need to build web apps.
Copper
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.

Maxence Charriere 6.3k Jul 4, 2022
A web application framework with complete functions and good scalability

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

null 14 Jun 17, 2022
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

Flamingo 303 Jun 23, 2022
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,

null 88 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

George Nava 46 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

null 8 Dec 27, 2021
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.

Suborbital 85 Jun 9, 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 .

zhenfan.yu 1 Oct 31, 2021
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

The New York Times 3.6k Jun 30, 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-

Reid Mitchell 4 May 6, 2022
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

malte.l 18 Jun 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

golanger 299 Mar 3, 2022
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

null 98 Jun 3, 2022
henrylee2cn 1.6k Jun 26, 2022
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

Riita 15 May 21, 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

Krisna Pranav 13 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

null 21 May 25, 2022
Chainrand contract + web frontend + web backend

Chainrand-web This repo contains the implementation of Chainrand. https://chainrand.io Smart Contract Contains functionality to tie a Chainlink VRF to

Chainrand 1 Dec 8, 2021