Help:Developers

Search WikiTree's help pages:

Categories: WikiTree Apps Project

Are you a programmer or do you have other technical skills? We would love to have your help on our open-source projects, collaborating on the future of genealogy.

Here is how WikiTree development works and how you can get involved.

It's Hacktoberfest time!
Perfect for anyone who is new to WikiTree development.

Contents

The WikiTree Core

The core database and basic functionality of WikiTree is managed by the WikiTree Team. Access to the core has to be strictly controlled for privacy and legal liability reasons.

We aim to keep the core:

  1. stable — without frequent changes, and
  2. simple — relatively easy to understand and manage.

Stability and simplicity make it easier to keep WikiTree free and accessible for everyone long into the future. It also makes the core a solid foundation on which independent developers can build advanced and dynamic applications.

Tree Apps and the WikiTree Browser Extension

Volunteer developers contribute to two main open-source projects on GitHub:

  1. Tree Apps — for viewing and accessing genealogy, and
  2. The WikiTree Browser Extension (WBE) — for editing tools, functions that change the appearance of pages, interact with other websites, etc.

We also have apps server accounts that can be used as sandboxes, for hosting standalone apps, or for downloading our database dumps.

Tree Apps

WikiTree has a simple tree view: a pedigree chart accessed with the "Ancestors" button on profiles. More advanced tree views, charts, ancestor lists, family group sheets, timelines, etc., are what we call Tree Apps. See Help:Tree Apps.

Tree Apps are generally created and maintained by one or a few individual developers, but they're connected through a common user interface so it's easy for members to find them and switch between them.

The apps are open source on GitHub to make sure they can live on past the original creator, and so we can help each other make improvements. See the repository on GitHub to participate.

WikiTree Browser Extension

In years past, independent developers created a variety of browser extensions to add advanced features and functions to WikiTree. Now many of us collaborate on a single WikiTree Browser Extension (WBE).

Like with Tree Apps, modules on the WBE are usually created and maintained by individuals, but accessible to members in an integrated way, and open source. See the repository on GitHub.

The WBE is expressly promoted on WikiTree for advanced members. While the core of WikiTree needs to be widely accessible to members around the world, on lots of different platforms, relatively stable and simple, etc., the WBE offers customization and specialized functionality for experienced WikiTreers.

Getting Started

Thank you for wanting to help!

Tutorials

There are two "Hello World!"-style tutorials on GitHub. They walk you through every step of creating a Tree App or adding a feature to the WikiTree Browser Extension.

Join the Apps Project

Whether or not you participate in one of the GitHub projects, please join the WikiTree Apps Project and our WikiTree Apps Google Group. The project badge gives you access to our Discord chat. You should also considering following the wt_apps tag in G2G. This is where many members suggest and discuss apps.

Developing Features

No pre-approval needed

Pre-approval isn't generally needed for development of apps and WBE features. If you have an idea, run with it!

Apps, of course, do need to respect general WikiTree policies and the Terms of Service, and should not be commercial in nature. Also, the team will do testing before promotion and reserves the right to remove or limit problematic functions, integrate duplicative apps or features, etc. This is all done in an open source, collaborative way.

Although pre-approval isn't necessary, we are a collaborative group. We help each other and share ideas. In the Apps Project frequently talk about new features and how they might fit with existing features.

Moving features to the core

Some independently-developed features or functions should become part of the core. Some considerations:

  • Essentiality. The use of apps, and especially browser extensions, should be optional. If a feature becomes essential to accessing or collaborating on WikiTree it should become part of the core.
  • Efficiency. Would it be significantly faster or use fewer resources if it were part of the core?
  • Complexity. Does it make WikiTree simpler and easier to use, including for new members and those on mobile devices, or is it primarily for experienced members?
  • Stability. Is the feature or function still being improved upon? Is it likely to need more development soon, or require active maintenance?
  • Functionality. Would the feature benefit from access to data or a function that is not possible unless it's part of the core, such as sending email? If something can be made available through our API, that is our preference, so future developers can make use of it as well.
  • SEO (Cousin Bait). Does it add valuable data for non-members? Could it improve how profiles are indexed and ranked in search engines?


This page was last modified 12:15, 2 October 2024. This page has been accessed 5,128 times.