Gramps Web API & Gramps.js: progress

New versions of Gramps Web API and Gramps.js have been released today and I wanted to highlight some new features.

  • The Web API now has full read/write support. You can add new objects, update existing ones, delete objects, and upload new media files.
  • There is a new documentation page with deployment instructions: Swagger UI
  • Gramps.js now has UI for adding most objects and partial support for editing objects. It has a rich text editor for adding and editing Notes.
  • Gramps.js has a new SVG-based tree view based on Gramps’ Graphviz-powered hourglass graph.

Some screenshots to highlight the improvements in Gramps.js powered by new features in the Web API.

New tree view

Notes rich text editor

Edit family child references

Add new media object

I am also looking for beta testers for the beta version of the Web API synchronization addon that you can find here: GitHub - DavidMStraub/gramps-addon-webapisync: Development version of a Gramps addon to synchronize a local family tree with a Gramps Web API instance.


Where can I find the instructions to try this out?

I am happy to run the Web API sync addon. Now that I have got them both running well.


Excellent question :smiley:

I added a Readme with instructions now: GitHub - DavidMStraub/gramps-addon-webapisync: Development version of a Gramps addon to synchronize a local family tree with a Gramps Web API instance

Highlighting some new features:

  • Anniversary view on dashboard

  • Using arbitrary media files as map overlays automatically being displayed in the map view

  • UI for editing map overlay location (coordinates are saved in the Gramps DB as attributes of the media object)

  • Edit tags on all objects

  • Tag people in photos

  • Add link to existing object in note rich text editor


The Gramps.js repository has just been moved to the Gramps organization:


Any suggestions for improving Wiki FAQ “Is Gramps compatible with the Internet?” or article “Web Solutions for Gramps”?

Yes, good point!

I’ll give it a try. We now also have a new name and a new documentation site: lo and behold, Gramps Web.


Added to this: Comparison of web-based genealogy software - Wikipedia

1 Like

I notice that it mentions that Gramps Web is released under “AGPL 3.0 or later”. I’m not familiar with that one. What are the main provisions? Why was this license chosen?


Affero General Public License

From Wikipedia, the free encyclopedia

“Both versions of the Affero GPL were designed to close a perceived application service provider (ASP) loophole in the ordinary GPL, where, by using but not distributing the software, the copyleft provisions are not triggered.”

Later in the same article:
"In the Free Software Foundation’s judgment, the added requirement in section 2(d) of Affero GPL v1 made it incompatible with the otherwise nearly identical GPLv2. That is to say, one cannot distribute a single work formed by combining components covered by each license.

By contrast, GPLv3 and AGPLv3 each include clauses (in section 13 of each license) that together achieve a form of mutual compatibility for the two licenses. These clauses explicitly allow the “conveying” of a work formed by linking code licensed under the one license against code licensed under the other license,[4] despite the licenses otherwise not allowing relicensing under the terms of each other.[5]"

1 Like

Exactly. In principle, somebody could build a commercial hosting service on Gramps Web. There is nothing wrong with that, but AGPL makes sure that the commercial provider has to share the source code in case they make any modifications of it. So they cannot build a “pro version” and keep it closed source. This is why this license is used for other open source web apps like Nextcloud as well.

Actually, some of the files in Web API are licensed under GPL rather than AGPL because they contain code taken from Gramps.


Two questions:
1 - The link is unknown (404 error)
2 - I don’t want to use docker and needs to install it in my apache web site. Is there an easy way to do that ?


the documentation moved to Introduction - Gramps Web, we still need to set up a redirect.

If you don’t want to use docker, you need a Linux server with Gramps and all other dependencies installed. The app is a WSGI Python app (based on flask) so you need to serve it with a WSGI server like gunicorn. You can use Apache as reverse proxy if you want. But docker is the simplest way.

Apache has a module for serving up WSGI apps that works pretty well.

1 Like