The official documentation for Fe, a statically typed smart contract programming language for the Ethereum Virtual Machine (EVM).
Live site: https://fe-lang.github.io/www/
Fe is designed for writing safe, expressive smart contracts. Key features include:
- Effect system: Explicitly track state access and mutations
- Strong typing: Catch errors at compile time
- Rust-inspired syntax: Familiar patterns for systems programmers
- EVM-native: Compiles to efficient EVM bytecode
This documentation covers language fundamentals, contract development patterns, and practical examples.
.
├── src/
│ ├── content/
│ │ └── docs/ # Documentation content (Markdown)
│ ├── assets/ # Images and media
│ └── styles/ # Custom CSS
├── bin/ # Fe compiler binaries
├── scripts/
│ ├── fe # Platform-detecting Fe wrapper
│ └── check-examples.sh # Validate all code snippets
├── public/ # Static assets
├── astro.config.mjs # Astro/Starlight configuration
└── package.json
- Node.js 20+
- npm
# Install dependencies
npm install
# Start dev server at localhost:4321
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewAll Fe code blocks in the documentation are type-checked to ensure accuracy:
# Validate all code snippets
bash scripts/check-examples.sh
# Check a specific Fe file
./scripts/fe check path/to/file.fe| Command | Action |
|---|---|
npm install |
Install dependencies |
npm run dev |
Start local dev server at localhost:4321 |
npm run build |
Build production site to ./dist/ |
npm run preview |
Preview build locally before deploying |
npm run astro ... |
Run Astro CLI commands |
See CONTRIBUTING.md for detailed guidelines on:
- Writing and formatting Fe code examples
- Using hide directives for boilerplate
- Validating documentation changes
- Customizing the Starlight site