Firebase Studio āĻŦāĻŋāϞā§āĻ-āĻāύ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻāĻāĻāĻŋ āĻŦāĻŋāϏā§āϤā§āϤ āĻĒāϰāĻŋāϏāϰ āĻ āĻĢāĻžāϰ āĻāϰ⧠āϝāĻžāϰ āĻŽāϧā§āϝ⧠āϏāĻŽāϏā§āϤ āĻĢāĻžāĻāϞ, āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϝāĻžāĻā§āĻ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ) āĻāĻŦāĻ āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻžāώāĻž āĻŦāĻž āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻā§āϰ āϏāĻžāĻĨā§ āĻĻā§āϰā§āϤ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻĒāύāĻŋ GitHub-āĻ āĻšā§āϏā§āĻ āĻāϰāĻž āĻāĻŽāĻŋāĻāύāĻŋāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ Firebase Studio āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āĻāĻžāϞ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āĻāϰāĻ āϤāĻĨā§āϝā§āϰ āĻāύā§āϝ, āĻāĻāĻāĻŋ Firebase Studio āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āϤā§āϰāĻŋ āĻāϰā§āύ āĻĻā§āĻā§āύāĨ¤
āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāĻŋāϞā§āĻ-āĻāύ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§ āĻŦāĻž āĻāĻŋāĻ āĻĨā§āĻā§ āĻĒā§āϰāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻāĻŽāĻĻāĻžāύāĻŋ āĻāϰāĻŦā§, āϤāĻŦā§ āĻāϰāĻ āĻāύā§āύāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰā§, āĻāĻĒāύāĻŋ āύāĻŋāĻā§āϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ, āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ, āĻŦāĻž āĻĒāϰāĻŋāώā§āĻŦāĻž āϤā§āϰāĻŋ āĻāϰ⧠āĻĨāĻžāĻā§āύ , āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻā§āϞāĻžāĻāĻĄ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŽā§āĻļāĻŋāύā§āϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻļāĻā§āϤāĻŋāϰ āϏāĻžāĻĨā§ āĻŦā§āϰāĻžāĻāĻāĻžāϰāĻāĻŋ āĻā§āĻĄāĻŧā§ āύāĻž āĻĻāĻŋāϝāĻŧā§ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝā§āĻā§āϤāĻŋāϰ āϏāĻžāĻĨā§ āĻĻā§āϰā§āϤ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύ⧎
āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻĒāĻāύā§āĻĻā§āϰ āĻĒā§āϰāϝā§āĻā§āϤāĻŋāϰ āϏā§āĻā§āϝāĻžāĻ āĻĨāĻžāĻāϞā§, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĻāĻŋāϝāĻŧā§ āύāϤā§āύ āĻĒā§āϰāĻāϞā§āĻĒ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻšāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ āύā§āϝāĻĻā§āϰ āĻļā§āĻāĻžāύ, āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ āĻŦāĻž āĻā§āĻĄāϞā§āϝāĻžāĻŦ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ , āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻĒāύāĻžāϰ āĻā§āĻĄāϞā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻžāϰāĻŽā§āĻāĻŋāĻ āĻŦāĻŋāύā§āĻĻā§ āĻĒā§āϰāĻžāĻ-āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāϤā§āϰāĻĻā§āϰ āĻāύā§āϝ āĻāĻŋāĻā§ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻĻāĻā§āώā§āĻĒ āϏāϰāĻŋāϝāĻŧā§ āĻĢā§āϞāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻžāϏā§āĻāĻŽ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϞāĻŋāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻŋāĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ README
āĻĢāĻžāĻāϞ, āĻĒā§āϝāĻžāĻā§āĻ āĻŦāĻŋāĻļāĻĻ āĻĒā§āώā§āĻ āĻž (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, NPM-āĻ), āĻŦāĻž āĻ
āύā§āϝ āϝā§āĻā§āύ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝā§āĻā§āϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻļā§āϰ⧠āĻāϰāĻŦā§ āĻŦāϞ⧠āĻāĻļāĻž āĻāϰāĻā§āύ⧎
āĻĒā§āϰā§āĻŦāĻļāϰā§āϤ
āĻāĻĒāύāĻŋ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāĻā§:
āĻāĻĒāύāĻžāϰ āĻĒāϰāĻŋāĻŦā§āĻļ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤā§
idx/dev.nix
āĻĢāĻžāĻāϞāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ āϤāĻž āĻļāĻŋāĻā§āύāĨ¤āύāĻŋāĻā§āϏ āĻāĻžāώāĻžāϰ āĻŽā§āϞāĻŋāĻ āĻŦāĻŋāώāϝāĻŧāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻāĻŋāϤ āĻšāύ āĻāĻŦāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏāĻāĻŋ āĻšāĻžāϤ⧠āϰāĻžāĻā§āύāĨ¤
āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĢāĻžāĻāϞ āĻāĻ āύ
āĻāĻāĻāĻŋ Firebase Studio āĻā§āĻŽāĻĒā§āϞā§āĻ āĻšāϞ āĻāĻāĻāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāĻŋāĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ (āĻŦāĻž āĻāĻāĻāĻŋ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āĻĢā§āϞā§āĻĄāĻžāϰ āĻŦāĻž āĻļāĻžāĻāĻž) āϝāĻžāϤ⧠āĻāĻŽāĻĒāĻā§āώ⧠āĻĻā§āĻāĻŋ āĻĢāĻžāĻāϞ āĻĨāĻžāĻā§:
idx-template.json
āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻāύā§āϝ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§, āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āĻĻā§āĻļā§āϝāĻŽāĻžāύ āύāĻžāĻŽ, āĻŦāĻŋāĻŦāϰāĻŖ āĻāĻŦāĻ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāĻžāĻā§ āĻāĻĒāϞāĻŦā§āϧ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞāĻŋ āϏāĻšāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻ āύā§āĻāĻā§āϞāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻž āĻŦāĻž āĻāĻĻāĻžāĻšāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ Firebase Studio āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āϝāĻāύ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻžāύ āϤāĻāύ āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāύ⧠UI āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāϤ⧠āĻāĻ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤idx-template.nix
āĻšāϞ āύāĻŋāĻā§āϏ āĻāĻžāώāĻž āĻĻāĻŋāϝāĻŧā§ āϞā§āĻāĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āϝāĻžāϤ⧠āĻāĻāĻāĻŋ āĻŦā§āϝāĻžāĻļ āĻļā§āϞ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻĨāĻžāĻā§ (āύāĻŋāĻā§āϏ āĻĢāĻžāĻāĻļāύ⧠āĻŽā§āĻĄāĻŧāĻžāύā§) āϝāĻž:āύāϤā§āύ āĻāϰā§āĻŽāĻā§āώā§āϤā§āϰā§āϰ āĻāύā§āϝ āĻāĻžāĻā§āϰ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āϤā§āϰāĻŋ āĻāϰā§āĨ¤
āĻāĻāĻāĻŋ
.idx/dev.nix
āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰ⧠āĻāϰ āĻĒāϰāĻŋāĻŦā§āĻļ āϏā§āĻ āĻāĻĒ āĻāϰā§āĨ¤ āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āĻāĻĒāύāĻŋ āĻāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§flutter create
āĻŦāĻžnpm init
āĻŽāϤ⧠āĻāĻāĻāĻŋ āĻĒā§āϰāĻā§āĻā§āĻ āϏā§āĻā§āϝāĻžāĻĢā§āϞā§āĻĄāĻŋāĻ āĻā§āϞāĻ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ, āĻ āĻĨāĻŦāĻž Go, Python, Node.js, āĻŦāĻž āĻ āύā§āϝ āĻāĻžāώāĻžāϝāĻŧ āϞā§āĻāĻž āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤Firebase Studio āϝāĻāύ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āϞā§āĻĄ āĻāϰ⧠āϤāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻ āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤
āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĻŋāϝāĻŧā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ idx-template.nix
āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āĻāĻ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāϞā§āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ
āύā§āϝāĻžāύā§āϝ āĻĢāĻžāĻāϞ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ āĻā§āĻĄāĻŧāĻžāύā§āϤ .idx/dev.nix
āĻĢāĻžāĻāϞāĻāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻ
āĻĨāĻŦāĻž āĻāĻŽāύāĻāĻŋ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āϏāĻŽāϏā§āϤ āϏā§āĻā§āϝāĻžāĻĢā§āϞā§āĻĄāĻŋāĻ āĻĢāĻžāĻāϞ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āϏā§āĻāĻžāϰā§āĻāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ
āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āϤā§āĻŦāϰāĻžāύā§āĻŦāĻŋāϤ āĻāϰāϤā§, āĻāĻŽāϰāĻž āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻāĻŋ āϝ⧠āĻāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύ āĻāĻāĻāĻŋ Firebase Studio āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ āϝāĻž āĻāĻĒāύāĻŋ āĻāϰāĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
- āϝā§āĻā§āύ⧠āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāĻŋāĻāĻšāĻžāĻŦ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāĻā§ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻā§ āĻĒāϰāĻŋāĻŖāϤ āĻāϰā§āύ
- āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻāĻŋāϤā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻŦāĻž āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻāĻāĻāĻŋ āĻŽā§āϞāĻŋāĻ āĻāĻĻāĻžāĻšāϰāĻŖ: āϝā§āĻā§āύ⧠āĻĒāĻžāĻŦāϞāĻŋāĻ GitHub āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞāĻā§ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻā§ āĻĒāϰāĻŋāĻŖāϤ āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ idx-template.json
āĻāĻŦāĻ idx-template.nix
āĻāĻŋāĻāĻžāĻŦā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻŦā§āύ āϤāĻžāϰ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖā§ āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāĻā§, āĻāĻāĻāĻŋ āĻŽā§āϞāĻŋāĻ āĻāĻĻāĻžāĻšāϰāĻŖ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻĻā§āĻāϤ⧠āĻĻāϰāĻāĻžāϰā§:
- āĻā§āύ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āĻāύāĻĢāĻŋāĻāĻžāϰāϝā§āĻā§āϝ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āύā§āĻāĨ¤
- āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāϰā§āĻŽāĻā§āώā§āϤā§āϰ⧠āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āϏāĻŽāϏā§āϤ āĻĢāĻžāĻāϞ (āĻĻā§āĻāĻŋ
idx-template
āĻĢāĻžāĻāϞ āĻŦāĻžāĻĻā§) āĻāĻĒāĻŋ āĻāϰā§āĨ¤ āĻĒāϰāĻŋāĻŦā§āĻļāĻā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰ⧠āĻāĻŽāύ āĻāĻāĻāĻŋdev.nix
āĻĢāĻžāĻāϞ āϏāĻš āĻāĻāĻāĻŋ.idx
āϏāĻžāĻŦāĻĢā§āϞā§āĻĄāĻžāϰ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§ā§ˇ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāĻā§ āϝā§āĻā§āύ⧠āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāĻŋāĻāĻšāĻžāĻŦ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠(āĻŦāĻž āϏāĻžāĻŦāĻĢā§āϞā§āĻĄāĻžāϰ āĻŦāĻž āĻļāĻžāĻāĻž) āϝā§āĻ āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰāĻāĻžāĻŦā§ āϏā§āĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāĻāĻŋāĻā§ Firebase Studio āĻā§āĻŽāĻĒā§āϞā§āĻā§ āĻĒāϰāĻŋāĻŖāϤ āĻāϰā§āĨ¤
idx-template.json
{
"name": "Hello world",
"description": "A template for a CLI program that prints 'hello world'",
"icon": "https://www.gstatic.com/images/branding/productlogos/studio/v1/192px.svg",
"params": []
}
idx-template.nix
# No user-configurable parameters
{ pkgs, ... }: {
# Shell script that produces the final environment
bootstrap = ''
# Copy the folder containing the `idx-template` files to the final
# project folder for the new workspace. ${./.} inserts the directory
# of the checked-out Git folder containing this template.
cp -rf ${./.} "$out"
# Set some permissions
chmod -R +w "$out"
# Remove the template files themselves and any connection to the template's
# Git repository
rm -rf "$out/.git" "$out/idx-template".{nix,json}
'';
}
āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŽāύ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāύāϤ⧠āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāύ⧎
āĻāĻāĻāĻŋ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻŦāĻž āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ⧎
Firebase Studio āĻāĻŋāĻŽ Firebase Studio āĻā§āĻŽāĻĒā§āϞā§āĻāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻĻā§āĻāĻŋ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§:
āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻā§āĻŽāĻĒā§āϞā§āĻ : āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āύāϤā§āύ āĻ ā§āϝāĻžāĻĒ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ Firebase Studio āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻĨā§āĻā§ āϏāϰāĻžāϏāϰāĻŋ āĻāĻ āĻā§āĻŽāĻĒā§āϞā§āĻāĻā§āϞāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύāĨ¤
āĻāĻŽāĻŋāĻāύāĻŋāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ : āĻāĻ āĻā§āĻŽāĻĒā§āϞā§āĻāĻā§āϞāĻŋ āĻāĻĒā§āύ āϏā§āϰā§āϏ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āĻĨā§āĻā§ āĻ āĻŦāĻĻāĻžāύā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻāύāĻŋāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§, āĻāĻŽāĻŋāĻāύāĻŋāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ Git āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āĻā§āϞā§āύ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āϝ⧠āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāύ āϤāĻžāϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϞāĻŋāĻā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āĻāĻŋāϤā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻā§āĻŽāĻĒā§āϞā§āĻ āϏāĻš āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰāϤā§:
āĻāĻĒāύāĻžāϰ āĻāĻžāϏā§āĻāĻŽ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻāĻŋāϤā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻā§āύ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ āϤāĻž āϏā§āĻĨāĻŋāϰ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ āĻā§āϞā§āύ āĻāϰā§āύāĨ¤
idx-template.json
,idx-template.nix
, āĻāĻŦāĻ.idx/dev.nix
āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰā§āύ, āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰā§āύ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύāĨ¤āĻāĻĒāύāĻžāϰ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ.
āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĒā§āϰāĻāĻžāĻļ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϰā§āĻŽāĻā§āώā§āϤā§āϰ āϤā§āϰāĻŋ āĻāϰā§āύ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āύā§āϏā§āĻā§āĻĄ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāϰ URL-āĻ āϏāϰāĻžāϏāϰāĻŋ āϞāĻŋāĻā§āĻ āĻāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖ āϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻŽāĻŋāĻāύāĻŋāĻāĻŋ "āĻā§āϝāĻžāύāĻŋāϞāĻž āĻāĻžāĻāĻ" āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĨāĻžāĻā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āύāĻŋāĻŽā§āύā§āĻā§āϤ URL āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϰā§āĻŽāĻā§āώā§āϤā§āϰā§āϰ āĻŦāĻŋāϧāĻžāύ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŦā§āύ:
https://studio.firebase.google.com/new?template=https://github.com/firebase-studio/community-templates/tree/main/vite-vanilla
āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŽāύ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāύāϤ⧠āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāύ⧎
āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰā§āύ
āĻāĻāύ āϝā§āĻšā§āϤ⧠āĻāĻĒāύāĻŋ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŽā§āϞāĻŋāĻ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰā§āĻā§āύ, āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻžāϰ āϏāĻžāĻĨā§ āĻŽā§āϞ⧠idx-template.json
, idx-template.nix
āĻāĻŦāĻ .idx/dev.nix
āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ⧎ āĻāĻĒāύāĻŋ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύ:
- āĻāĻĒāύāĻžāϰ
bootstrap
āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϝāĻžāĻā§āĻ āϝā§āĻ āĻāϰā§āύ āĨ¤ - āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āĻāύāĻĢāĻŋāĻāĻžāϰāϝā§āĻā§āϝ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϝā§āĻ āĻāϰā§āύ
- āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻā§āύ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āϞāϤ⧠āĻšāĻŦā§ āϤāĻž āĻāϝāĻŧāύ āĻāϰā§āύ⧎
- āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āĻāĻāĻāύ āĻāϝāĻŧāύ āĻāϰā§āύ⧎
āĻāĻĒāύāĻžāϰ bootstrap
āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻŽā§āϞāĻŋāĻ āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻŋ āϏāĻ āĻŋāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻ
āύā§āϞāĻŋāĻĒāĻŋ āĻāϰāϤ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻŽā§āϞāĻŋāĻ POSIX āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ bootstrap
āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϤ⧠āĻĒāĻžāϰā§, āϝā§āĻŽāύ git
, node
, python3
, āĻŦāĻž āĻ
āύā§āϝāĻžāύā§āϝāĨ¤
āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ idx-template.nix
āĻĢāĻžāĻāϞ⧠packages
āĻāϞā§āϞā§āĻ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻŦā§āĻāϏā§āĻā§āϰā§āϝāĻžāĻĒ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϝāĻžāĻā§āĻ āĻāĻĒāϞāĻŦā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻ āĻŋāĻ āϝā§āĻŽāύ āĻāĻĒāύāĻŋ dev.nix
āĻĢāĻžāĻāϞ⧠packages
āϝā§āĻ āĻāϰ⧠āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϝāĻžāĻā§āĻ āϏāĻš āĻāĻāĻāĻŋ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻžāύ⧠pkgs.nodejs
āϝā§āĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāϝāĻŧāĻž āĻšāϞ, āϝāĻžāϰ āĻŽāϧā§āϝ⧠node
, npx
āĻāĻŦāĻ npm
āĻŽāϤ⧠āĻŦāĻžāĻāύāĻžāϰāĻŋ āϰāϝāĻŧā§āĻā§:
# idx-template.nix
{pkgs}: {
packages = [
# Enable "node", "npm" and "npx" in the bootstrap script below.
# Note, this is NOT the list of packages available to the workspace once
# it's created. Those go in .idx/dev.nix
pkgs.nodejs
];
bootstrap = ''
mkdir "$out"
# We can now use "npm"
npm init --yes my-boot-strap@latest "$out"
''
}
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āĻāύāĻĢāĻŋāĻāĻžāϰāϝā§āĻā§āϝ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϝā§āĻ āĻāϰā§āύ
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāĻĻā§āϰ āύāϤā§āύ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāύā§āϝ āϏā§āĻāύāĻž āĻŦāĻŋāύā§āĻĻā§ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāĻžāϰ āĻ
āύā§āĻŽāϤāĻŋ āĻĻāĻŋāϤā§, āĻāĻĒāύāĻŋ āĻšāϝāĻŧ āĻāĻāĻžāϧāĻŋāĻ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻ
āĻĨāĻŦāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϏāĻš āĻāĻāĻāĻŋ āĻāĻāĻ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ⧎ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻŦāĻŋāĻāϞā§āĻĒ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒā§āϰāĻžāϰāĻŽā§āĻāĻŋāĻ āĻĒāϝāĻŧā§āύā§āĻāĻā§āϞāĻŋ āĻāĻāĻāĻŋ CLI āĻā§āϞ⧠āĻĒāĻžāϏ āĻāϰāĻž āĻŦāĻŋāĻāĻŋāύā§āύ āĻŽāĻžāύ āĻšāϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ --language=js
āĻŦāύāĻžāĻŽ --language=ts
)āĨ¤
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϝā§āĻ āĻāϰāϤā§, āĻāĻĒāύāĻŋ āĻāϰāĻŦā§āύ:
- āĻāĻĒāύāĻžāϰ
idx-template.json
āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻĢāĻžāĻāϞā§āϰparams
āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻĒāύāĻžāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŦāϰā§āĻŖāύāĻž āĻāϰā§āύāĨ¤ Firebase Studio āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻāĻžāύ⧠UI (āϝā§āĻŽāύ āĻā§āĻāĻŦāĻā§āϏ, āĻĄā§āϰāĻĒ-āĻĄāĻžāĻāύ āĻāĻŦāĻ āĻā§āĻā§āϏāĻ āĻĢāĻŋāϞā§āĻĄ) āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāϤ⧠āĻāĻ āĻĢāĻžāĻāϞā§āϰ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ - āĻāĻĒāύāĻžāϰ
idx-template.nix
āĻŦā§āĻāϏā§āĻā§āϰā§āϝāĻžāĻĒ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§āĨ¤
idx-template.json
āĻ āĻāĻĒāύāĻžāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŦāϰā§āĻŖāύāĻž āĻāϰā§āύ
āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ enum
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϝā§āĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāϝāĻŧāĻž āĻšāϞ, āϝāĻž Firebase Studio āĻāĻāĻāĻŋ āĻĄā§āϰāĻĒ-āĻĄāĻžāĻāύ āĻŽā§āύ⧠āĻŦāĻž āϰā§āĻĄāĻŋāĻ āĻŦā§āϤāĻžāĻŽ āĻā§āϰā§āĻĒ āĻšāĻŋāϏāĻžāĻŦā§ āĻĻā§āĻāĻžāϝāĻŧ, āĻŦāĻŋāĻāϞā§āĻĒā§āϰ āϏāĻāĻā§āϝāĻžāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§:
{
"name": "Hello world",
"description": "A hello world app",
"params": [
{
"id": "language",
"name": "Programming Language",
"type": "enum",
"default": "ts",
"options": {
"js": "JavaScript",
"ts": "TypeScript"
},
"required": true
}
]
}
āϝā§āĻšā§āϤ⧠āĻĻā§āĻāĻŋ āĻŽāĻžāύ āϰāϝāĻŧā§āĻā§ (āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻŦāĻ āĻāĻžāĻāĻĒāϏā§āĻā§āϰāĻŋāĻĒā§āĻ), āϤāĻžāĻ UI āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāϞā§āĻĒā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϰā§āĻĄāĻŋāĻ āĻŦā§āϤāĻžāĻŽ āĻā§āϰā§āĻĒ āϰā§āύā§āĻĄāĻžāϰ āĻāϰāĻŦā§ āĻāĻŦāĻ ts
āĻŦāĻž js
āĻŽāĻžāύāĻāĻŋ idx-template.nix
āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻĒāĻžāϏ āĻāϰāĻŦā§āĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻŦāϏā§āϤā§āϰ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϰāϝāĻŧā§āĻā§:
āϏāĻŽā§āĻĒāϤā§āϤāĻŋ | āĻāĻžāĻāĻĒ | āĻŦāϰā§āĻŖāύāĻž |
---|---|---|
āĻāĻāĻĄāĻŋ | string | āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻ āύāύā§āϝ ID, āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻļā§āϞ āύāĻžāĻŽā§āϰ āĻ āύā§āϰā§āĻĒāĨ¤ |
āύāĻžāĻŽ | string | āĻāĻ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻāύā§āϝ āĻĒā§āϰāĻĻāϰā§āĻļāύ āύāĻžāĻŽ. |
āĻĒā§āϰāĻāĻžāϰ | string | āĻāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ UI āĻāĻĒāĻžāĻĻāĻžāύ āĻāĻŦāĻ āĻŦā§āĻāϏā§āĻā§āϰā§āϝāĻžāĻĒ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻĒāĻžāϏ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āĨ¤ āĻŦā§āϧ āĻŽāĻžāύ āĻšāϞ:
|
āĻŦāĻŋāĻāϞā§āĻĒ | object | enum āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻāύā§āϝ, āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻāĻžāύā§āϰ āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āϝāĻĻāĻŋ āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ {"js": "JavaScript", ...} , "JavaScript" āĻŦāĻŋāĻāϞā§āĻĒ āĻšāĻŋāϏāĻžāĻŦā§ āĻĻā§āĻāĻžāύ⧠āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻŽāĻžāύ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϞ⧠js āĻšāĻŦā§āĨ¤ |
āĻĄāĻŋāĻĢāϞā§āĻ | string āĻŦāĻž boolean | UI-āϤ⧠āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŽāĻžāύ āϏā§āĻ āĻāϰā§āĨ¤ enum āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻāύā§āϝ, āĻāĻāĻŋ āĻ
āĻŦāĻļā§āϝāĻ options āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻā§ āĻšāϤ⧠āĻšāĻŦā§āĨ¤ boolean āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻāύā§āϝ, āĻāĻāĻŋ true āĻŦāĻž false āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤāĨ¤ |
āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ | boolean | āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝ⧠āĻāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ |
idx-template.nix
āĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŽāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ idx-template.json
āĻĢāĻžāĻāϞ⧠params
āĻ
āĻŦāĻā§āĻā§āĻ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĒāĻāύā§āĻĻā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŽāĻžāύāĻā§āϞāĻŋāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻŦā§āĻāϏā§āĻā§āϰā§āϝāĻžāĻĒ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāĻž āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻŦāĻŋāĻāĻžāĻā§ āĻāĻĻāĻžāĻšāϰāĻŖ āĻ
āύā§āϏāϰāĻŖ āĻāϰā§, āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāĻāĻĄāĻŋ language
āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĨāĻžāĻā§ āϝāĻž āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻŽāĻžāύ ts
āĻŦāĻž js
āϏāĻš āĻāĻāĻāĻŋ enum, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
# idx-template.nix
# Accept additional arguments to this template corresponding to template
# parameter IDs, including default values (language=ts by default in this example).
{ pkgs, language ? "ts", ... }: {
packages = [
pkgs.nodejs
];
bootstrap = ''
# We use Nix string interpolation to pass the user's chosen programming
# language to our script.
npm init --yes my-boot-strap@latest "$out" -- --lang=${language}
''
}
āĻāϰā§āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻšāϞ āĻļāϰā§āϤāϏāĻžāĻĒā§āĻā§āώ⧠āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻāϝāĻŧā§āϰ āĻŽāĻžāύā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻžāĨ¤ āĻāĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖ āϞā§āĻāĻžāϰ āĻāϰā§āĻāĻāĻŋ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ:
npm init --yes my-boot-strap@latest "$out" -- \
${if language == "ts" then "--lang=ts" else "--lang=js" }
āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻā§āύ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āϞāϤ⧠āĻšāĻŦā§ āϤāĻž āĻāϝāĻŧāύ āĻāϰā§āύ⧎
āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āϏāĻžāĻĨā§ āύāϤā§āύ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āϤā§āϰāĻŋ āĻšāϞ⧠āϏāĻŽā§āĻĒāĻžāĻĻāύāĻžāϰ āĻāύā§āϝ āĻā§āύ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āϞāĻž āĻāĻāĻŋāϤ āϤāĻž āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāĻž āĻāĻāĻāĻŋ āĻāĻžāϞ āϧāĻžāϰāĻŖāĻžā§ˇ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽā§āϞāĻŋāĻ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§āϰ āĻāύā§āϝ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻĒā§āϰāϧāĻžāύ HTML, JavaScript āĻāĻŦāĻ CSS āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āϞāϤ⧠āĻāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻā§āύ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āϞāϤ⧠āĻšāĻŦā§ āϤāĻž āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤā§, āĻāĻĒāύāĻžāϰ .idx/dev.nix
āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ (āĻāĻĒāύāĻžāϰ idx-template.nix
āĻĢāĻžāĻāϞ āύāϝāĻŧ !) āĻāĻāĻāĻŋ openFiles
āĻ
ā§āϝāĻžāĻā§āϰāĻŋāĻŦāĻŋāĻāĻ āϏāĻš āĻāĻāĻāĻŋ onCreate
āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āĻšā§āĻ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāϤā§, āϝā§āĻŽāύ:
# .idx/dev.nix
{pkgs}: {
...
idx = {
# Workspace lifecycle hooks
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
# Open editors for the following files by default, if they exist.
# The last file in the list will be focused.
default.openFiles = [
"src/index.css"
"src/index.js"
"src/index.html"
];
# Include other scripts here, as needed, for example:
# installDependencies = "npm install";
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
# Enable previews and customize configuration
previews = { ... };
};
}
āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āĻāĻāĻāύ āĻāϝāĻŧāύ āĻāϰā§āύ⧎
āĻāĻĒāύāĻŋ .idx
āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϰ āĻāĻŋāϤāϰ⧠dev.nix
āĻĢāĻžāĻāϞā§āϰ āĻĒāĻžāĻļā§ icon.png
āύāĻžāĻŽā§āϰ āĻāĻāĻāĻŋ PNG āĻĢāĻžāĻāϞ āϰā§āĻā§ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĻāĻŋāϝāĻŧā§ āϤā§āϰāĻŋ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏā§āϰ āĻāύā§āϝ āĻĄāĻŋāĻĢāϞā§āĻ āĻāĻāĻāύ āĻŦā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϰā§āĻŽāĻā§āώā§āϤā§āϰ⧠āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāύā§āĻĄ-āĻā§-āĻāύā§āĻĄ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻšāĻ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ āĻāĻāĻŋ āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āϤā§āϰāĻŋ āĻāϰāĻžāĨ¤ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ GitHub āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ URL āĻĻāĻŋāϝāĻŧā§ āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻŋ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϞāĻŋāĻā§āĻāĻāĻŋāϤ⧠āϝāĻžāύ:
https://idx.google.com/new?template=https://github.com/my-org/my-repo
āĻāĻĒāύāĻŋ āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻļāĻžāĻāĻž āĻāĻŦāĻ āϏāĻžāĻŦāĻĢā§āϞā§āĻĄāĻžāϰ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āύā§āĻā§āϰ āϏāĻŦāĻā§āϞāĻŋ āĻŦā§āϧ, āϝāϤāĻā§āώāĻŖ āύāĻž āϏā§āĻā§āϞāĻŋ āϏāϰā§āĻŦāĻāύā§āύāĻāĻžāĻŦā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ:
-
https://github.com/my-org/my-repo/
-
https://github.com/my-org/my-repo/tree/main/path/to/myidxtemplate
-
https://github.com/my-org/my-repo/tree/branch
-
https://github.com/my-org/my-repo/tree/branch/path/to/myidxtemplate
āĻāĻāĻŋ āϏā§āĻ URL āϝāĻž āĻāĻĒāύāĻŋ āĻ āύā§āϝāĻĻā§āϰ āϏāĻžāĻĨā§ āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻŦā§āύ āϝāĻžāϤ⧠āϤāĻžāϰāĻž āĻāĻĒāύāĻžāϰ āύāϤā§āύ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻžāϰ " Firebase Studio āĻā§āϞā§āύ" āĻŦā§āϤāĻžāĻŽ āĻĨā§āĻā§ āϝ⧠URLāĻāĻŋāϰ āϏāĻžāĻĨā§ āϞāĻŋāĻā§āĻ āĻāϰāĻŦā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻļā§āϝāĻŧāĻžāϰ āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤāĻāĻžāĻŦā§ āĻāĻāϰāĻŖ āĻāϰāĻā§ āϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ GitHub āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āύ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻĒāύāĻŋ āϝ⧠āϞāĻŋāĻā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋāϞā§āύ āϏā§āĻāĻŋ āĻāĻžāĻ āĻāϰā§āύ⧎
āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻā§āĻāĻā§ āĻĒāĻžāĻāϝāĻŧāĻž āĻāϰāĻ āϏāĻšāĻ āĻāϰāϤā§, āĻāĻĒāύāĻžāϰ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻ āĻŦāĻž āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ README-āĻ āĻāĻāĻāĻŋ " Firebase Studio āĻā§āϞā§āύ" āĻŦā§āϤāĻžāĻŽ āϝā§āĻ āĻāϰā§āύāĨ¤