āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

Firebase Studio āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤ⧃āϤ āĻĒāϰāĻŋāϏāϰ āĻ…āĻĢāĻžāϰ āĻ•āϰ⧇ āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻŽāĻ¸ā§āϤ āĻĢāĻžāχāϞ, āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āϝāĻžāϕ⧇āϜ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ) āĻāĻŦāĻ‚ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻžāώāĻž āĻŦāĻž āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āĻĻā§āϰ⧁āϤ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻĒāύāĻŋ GitHub-āĻ āĻšā§‹āĻ¸ā§āϟ āĻ•āϰāĻž āĻ•āĻŽāĻŋāωāύāĻŋāϟāĻŋ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ Firebase Studio āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻĒ⧇āϏ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāĻ•āϟāĻŋ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻĒ⧇āϏ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āφāϰāĻ“ āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ, āĻāĻ•āϟāĻŋ Firebase Studio āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻĒ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻĻ⧇āϖ⧁āύāĨ¤

āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇ āĻŦāĻž āĻ—āĻŋāϟ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āφāĻŽāĻĻāĻžāύāĻŋ āĻ•āϰāĻŦ⧇, āϤāĻŦ⧇ āφāϰāĻ“ āωāĻ¨ā§āύāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻĒāύāĻŋ āύāĻŋāĻœā§‡āϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

  • āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•, āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ, āĻŦāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ , āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻ•ā§āϞāĻžāωāĻĄ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻļāĻ•ā§āϤāĻŋāϰ āϏāĻžāĻĨ⧇ āĻŦā§āϰāĻžāωāϜāĻžāϰāϟāĻŋ āϛ⧇āĻĄāĻŧ⧇ āύāĻž āĻĻāĻŋāϝāĻŧ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāϰ āϏāĻžāĻĨ⧇ āĻĻā§āϰ⧁āϤ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ⧎

  • āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āĻĒāĻ›āĻ¨ā§āĻĻ⧇āϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāϰ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻĨāĻžāĻ•āϞ⧇, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻĻāĻŋāϝāĻŧ⧇ āύāϤ⧁āύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻšāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

  • āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āĻļ⧇āĻ–āĻžāύ, āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āϟāĻŋāωāĻŸā§‹āϰāĻŋāϝāĻŧāĻžāϞ āĻŦāĻž āϕ⧋āĻĄāĻ˛ā§āϝāĻžāĻŦ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ , āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āφāĻĒāύāĻžāϰ āϕ⧋āĻĄāĻ˛ā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻžāϰāĻŽā§āĻ­āĻŋāĻ• āĻŦāĻŋāĻ¨ā§āĻĻ⧁ āĻĒā§āϰāĻžāĻ•-āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻ›āĻžāĻ¤ā§āϰāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ āϏāϰāĻŋāϝāĻŧ⧇ āĻĢ⧇āϞāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϤ⧈āϰāĻŋ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āφāĻĒāύāĻŋ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāĻŸā§‡ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ• āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ—āĻŋāϟ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ README āĻĢāĻžāχāϞ, āĻĒā§āϝāĻžāϕ⧇āϜ āĻŦāĻŋāĻļāĻĻ āĻĒ⧃āĻˇā§āĻ āĻž (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, NPM-āĻ), āĻŦāĻž āĻ…āĻ¨ā§āϝ āϝ⧇āϕ⧋āύ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻŦ⧇ āĻŦāϞ⧇ āφāĻļāĻž āĻ•āϰāϛ⧇āύ⧎

āĻĒā§‚āĻ°ā§āĻŦāĻļāĻ°ā§āϤ

āφāĻĒāύāĻŋ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āφāϗ⧇:

āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻĢāĻžāχāϞ āĻ—āĻ āύ

āĻāĻ•āϟāĻŋ Firebase Studio āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻšāϞ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ—āĻŋāϟ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ (āĻŦāĻž āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ⧇āϰ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ āĻŦāĻž āĻļāĻžāĻ–āĻž) āϝāĻžāϤ⧇ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ āĻĻ⧁āϟāĻŋ āĻĢāĻžāχāϞ āĻĨāĻžāϕ⧇:

  • idx-template.json āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻŽā§‡āϟāĻžāĻĄā§‡āϟāĻž āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇, āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀-āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āύāĻžāĻŽ, āĻŦāĻŋāĻŦāϰāĻŖ āĻāĻŦāĻ‚ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āωāĻĒāϞāĻŦā§āϧ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āϏāĻšāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻž āĻŦāĻž āωāĻĻāĻžāĻšāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ Firebase Studio āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āϝāĻ–āύ āφāĻĒāύāĻžāϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻĒ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāύ āϤāĻ–āύ āϤāĻžāĻĻ⧇āϰ āĻĻ⧇āĻ–āĻžāύ⧋ UI āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰāϤ⧇ āĻāχ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

  • idx-template.nix āĻšāϞ āύāĻŋāĻ•ā§āϏ āĻ­āĻžāώāĻž āĻĻāĻŋāϝāĻŧ⧇ āϞ⧇āĻ–āĻž āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āϝāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻļ āĻļ⧇āϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĨāĻžāϕ⧇ (āύāĻŋāĻ•ā§āϏ āĻĢāĻžāĻ‚āĻļāύ⧇ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋) āϝāĻž:

    1. āύāϤ⧁āύ āĻ•āĻ°ā§āĻŽāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāĻœā§‡āϰ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

    2. āĻāĻ•āϟāĻŋ .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 āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ āĻ•ā§āϞ⧋āύ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻŋ āϝ⧇ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāύ āϤāĻžāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϏāĻš āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇:

  1. āφāĻĒāύāĻžāϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦ⧇ āϕ⧋āύ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ āϤāĻž āĻ¸ā§āĻĨāĻŋāϰ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āĻ•ā§āϞ⧋āύ āĻ•āϰ⧁āύāĨ¤

  2. idx-template.json , idx-template.nix , āĻāĻŦāĻ‚ .idx/dev.nix āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāϜ āĻ•āϰ⧁āύ, āφāĻĒāύāĻžāϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāϜ āĻ•āϰ⧁āύ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύāĨ¤

  3. āφāĻĒāύāĻžāϰ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ.

  4. āφāĻĒāύāĻžāϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻĒā§āϰāĻ•āĻžāĻļ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ•āĻ°ā§āĻŽāĻ•ā§āώ⧇āĻ¤ā§āϰ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻžāϰ 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 āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āĻŽā§ŒāϞāĻŋāĻ• āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āϏāĻ āĻŋāĻ• āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻ•āϰāϤ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŽā§ŒāϞāĻŋāĻ• 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 )āĨ¤

āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϝ⧋āĻ— āĻ•āϰāϤ⧇, āφāĻĒāύāĻŋ āĻ•āϰāĻŦ⧇āύ:

  1. āφāĻĒāύāĻžāϰ idx-template.json āĻŽā§‡āϟāĻžāĻĄā§‡āϟāĻž āĻĢāĻžāχāϞ⧇āϰ params āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āφāĻĒāύāĻžāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧁āύāĨ¤ Firebase Studio āφāĻĒāύāĻžāϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĻ⧇āĻ–āĻžāύ⧋ UI (āϝ⧇āĻŽāύ āĻšā§‡āĻ•āĻŦāĻ•ā§āϏ, āĻĄā§āϰāĻĒ-āĻĄāĻžāωāύ āĻāĻŦāĻ‚ āĻŸā§‡āĻ•ā§āϏāϟ āĻĢāĻŋāĻ˛ā§āĻĄ) āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰāϤ⧇ āĻāχ āĻĢāĻžāχāϞ⧇āϰ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤
  2. āφāĻĒāύāĻžāϰ 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 āωāĻĒāĻžāĻĻāĻžāύ āĻāĻŦāĻ‚ āĻŦ⧁āϟāĻ¸ā§āĻŸā§āĻ°ā§āϝāĻžāĻĒ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡ āĻĒāĻžāϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇āĨ¤ āĻŦ⧈āϧ āĻŽāĻžāύ āĻšāϞ:

  • "enum" - āĻāĻ•āϟāĻŋ āĻĄā§āϰāĻĒ-āĻĄāĻžāωāύ āĻŦāĻž āϰ⧇āĻĄāĻŋāĻ“ āĻŦā§‹āϤāĻžāĻŽ āĻ—ā§āϰ⧁āĻĒ āĻĻ⧇āĻ–āĻžāϝāĻŧ, āĻāĻŦāĻ‚ āĻŦ⧁āϟāĻ¸ā§āĻŸā§āĻ°ā§āϝāĻžāĻĒ⧇ āĻāĻ•āϟāĻŋ string āĻĒāĻžāϏ āĻ•āϰ⧇
  • "boolean" - āĻāĻ•āϟāĻŋ āĻšā§‡āĻ•āĻŦāĻ•ā§āϏ āĻĻ⧇āĻ–āĻžāϝāĻŧ āĻāĻŦāĻ‚ true āĻŦāĻž false āĻĒāĻžāϏ āĻ•āϰ⧇
  • "text" - āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ ā§āϝ āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĻ⧇āĻ–āĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ string āĻĒāĻžāϏ āĻ•āϰ⧇
āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ 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 āϖ⧁āϞ⧁āύ" āĻŦā§‹āϤāĻžāĻŽ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤