BesoGo: yet another web-based SGF editor

I just found out today in the chat from @seequ that BesoGo is being used in a website here:

That makes me so happy!


I could be wrong, but it seems you can’t toggle the navigation mode with the leftmost yin-yang button?

If I open testing.html with ?tool=navOnly, I can turn the navigation mode off by clicking the yin yang button. But clicking it again doesn’t return me to navigation mode.

1 Like

Yes, that’s right, it only goes one way, since clicking the yin-yang button switches to play mode, but it does not switch back into navigation only mode, when clicked again.

However, I like your suggestion. Let me make a quick change to make it switch back into navigation only mode, if it is currently in play mode.

EDIT: Done! Clicking on the Yin-Yang button now switches back to navigation only mode, if already in the “auto” play mode (i.e., when the Yin-Yang is selected)


Thanks a lot, I’ll download the new version.

1 Like

Neat, just noticed this connection between pull request from someone implementing a new feature and Nordic Go Dojo announcing the deployment with the new feature.


@tozgrec recently shared some nice wood textures here: Board backgrounds library - #148 by tozgrec, and I just confirmed with them via private message that I can use these in BesoGo. So, these will appear in a new release, at some point, once I confirm licensing details. Here’s a preview of what it looks like:

Updated Theme

New BesoGo skeuomorphic rendering using the new wood texture

Lighter Version

With a lighter version of the same wood texture

Original (older) Edition

Here is the original BesoGo wood theme

What do you think?


Nice! The texture looks great!

I still need to fully integrate Besgo into my site! It’s such an awesome tool!

Hade some folks using it to record their match yesterday, but when their phone rotated the screen, the whole game was lost! :sob: Not sure if it was my implementation or besgo (probably my fault)

1 Like

Oh no! I’m sorry to hear that. Maybe the browser window was refreshed? That will wipe the memory of the game tree state, since BesoGo does not use any local storage to maintain such state. Maybe a nice update would be to cache the application state in local storage, or have the interface hook into sending data back to your server.

1 Like

I don’t think it was a refresh, but I definitely need to look into hooking it into my server anyway (currently I’m having people save the game as an sgf and then re-uploading it… haha). Saving to local storage prior to saving to the server might be nice though!

1 Like

Good choice.

1 Like

Known Public Users of BesoGo

See also: Josekle 🟢⚪🟣🟢🟣 and Josekle Development

This post is a wiki, please add others that you might know of, if any.


@Devin_Fraze, how are things going with using BesoGo for your project? Is your use case visible on a public website somewhere?

I’m just so happy to hear about my code being useful for others.

It’s going decent. I’m working on a redesign of my site that will hopefully use and integrate besgo much more. Alas, it currently is being very underutilized. However, my hope is that BesGo will become the go-to tool for people recording their irl games (at clubs or tournaments).

It’s not intuitive how to get to the board on my site and also I’ve discovered just now it has some bugs as well. So I screencapped an example below. You click open goban to launch BesGo and players can set the board size and style dynamically.


Just got reminded about BesoGo from here: Josekle Development - #178 by yebellz and I am a bit worried that the button design might put some potential new users off a bit as it seems a bit too oldschool.

From a quick glance it seems to be just some .svg icons? I am generally bad (and easily bored) at trying to comprehend and process someone else’s code, but if it was a matter of supplying .svg files, I would be happy to give it a shot at designing something probably still basic, but hopefully a bit more modern looking.


It’s really a bit convoluted how I made the buttons. They are specified as SVG, but I procedurally defined them in the code. Hence, I made them kind of simple, just for convenience.

Regardless, I think that it would be fairly straightforward for me to import designs from SVG files into the current code. Even other forms of graphics could be possible, and maybe everything could be specified by CSS. However, I do prefer vector graphics.

Some buttons are just text right now (like “Raise”, “Lower”, “Cut”, etc.) and I would definitely like to improve those into some sort of language-independent icon.

Thanks for your help in improving the graphic design!


There are also a lot of great open source icon repositories. Maybe digging through some of these could save some work.

Some of these could also be helpful for Josekle



pipe dream

Nobody asked, but there are some OGS issues that would be solved by an SVG board

1 Like

Dear @yebellz ,

I just got fed up with Sabaki for having to wait for the move tree and info to animate/scroll every time. So I tried BesoGo and instantly liked how simple and snappy it is. :slight_smile:

I just wanted to view a folder of tsumego files, which is 900 of them, without opening 900 different windows. Maybe I still haven’t found the right program for my use case…

Anyway. I noticed that it would be handy to have a “drop area” over the whole board in BesoGo to drag file(s) into, which should be a shortcut to the “Open” command.

I also noticed the following:

  • Upon unselecting the move tool (by click when it’s active), there is no active tool at all and I also can’t cut variations in this mode. Is this intentional?
  • I love that it automatically gives the first move to white if it detects handicap. It’s so smart. :blush: But there is also the use case of creating tsumego for any color. Are you planning to enable moves of any color at all times?
  • I have to erase all branches to be allowed to edit the root position. But all sgf editors are weird like that.

Thanks for helping me out today.


Thank you! I’m always so happy to hear about a happy user!

That’s a neat idea. I was even thinking about doing something like that, but I forgot to. I’d have to figure out how to do that, but I think it’s straightforward.

Unselecting the tools puts the editor into navigate-only mode, which is a read-only mode to avoid editing the move tree by accident. The ability to do this was intentional, but maybe it makes sense to still leave the cut button working, if that’s a use case that you want. The cut button does anyways pop up a confirmation.

It automatically gives the first move depending on the balance of White vs Black stones. However, to set a move of the opposite color as first, you can select one of the “Set Black” or “Set White” buttons and then ctrl+click (sorry, no work-around for touch-only interfaces) to make a move with that color (instead of placing a “set stone”). Then, subsequent moves (with the auto “ying-yang” tool) with follow the alternating color order from there.

Ideally, the editor should also obey and offer a way to set the “next to move” property that is part of the SGF standard, but that is currently unsupported.

In principle, I guess it could be possible to edit the set stones, while there are child branches, but that could lead to some odd and unexpected behavior, since one might inadvertently set a stone in a location where a subsequent move will later overlap (before there is capture to empty that point). Hence, my editor forces a node to have no children before allowing one to edit it with set stones, but the current behavior will just create a new child and edit that one.

The funny thing is that the SGF standard explicitly allows moves to overlap on top of existing stones. My editor blocks entering such moves by default, but will allow it if you click while holding down the “Ctrl” key. Some other SGF editors might give an unrecoverable error message when dealing with such a (technically valid) SGF.

1 Like

BesoGo now has a one-box preview, when linking to the online editor

Also, check out adding the above link to your home screen via your mobile browser. You can launch the SGF editor like an app.