# Buoy Sample Application

**URL:** <https://ifnotnil.com/t/buoy-sample-application/4742>\
**Category:** Buoy\
**Created:** [4 July 2026 17:37 UTC](https://ifnotnil.com/t/buoy-sample-application/4742 "2026-07-04T17:37:14Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [4 July 2026 17:37 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/1 "2026-07-04T17:37:14Z")

</div>

Ok, so Norman and I were chatting about this last night and we’re going to remove the layout-editor example from the samples directory and replace it with a link to the repo where that project [now lives](https://github.com/stretched-out-software/buoy-layout-editor).

The purpose of this project has a few goals.

1. It will serve as the Window layout editor for the Buoy language. Right now it allows simple positioning but no control over locks or constraints. That will come as language features allow (we’re close).
2. It will serve as a showcase of what the product is capable of, exercising all of the controls, so we can say “runs everywhere, natively”.
3. It also serves as a place to show how to use different parts of the language to the user’s benefit. We will endeavor to document the project thoroughly as we go.
4. It should also be a “best-practices” demonstration. We want to add unit tests that run whenever the project is run in VSCode now that DebugBuild is actually set to True at appropriate times.

---

<div class="post-metadata">

**Author:** ![tkaltschmidt](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ce7236/32.png) [@tkaltschmidt](https://ifnotnil.com/u/tkaltschmidt)\
**Post date:** [4 July 2026 21:12 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/2 "2026-07-04T21:12:02Z")

</div>

> 1. Build and run the editor sources in `src/` with the Buoy compiler.

Nice, but how exactly?

```auto
src % buoy LayouteditorApp.bui -o LayoutEditor.app
LayoutEditorWindow.bui:529:0: error: class 'LibrarySource' already declared (use 'Partial Class' to split a class across files)
controls/LayoutLibrary.bui:16:0: error: class 'LibrarySource' already declared (use 'Partial Class' to split a class across files)

```

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [4 July 2026 21:19 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/3 "2026-07-04T21:19:21Z")

</div>

Yeah well I guess I broke that today. I’ll get that fixed in a sec.

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [4 July 2026 21:23 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/4 "2026-07-04T21:23:34Z")

</div>

Fixed. Apparently I had some uncommitted changes.

---

<div class="post-metadata">

**Author:** ![tkaltschmidt](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ce7236/32.png) [@tkaltschmidt](https://ifnotnil.com/u/tkaltschmidt)\
**Post date:** [4 July 2026 21:35 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/5 "2026-07-04T21:35:28Z")

</div>

Thank you, but now i get this error

```auto
src % buoy LayouteditorApp.bui -o LayoutEditor.app
error: cannot find library 'buoy_picture' for Declare (looked in:
  /arm64-apple-macos/buoy_picture.tbd
  arm64-apple-macos/libbuoy_picture.dylib
  /libbuoy_picture.dylib
  arm64-apple-macos/buoy_picture.dylib
  /buoy_picture.dylib
  LayoutEditor.app/Contents/MacOS/libbuoy_picture.dylib
  LayoutEditor.app/Contents/MacOS/buoy_picture.dylib)

```

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [4 July 2026 22:11 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/6 "2026-07-04T22:11:07Z")

</div>

Looking… no good deed. Looks like this broke when I stripped out the developer paths during linking. Working on a quick patch.

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [4 July 2026 22:30 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/7 "2026-07-04T22:30:50Z")

</div>

0.19.4 is available with a fix for that. Very strange that this was not reproducible in VSCode.

---

<div class="post-metadata">

**Author:** ![tkaltschmidt](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ce7236/32.png) [@tkaltschmidt](https://ifnotnil.com/u/tkaltschmidt)\
**Post date:** [5 July 2026 07:16 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/8 "2026-07-05T07:16:37Z")

</div>

Thank you, it works now! The Layout-App for macOS with GUI is under 1 MByte, amazing. 🙂

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [5 July 2026 12:10 UTC](https://ifnotnil.com/t/buoy-sample-application/4742/9 "2026-07-05T12:10:08Z")

</div>

We should all keep in mind that it’s early days for the buoy framework. As we add new built-in features, the size of the base framework components are going to grow and that tiny footprint grows with it. We are striving to keep features compartmentalized as much as possible so that only what you need in your apps is included, but there will be limits if frameworks get cross-pollinated. For instance FileSystemItem needs DateTime, DateTime needs TimeZone.
