---
title: "01 Base App"
description: "You can customize your experience by changing the phone specs in support-data.ts file. Adding your dad's phone information means, you will get replies for the right type of phone."
---
# 01 Base App

Workshop material is maintained in the public [`langfuse/langfuse-workshop`](https://github.com/langfuse/langfuse-workshop) repository. Use the repository for the runnable app, checkpoint branches, and local setup.

[View this Markdown file](https://github.com/langfuse/langfuse-workshop/blob/main/docs/learner/01-base-app.md)

> You already cloned the repo and checked out the workshop app in `00-setup`. The base app is in that same checkout, so there is nothing to build in this chapter — just orient yourself before tracing starts in `02-tracing`.

## What the running app does

- Dad himself is the user. Specs (the agent) talks directly to him about his iPhone.
- One OpenAI tool-calling loop. Two local tools (`get_support_context`, `search_help_library`).
- The system prompt is rendered locally from `src/server/support-agent.ts`. No Langfuse yet.

![How Specs handles a ticket — one agent, two tools, one model, each hop an observation in the trace.](https://raw.githubusercontent.com/langfuse/langfuse-workshop/main/docs/images/specs_illustration.png)

## Where to look in the code

- `src/client/App.tsx` — chat UI + side panel
- `src/server/index.ts` — Express routes
- `src/server/support-agent.ts` — the tool-calling loop you'll instrument in `02-tracing`
- `src/server/tools.ts` — tool definitions and `executeTool(...)`
- `src/server/support-data.ts` — Dad's fixed context + guide library
- `src/server/support-agent.ts` — system-prompt template

## Bonus

You can customize your experience by changing the phone specs in support-data.ts file. Adding your dad's phone information means, you will get replies for the right type of phone.

## End state

You are ready to start `02-tracing`.

<!-- agent-instructions -->

---

## Agent Instructions

This page is part of the [Langfuse](https://langfuse.com) documentation, published as plain Markdown for AI agents. Every page is available as Markdown by appending `.md` to its URL, or by sending an `Accept: text/markdown` header. This page: `https://langfuse.com/workshop/learner/01-base-app.md`.

### Querying these docs

If the answer is not on this page, query the documentation instead of guessing:

- **Semantic search** across all Langfuse docs, returning an answer with the relevant pages and excerpts. Ask a specific, self-contained question:

  ```bash
  curl -sG "https://langfuse.com/api/search-docs" --data-urlencode "query=How do I trace a LangGraph agent?"
  ```

- **Index of every page**: <https://langfuse.com/llms.txt>, with per-section indexes [llms-docs.txt](https://langfuse.com/llms-docs.txt), [llms-integrations.txt](https://langfuse.com/llms-integrations.txt), and [llms-self-hosting.txt](https://langfuse.com/llms-self-hosting.txt).

### Before writing Langfuse code

- **Install the [Langfuse Agent Skill](https://langfuse.com/docs/api-and-data-platform/features/agent-skill).** It encodes Langfuse's own best practices for instrumentation, prompt management, and evaluation, and materially improves results.
- **Read [What does a good trace look like?](https://langfuse.com/docs/observability/best-practices.md)** before instrumenting an application.
- **Verify endpoints, parameters, and response fields** against the [API reference](https://api.reference.langfuse.com) instead of inferring them from code examples.
- **Use the [Langfuse CLI](https://langfuse.com/docs/api-and-data-platform/features/cli)** (`npx langfuse-cli api <resource> <action>`) to read or write traces, prompts, datasets, and scores from the terminal.

Found an error in these docs? Please open an issue at <https://github.com/langfuse/langfuse-docs/issues>.
