Skip to content

Getting Started

jj edited this page Aug 23, 2026 · 3 revisions

πŸš€ Getting Started with Sere

From your first .sere file to your first native executable.

Welcome to Sere.

If you've already read Home, you know the basic idea:

Python-like syntax. Static types. Native code. Low-level control.

This page gets you from zero to a working Sere program.


πŸ“‹ What You'll Learn

By the end of this guide, you'll know how to:

  • πŸ› οΈ Set up the Sere toolchain

  • πŸ“ Create a Sere project

  • ✍️ Write your first .sere program

  • πŸ”¨ Compile Sere source

  • ▢️ Run a Sere program

  • 🧠 Use variables and types

  • 🧩 Define functions

  • πŸ“¦ Work with collections

  • πŸ—οΈ Define structs

  • πŸ§ͺ Analyze your code

  • βš™οΈ Understand what happens during compilation


πŸ› οΈ Prerequisites

Sere is currently developed around a native LLVM-based toolchain.

The compiler development environment currently targets:

Dependency | Version -- | -- CMake | 3.28+ Ninja | 1.11+ Visual Studio Build Tools | 2022 LLVM | 22.1.8

For the complete CLI reference, see Compiler CLI.


πŸ“ Creating a Project

Once you've moved beyond a single file, use the project tooling.

Create a project:

sere init myapp

Enter it:

cd myapp

Build it:

sere build

Run it:

sere run

Clean generated files:

sere clean

This gives larger Sere applications a consistent project workflow instead of requiring every project to invent its own build process.


🧭 Where to Go Next

You've now seen the basic shape of Sere.

From here, pick your path.

🟒 Learn the Language

If you're here to write Sere:

πŸ”΅ Build Applications

If you're ready to make something:

🟣 Hack on Sere

If you're here to work on the compiler:


🎯 Your First Challenge

Try building this yourself:

struct Person:
    name: str
    age: i32

def introduce(person: Person) -> void: print(f"Hello, I'm {person.name} and I'm {person.age} years old.")

def main() -> i32: person = Person("Ada", 36)

introduce(person)

return 0

Compile it.

Run it.

Then start changing it.

Add another field.

Add another function.

Create a list of people.

Experiment.

That's where Sere starts becoming more than syntax.


πŸͺΆ What's Next?

You've got the basics.

Now it's time to learn how Sere actually works.

β†’ Language Reference

Or, if compiler internals are more your thing:

β†’ Architecture

Welcome to Sere.

Now go build something.