# Workflow for interactive application development?

**URL:** <https://erlangforums.com/t/workflow-for-interactive-application-development/5771>\
**Category:** Questions / Help\
**Tags:** shell, workflow\
**Created:** [July 3, 2026, 10:28am UTC](https://erlangforums.com/t/workflow-for-interactive-application-development/5771 "2026-07-03T10:28:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zaza](https://erlangforums.com/letter_avatar_proxy/v4/letter/z/e19b73/32.png) [@Zaza](https://erlangforums.com/u/Zaza)\
**Post date:** [July 3, 2026, 10:28am UTC](https://erlangforums.com/t/workflow-for-interactive-application-development/5771/1 "2026-07-03T10:28:18Z")

</div>

What’s the usual workflow for interactive application development?

My understanding is that the workflow should be:

1. Create a `rebar.config` file for the project if needed.

2. Start an Erlang shell with `rebar3 shell`.

3. Repeat as needed:

4. Exit the shell with `q().` when done, or use `Ctrl+c` `a` to abort if stuck.

Do you recommend anything different? Thanks!

---

<div class="post-metadata">

**Author:** ![nayibor](https://erlangforums.com/user_avatar/erlangforums.com/nayibor/32/1951_2.png) [@nayibor](https://erlangforums.com/u/nayibor)\
**Post date:** [July 3, 2026, 5:37pm UTC](https://erlangforums.com/t/workflow-for-interactive-application-development/5771/2 "2026-07-03T17:37:03Z")

</div>

there is a library called [sync](https://github.com/rustyio/sync).

it can detect changes in your code, recompile the code and reload the module.

---

<div class="post-metadata">

**Author:** ![deadmarshal](https://erlangforums.com/user_avatar/erlangforums.com/deadmarshal/32/2848_2.png) [@deadmarshal](https://erlangforums.com/u/deadmarshal)\
**Post date:** [July 4, 2026, 2:00pm UTC](https://erlangforums.com/t/workflow-for-interactive-application-development/5771/3 "2026-07-04T14:00:12Z")

</div>

Other than sync already mentioned by nayibor, there’s also [rebar3\_auto](https://github.com/vans163/rebar3_auto) which I use to auto recompile modules.

---

<div class="post-metadata">

**Author:** ![WadeMealing](https://erlangforums.com/user_avatar/erlangforums.com/wademealing/32/2981_2.png) [@WadeMealing](https://erlangforums.com/u/WadeMealing)\
**Post date:** [July 8, 2026, 10:49am UTC](https://erlangforums.com/t/workflow-for-interactive-application-development/5771/4 "2026-07-08T10:49:51Z")

</div>

I wrote about my setup here [Using erlangs remote shell during devel.](https://wmealing.github.io/cellium-remote-shell.html)

---

<div class="post-metadata">

**Author:** ![Zaza](https://erlangforums.com/letter_avatar_proxy/v4/letter/z/e19b73/32.png) [@Zaza](https://erlangforums.com/u/Zaza)\
**Post date:** [July 8, 2026, 1:06pm UTC](https://erlangforums.com/t/workflow-for-interactive-application-development/5771/5 "2026-07-08T13:06:59Z")

</div>

Thank you. Since your article touches Emacs, I’m linking your other article on [_Setting up Emacs for Erlang in 2025_](https://wmealing.github.io/erlang-emacs-2025.html) for those who may miss it.
