# Gramps architecture

**URL:** <https://gramps.discourse.group/t/gramps-architecture/1834>\
**Category:** Development\
**Created:** [September 16, 2021, 7:31pm UTC](https://gramps.discourse.group/t/gramps-architecture/1834 "2021-09-16T19:31:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![PLegoux](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/plegoux/32/413_2.png) [@PLegoux](https://gramps.discourse.group/u/PLegoux)\
**Post date:** [September 16, 2021, 7:31pm UTC](https://gramps.discourse.group/t/gramps-architecture/1834/1 "2021-09-16T19:31:02Z")

</div>

I’m not a developer, I was but I’m not anymore since a long time now, but I’m still interested by programming. Gramps give me that interest again. And while watching python architecture YouTube videos ([here](https://youtu.be/wtCQalq7L-E) or [here](https://youtu.be/zGbPd4ZP39Y)) that basic, and newbie, question came to me:

Does gramps architecture will allow to replace its GTK interface by something else? i.e. Django or something else to use it with a web interface, _just_ creating and replacing its interface layer by another one (web or anything else)? Does gramps is written in a way to allow this?

---

<div class="post-metadata">

**Author:** ![Mattkmmr](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/mattkmmr/32/410_2.png) [@Mattkmmr](https://gramps.discourse.group/u/Mattkmmr)\
**Post date:** [September 16, 2021, 9:05pm UTC](https://gramps.discourse.group/t/gramps-architecture/1834/2 "2021-09-16T21:05:05Z")

</div>

@DavidMStraub created [gramps-webapi](https://github.com/gramps-project/gramps-webapi/tree/master/gramps_webapi) (=backend) and [Gramsps.js](https://github.com/DavidMStraub/Gramps.js) (=frontend). I think everything there was just build from scratch.

---

<div class="post-metadata">

**Author:** ![DavidMStraub](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/davidmstraub/32/7_2.png) [@DavidMStraub](https://gramps.discourse.group/u/DavidMStraub)\
**Post date:** [September 16, 2021, 9:22pm UTC](https://gramps.discourse.group/t/gramps-architecture/1834/3 "2021-09-16T21:22:50Z")

</div>

> I think everything there was just build from scratch.

The frontend was written from scratch, but the backend uses the Gramps Python library as its foundation and “only” adds the web stuff on top. So I would answer this question

> Does gramps architecture will allow to replace its GTK interface by something else?

with yes 🙂

---

<div class="post-metadata">

**Author:** ![Mattkmmr](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/mattkmmr/32/410_2.png) [@Mattkmmr](https://gramps.discourse.group/u/Mattkmmr)\
**Post date:** [September 16, 2021, 9:30pm UTC](https://gramps.discourse.group/t/gramps-architecture/1834/4 "2021-09-16T21:30:22Z")

</div>

> [@DavidMStraub](#):
>
> The frontend was written from scratch, but the backend uses the Gramps Python library as its foundation and “only” adds the web stuff on top.

Can Gramps reports, tools and addons also be used with the gramps-webapi?

---

<div class="post-metadata">

**Author:** ![cdhorn](https://avatars.discourse-cdn.com/v4/letter/c/258eb7/32.png) [@cdhorn](https://gramps.discourse.group/u/cdhorn)\
**Post date:** [September 17, 2021, 2:21am UTC](https://gramps.discourse.group/t/gramps-architecture/1834/5 "2021-09-17T02:21:31Z")

</div>

> Can Gramps reports, tools and addons also be used with the gramps-webapi?

Some yes others no depending on what they are.

All text based reports work but some of the others don’t if I recall. HTML ones are not supported, at least at the moment, as did not seem to make sense to when you’re using a web frontend like Gramps.js anyway. All the exporters can be called, the filters interface has been exposed as well as the relationship and living person calculators.

Best thing to do is check the Git repository main page and click on Gramps API Docs to review the swagger API online to see what is available:

> **[GitHub - gramps-project/gramps-webapi: A RESTful web API for Gramps](https://github.com/gramps-project/gramps-webapi)**
>
> A RESTful web API for Gramps. Contribute to gramps-project/gramps-webapi development by creating an account on GitHub.

David has really done a fantastic job with both it and Gramps.js

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/gramps/original/1X/2ac1e712b7adf612e31ca08a55419f4cf37c0158.png) [@system](https://gramps.discourse.group/u/system)\
**Post date:** [October 17, 2021, 2:22am UTC](https://gramps.discourse.group/t/gramps-architecture/1834/6 "2021-10-17T02:22:12Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
