I've been working on a little side project and thought I'd share:
Wikifeat is an extensible wiki system (support for plugins and additional custom services, etc.) written in Golang intended for organizational/enterprise use. It uses CouchDB as its main database and Etcd for its service registry.
The frontend is written in Backbone/Marionette (using Bootstrap for layout).
Lots of rough edges and yet-to-be-implemented features to be sure (especially on the front end), but I believe it is at the point it might be minimally usable :)
1) On chrome, this site breaks the back button. Once I get to the site, no amount of pressing 'back' will take me back to where I came from - additionally, if I visit a second page on the site, then the back button actually rotates between the front page and the second page indefinitely.
2) It loads in an odd fashion, loading the sidebar first and then the content. It's not a deal breaker, but it looks odd when reading the page, and I wonder how well this would work on slower connections. It does also make me wonder how well it might actually scale in practice.
3) CouchDB is an unusual choice for a product like this - if you're shipping a product with an embedded database, something lower maintenance (and with better HA capabilities) might improve the lives of your users.
4) Minor point, but why is the 'View Raw' button given such prominence? I'm not sure what purpose it solves for an end user, and it could perhaps be better hidden under 'Page tools'.
Overall though, I like the architecture and design. Thanks for sharing!
Thanks for the feedback! As you can probably tell, the front end needs some work.
1.) The back button breaks in most (all?) browsers. I'm doing something odd with the history and I definitely need to fix it.
2.) The application does start loading the sidebar before it does much of anything else. It's kind of arbitrary and I suppose I could change it.
3.) I wasn't thinking of a self-contained product with an embedded database. I suppose Couch is higher maintenance than say, SQLite, but I haven't found it to be more onerous to administrate than Postgres or (especially) Oracle. I suppose a lack of familiarity on the part of sysadmins could be a possible issue.
4.) It was/is a useful feature during development, but I take your point most end users aren't going to use this feature as much as I have. Moving it is a good idea :)
First one to submit their changes wins. The second update is rejected.
The revision # of the document must be included in the header of the PUT request (If-Match), if it doesn't match the revision # of the document in the database, you get a 409 error back.
5 comments
[ 1.9 ms ] story [ 19.6 ms ] threadWikifeat is an extensible wiki system (support for plugins and additional custom services, etc.) written in Golang intended for organizational/enterprise use. It uses CouchDB as its main database and Etcd for its service registry.
The frontend is written in Backbone/Marionette (using Bootstrap for layout).
Project site (running Wikifeat on FreeBSD): https://www.wikifeat.com
Plugin example: https://www.wikifeat.com/app/wikis/developer-documentation/p...
Github repo: https://github.com/rhinoman/wikifeat
I've also written a Blog post with some more detail: http://jamesadam.me/index.php/2015/11/03/making-an-extensibl...
Lots of rough edges and yet-to-be-implemented features to be sure (especially on the front end), but I believe it is at the point it might be minimally usable :)
1) On chrome, this site breaks the back button. Once I get to the site, no amount of pressing 'back' will take me back to where I came from - additionally, if I visit a second page on the site, then the back button actually rotates between the front page and the second page indefinitely.
2) It loads in an odd fashion, loading the sidebar first and then the content. It's not a deal breaker, but it looks odd when reading the page, and I wonder how well this would work on slower connections. It does also make me wonder how well it might actually scale in practice.
3) CouchDB is an unusual choice for a product like this - if you're shipping a product with an embedded database, something lower maintenance (and with better HA capabilities) might improve the lives of your users.
4) Minor point, but why is the 'View Raw' button given such prominence? I'm not sure what purpose it solves for an end user, and it could perhaps be better hidden under 'Page tools'.
Overall though, I like the architecture and design. Thanks for sharing!
1.) The back button breaks in most (all?) browsers. I'm doing something odd with the history and I definitely need to fix it.
2.) The application does start loading the sidebar before it does much of anything else. It's kind of arbitrary and I suppose I could change it.
3.) I wasn't thinking of a self-contained product with an embedded database. I suppose Couch is higher maintenance than say, SQLite, but I haven't found it to be more onerous to administrate than Postgres or (especially) Oracle. I suppose a lack of familiarity on the part of sysadmins could be a possible issue.
4.) It was/is a useful feature during development, but I take your point most end users aren't going to use this feature as much as I have. Moving it is a good idea :)
The revision # of the document must be included in the header of the PUT request (If-Match), if it doesn't match the revision # of the document in the database, you get a 409 error back.