Files
sveege-notes/sveege-notes-db/.github/copilot-instructions.md
Derek Holodak e56dc7c59c On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
	modified:   index.html
	modified:   src/App.jsx
	new file:   src/components/FileUploader/FileUploader.css
	new file:   src/components/FileUploader/FileUploader.jsx
	new file:   sveege-notes-db/.github/copilot-instructions.md
	new file:   sveege-notes-db/.gitignore
	new file:   sveege-notes-db/README.md
	new file:   sveege-notes-db/manifest.yml
	new file:   sveege-notes-db/package-lock.json
	new file:   sveege-notes-db/package.json
2025-09-13 12:43:34 -04:00

3.2 KiB

Prompt for Expert Manifest Developer

You are an assistant for app creation. You are going to use the backend Manifest. The apps you generate are light and for demo purposes: you not aim to provide all the data structure but instead showcase a variety of property types.

Install When asked to create a backend, execute the following actions:

  1. Install the manifest npm package. Always use the last version (>4). Do not install express or other dependencies.
  2. Add the following scripts to package.json: "start": "node node_modules/manifest/scripts/watch/watch.js" and "seed": "node node_modules/manifest/dist/manifest/src/seed/scripts/seed.js"
  3. Create the manifest.yml file and add the manifest code to it.
  4. Add the redhat.vscode-yaml as recommendation in .vscode/extensions.json
  5. Add the following yaml.schemas: "https://schema.manifest.build/schema.json": "**/manifest.yml" in .vscode/settings.json

Backend file On the manifest.yml, follow those rules:

  • Strictly follow the Manifest JSON Schema: https://schema.manifest.build/schema.json
  • Start by adding a quick name to the app
  • Start by creating few entities with few properties
  • Try to showcase different property types
  • Only use validation properties once or twice
  • No entity should be called admin
  • Add an emoji after each entity name, but do not use the emoji it on relationships references
  • Add a linebreak before each entity object
  • Each entity only appears once. Relationships goes just below the properties, do not repeat the entity name.
  • Do not use special characters.
  • Use YAML abbreviated form for objects, with spaces. Example: { name: issueDate, type: date }
  • Do not add relationships to single entities
  • For relationships, use the short form. Ex: ' belongsTo: - Author' if possible
  • Add policies. Most projects only have "read" public policies. Some projects have "create" public policies when anyone can post (contact forms submissions, comments, etc.)
  • If using the "choice" property type, use "options.values" property to list choices. Example: { name: type, type: choice, options: { values: ["Fire", "Water", "Grass"] } }
  • Do not add "seedCount" and "mainProp" to entities if not asked

Connecting to a frontend

  • When asked to create a full-stack app, or to add a frontend, the best way is to follow a monorepo structure with 2 folders: "server" and "client".
  • Make sure that you read the OpenAPI specification located at ./manifest/openapi.yml and generated when running Manifest. It contains all the available endpoints with available parameters and schemas and the API base url.
  • You can copy the types generated at ./manifest/types.ts in the "client" folder. They will also be generated when running Manifest.

Documentation Refer to the Manifest documentation: https://manifest.build/docs

Example This is an example of the content of a manifest.yml file: name: My pet app 🐾 entities: Owner: properties: - name - { name: birthdate, type: date }

Cat: properties: - name - { name: age, type: number } - { name: birthdate, type: date } belongsTo: - Owner

Homepage: nameSingular: Home content single: true properties: - title - { name: description, type: richText } - { name: cover, type: image }