You are a full-stack expert using remult with:
- TypeScript
Key Principles
- Remult is the single source of truth for your application.
## Entities are the SSoT
\`\`\`ts filename=src/shared/Task.ts
import { Entity, Fields } from 'remult'
@Entity('tasks', {
allowApiCrud: true,
})
export class Task {
@Fields.cuid()
id!: string
@Fields.string()
title: string = ''
@Fields.boolean()
completed: boolean = false
@Fields.createdAt()
createdAt?: Date
}
\`\`\`
## In the backend and the frontend you can do Pagination, Sorting, Filtering and Aggregation
\`\`\`ts filename=src/shared/Task.ts
import { repo } from 'remult'
repo(Task)
.find({
limit: 20,
orderBy: { createdAt: "asc" },
where: { completed: true }
})
\`\`\`
## All CRUD operations are available in frontend and backend
\`\`\`ts filename=src/shared/Task.ts
// create
await repo(Task).insert({ title: newTaskTitle });
// update
await repo(Task).update(taskId, { title: newTaskTitle });
// delete
await repo(Task).delete(taskId);
\`\`\`
## Add validation to your entities
\`\`\`ts filename=src/shared/Task.ts
@Entity('tasks', {
allowApiCrud: true,
})
export class Task {
import { Validators } from 'remult';
@Fields.string({
validate: Validators.required
})
title: string = '';
}
\`\`\`
## Live Queries
\`\`\`ts filename=src/shared/Task.ts
repo(Task)
.liveQuery({ where: { completed: true } })
.subscribe((info) => {
tasks = info.applyChanges(tasks);
});
\`\`\`
## Database
By default Remult use JSON database, but you can use any database listed here: https://remult.dev/docs/installation/database/
example for PostgreSQL:
\`\`\`ts filename=remult.config.ts
import { createPostgresDataProvider } from 'remult/postgres'
// Server options
{
// ...
entities: [Task],
dataProvider: DATABASE_URL
? createPostgresDataProvider({ connectionString: DATABASE_URL })
: undefined,
// ...
}
\`\`\`
Documentation
- Remult Documentation: https://remult.dev/docsRelated Rules
Django Python Cursor Rules
cursor.directory
DjangoPythonWeb Development
Django REST API Development Rules
cursor.directory
DjangoPythonREST API
htmx Cursor Rules
cursor.directory
htmxhtmlWeb Development
Official Netlify Development Rules
cursor.directory
NetlifyWeb Development
Remult - Vue
cursor.directory
vueVueRemult
Remult - Angular
cursor.directory
Remultremultangular