# Developer Docs

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4>Write Apps</h4><ul class="contains-task-list"><li><input type="checkbox" checked>Build apps using GTK and Granite</li><li><input type="checkbox" checked>Set up a Meson build system</li><li><input type="checkbox" checked>Work with Gettext translations</li><li><input type="checkbox" checked>Package your app with Flatpak</li></ul></td><td></td><td></td><td><a href="writing-apps/our-first-app">our-first-app</a></td></tr><tr><td><h4>Publish in AppCenter</h4><ul class="contains-task-list"><li><input type="checkbox" checked>Review publishing requirements</li><li><input type="checkbox" checked>Monetize your app</li><li><input type="checkbox" checked>Submit for review with GitHub</li><li><input type="checkbox" checked>Publish Updates</li></ul></td><td></td><td></td><td><a href="appcenter/submission-process">submission-process</a></td></tr></tbody></table>

### Do I need to know Vala?

The examples in this documentation use Vala, but the libraries and concepts used to build apps for elementary OS also work with a number of popular languages like C, Python, Go, Rust, etc. We don't assume extensive expertise in Vala in this guide, but basic programming knowledge and experience with object-oriented programming languages will be valuable.

If you're not familiar with Vala and want to learn, there are great resources available on [the Vala website](https://vala.dev/)

### Does this guide cover design principles?

Design is covered in the [Human Interface Guidelines (HIG)](https://docs.elementary.io/hig/). We reference the HIG throughout this guide and it's important you grasp the concepts proposed there, but this guide is focused primarily on code.

### Do I need to read this guide in order?

We recommend to at least skim "[The Basic Setup](https://docs.elementary.io/develop/writing-apps/the-basic-setup)" first, but sections are generally written to be standalone tutorials and will reference other parts of the guide where necessary.

### Where I can get help?

We use GitHub discussions for Q\&A as well as a place to submit ideas or show off what you're working on! [Join the community](https://github.com/elementary/docs/discussions)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.elementary.io/develop/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
