# Mail, files, search and cache

Source: https://docs.anetos.dev/guides/mail-files-search-and-cache/

- [Send email](https://docs.anetos.dev/guides/mail/index.md): Send email from your app: a receipt, a welcome message, a password reset link. An email is a **mailable**, a type that builds its message from its fields, with an HTML body from a templ component. Send it now, or queue it so a worker sends it with retries. The complete app is [`examples/queue`](https://github.com/anetos-dev/anetos/tree/main/examples/queue), which emails a receipt for each order.
- [Store files](https://docs.anetos.dev/guides/storage/index.md): Store files your app receives or makes: uploads, avatars, exports, invoices. Files go on **disks**: a disk is a named place files are kept, which is a local directory by default, or an S3-compatible bucket (Amazon S3, Cloudflare R2, MinIO, …) or a Google Cloud Storage bucket, with the same code. Private files are read through temporary signed URLs. The complete app is [`examples/files`](https://github.com/anetos-dev/anetos/tree/main/examples/files).
- [Add full-text search](https://docs.anetos.dev/guides/search/index.md): Give users a search box that finds what they mean: every word they type, in any of the columns you choose, best matches first. Search runs on your database's own full-text engine (PostgreSQL, MySQL/MariaDB or SQLite), with an index built by a migration; there's no search server to run. The complete example is [`examples/forms`](https://github.com/anetos-dev/anetos/tree/main/examples/forms), a notes app with a search box.
- [Cache](https://docs.anetos.dev/guides/cache/index.md): Keep the results of slow work for a while, count events for rate limits, and use locks so only one instance of the app does a job at a time.
