Intro to Hacking

Efraim Feinstein edited this page Aug 8, 2014 · 10 revisions

#Developing with the Open Siddur -- Join us!

If you can script, you can help, but take a look below in our section on Technologies to get a better sense of what we've been hacking with and where you're own expertise might help. The most important thing is your passion in helping make more Jewish liturgy and liturgy related work available to everyone to create the best Siddur for them. If that sounds like you then read on! (We're assuming you've landed here because you're at least interested in the source code behind the Open Siddur and familiarity with some common programming terms.)

We are actively looking for user interface coders. Our web application is being developed at the [opensiddur-client] ( project. Go ahead and start Building. Make contact with us [via our webform] (, or if you're feeling bold, connect with us over at our technical discussion list [opensiddur-tech] (

If you'd just like to meditatively watch our code commits, we've got a list for that: [opensiddur-dev] ( (which sends automated messages after each code commit.)

If you're interested in transcribing texts see the instructions at the [Open Siddur Client wiki] ( (work in progress!).

#Trying it out

So far, we've pushed ahead much farther on our server code than our user-interface. To look at some of the (user-facing) work that has been done already, check out our demos, and note our on our [opensiddur-client] (

To obtain the source code and build a local copy of the database and software, see Building.

If you are interested in client-side development, see the [opensiddur-client] ( project.

#Project structure

To learn what components are in the Open Siddur and locate their source code, see Architecture. The [issue tracker] ( serves as a TODO list. Note that the order of feature development listed on the milestones page is not set in stone. If you have a particular interest in any aspect of the project, please let us know.

A number of projects are marked with the [independent tag] ( These projects do not require delving deeply into the source code, and may be good jumping-off points. They also have a smaller learning curve.


The following are helpful links for learning about the technologies we use:

##XQuery 1.0 and 3.0

##XSLT 1.0 (browser side) and 2.0 (used on browser side with Saxon CE )



There are also projects available that require Java or Python skills.

#Coding style and documentation The autogenerated XQuery-based API documentation is [online] (

Some parts of the project code are separable and usable on their own. These include:

And two components that are no longer used in the Open Siddur code:

#Web applications

The web application is being developed at the [opensiddur-client] ( project.

Note: This document is a draft. The information in it should be correct, but it could totally be improved. Please help us improve it.