diff --git a/cfg/config.go b/cfg/config.go
index 1a2d696..2233374 100644
--- a/cfg/config.go
+++ b/cfg/config.go
@@ -15,6 +15,14 @@
 type Config struct {
 	Name string `yaml:"package"`
 
+	// Description is a short description for a package. This description is
+	// similar but different to a Go package description as it is for
+	// marketing and presentation purposes rather than technical ones.
+	Description string `json:"description,omitempty"`
+
+	// Home is a url to a website for the package.
+	Home string `yaml:"homepage,omitempty"`
+
 	// License provides either a SPDX license or a path to a file containing
 	// the license. For more information on SPDX see http://spdx.org/licenses/.
 	// When more than one license an SPDX expression can be used.
@@ -23,7 +31,7 @@
 	// Owners is an array of owners for a project. See the Owner type for
 	// more detail. These can be one or more people, companies, or other
 	// organizations.
-	Owners Owners `json:"owners,omitempty"`
+	Owners Owners `yaml:"owners,omitempty"`
 
 	Ignore     []string     `yaml:"ignore,omitempty"`
 	Imports    Dependencies `yaml:"import"`
@@ -32,12 +40,14 @@
 
 // A transitive representation of a dependency for importing and exploting to yaml.
 type cf struct {
-	Name       string       `yaml:"package"`
-	License    string       `yaml:"license,omitempty"`
-	Owners     Owners       `json:"owners,omitempty"`
-	Ignore     []string     `yaml:"ignore,omitempty"`
-	Imports    Dependencies `yaml:"import"`
-	DevImports Dependencies `yaml:"devimport,omitempty"`
+	Name        string       `yaml:"package"`
+	Description string       `yaml:"description,omitempty"`
+	Home        string       `yaml:"homepage,omitempty"`
+	License     string       `yaml:"license,omitempty"`
+	Owners      Owners       `yaml:"owners,omitempty"`
+	Ignore      []string     `yaml:"ignore,omitempty"`
+	Imports     Dependencies `yaml:"import"`
+	DevImports  Dependencies `yaml:"devimport,omitempty"`
 }
 
 // ConfigFromYaml returns an instance of Config from YAML
@@ -63,6 +73,8 @@
 		return err
 	}
 	c.Name = newConfig.Name
+	c.Description = newConfig.Description
+	c.Home = newConfig.Home
 	c.License = newConfig.License
 	c.Owners = newConfig.Owners
 	c.Ignore = newConfig.Ignore
@@ -78,10 +90,12 @@
 // MarshalYAML is a hook for gopkg.in/yaml.v2 in the marshaling process
 func (c *Config) MarshalYAML() (interface{}, error) {
 	newConfig := &cf{
-		Name:    c.Name,
-		License: c.License,
-		Owners:  c.Owners,
-		Ignore:  c.Ignore,
+		Name:        c.Name,
+		Description: c.Description,
+		Home:        c.Home,
+		License:     c.License,
+		Owners:      c.Owners,
+		Ignore:      c.Ignore,
 	}
 	i, err := c.Imports.Clone().DeDupe()
 	if err != nil {
@@ -129,6 +143,8 @@
 func (c *Config) Clone() *Config {
 	n := &Config{}
 	n.Name = c.Name
+	n.Description = c.Description
+	n.Home = c.Home
 	n.License = c.License
 	n.Owners = c.Owners.Clone()
 	n.Ignore = c.Ignore
diff --git a/cfg/config_test.go b/cfg/config_test.go
index dc5bd35..06ade6d 100644
--- a/cfg/config_test.go
+++ b/cfg/config_test.go
@@ -8,6 +8,8 @@
 
 var yml = `
 package: fake/testing
+description: foo bar baz
+homepage: https://example.com
 license: MIT
 owners:
 - name: foo
@@ -50,6 +52,14 @@
 		t.Errorf("Inaccurate name found %s", cfg.Name)
 	}
 
+	if cfg.Description != "foo bar baz" {
+		t.Errorf("Inaccurate description found %s", cfg.Description)
+	}
+
+	if cfg.Home != "https://example.com" {
+		t.Errorf("Inaccurate homepage found %s", cfg.Home)
+	}
+
 	if cfg.License != "MIT" {
 		t.Errorf("Inaccurate license found %s", cfg.License)
 	}
