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.
Sam Whited d577f3277f Support Go Modules 1 year ago
.github Add GitHub issue template 2 years ago
.gitignore Initial commit 4 years ago
LICENSE Add README and LICENSE 3 years ago
README.md Fix examples in README 1 year ago
auth.go Rearrange status checks in LogIn 1 year ago
auth_test.go Add authentication test 1 year ago
collection.go Rearrange status checks in CreateCollection 1 year ago
collection_test.go Support retrieving auth'd user's collections 1 year ago
go.mod Support Go Modules 1 year ago
go.sum Support Go Modules 1 year ago
post.go Rearrange status checks in UpdatePost 1 year ago
post_test.go Fix post tests 1 year ago
user.go Add UserSubscription struct 2 years ago
writeas.go Add Token getter 1 year ago




Official Write.as Go client library.


go get go.code.as/writeas.v1


See all functionality and usages in the API documentation.

Example usage

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

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(&writeas.PostParams{
		OwnedPostParams: writeas.OwnedPostParams{
			ID:    p.ID,
			Token: token,
		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(&writeas.PostParams{
		OwnedPostParams: writeas.OwnedPostParams{
			ID:    p.ID,
			Token: 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.