Go client for the Write.as API https://developers.write.as
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Matt Baer 7a2c93ae6d Revert "DeleteCollection: Make params a struct" 1 year ago
.github Add GitHub issue template 2 years ago
.gitignore Initial commit 5 years ago
LICENSE Add README and LICENSE 4 years ago
README.md Add v2 warning in README 2 years ago
auth.go Rearrange status checks in LogIn 2 years ago
auth_test.go Add authentication test 2 years ago
collection.go Revert "DeleteCollection: Make params a struct" 1 year ago
collection_test.go Revert "DeleteCollection: Make params a struct" 1 year ago
post.go Pass along edit token on post update 2 years ago
post_test.go Reflect breaking v2 changes in examples and tests 2 years ago
user.go Add UserSubscription struct 2 years ago
writeas.go Add NewClientWith constructor 1 year ago




Official Write.as Go client library.


Warning: the v2 branch is under heavy development and its API will change without notice.

For a stable API, use go.code.as/writeas.v1 and upgrade to v2 once everything is merged into master.

go get go.code.as/writeas.v2


See all functionality and usages in the API documentation.

Example usage

import "go.code.as/writeas.v2"

func main() {
	// Create the client
	c := writeas.NewClient()

	// Publish a post
	p, err := c.CreatePost(&writeas.PostParams{
		Title:   "Title!",
		Content: "This is a post.",
		Font:    "sans",
	if err != nil {
		// Perhaps show err.Error()

	// Save token for later, since it won't ever be returned again
	token := p.Token

	// Update a published post
	p, err = c.UpdatePost(p.ID, token, &writeas.PostParams{
		Content: "Now it's been updated!",
	if err != nil {
		// handle

	// Get a published post
	p, err = c.GetPost(p.ID)
	if err != nil {
		// handle

	// Delete a post
	err = c.DeletePost(p.ID, token)


The library covers our usage, but might not be comprehensive of the API. So we always welcome contributions and improvements from the community. Before sending pull requests, make sure you’ve done the following:

  • Run go fmt on all updated .go files.
  • Document all exported structs and funcs.