V računalniških aplikacijah je projektna vilica situacija, ko se določen vidik ali značilnost uveljavljenega programskega izdelka uporablja kot osnova za ustvarjanje novega izdelka, ki je usmerjen v aplikacije, ki niso v središču izvirne programske opreme. Ustvarjanje projektnih vilic je pogost pojav in lahko poteka z uporabo odprtokodne ali brezplačne programske opreme. Obstajajo tudi primeri projekta vilice projektov, ki je nastal z uporabo nekega vidika lastniškega programskega izdelka.
V procesu programskega inženiringa poteka stalen razvoj novih programskih paketov, ki zadovoljujejo vse večje potrebe potrošnikov. Obstoječa programska oprema pogosto daje navdih za te nove izdelke. Ena ali dve funkciji trenutnega programskega paketa sta lahko osnova za nov izdelek. V tem scenariju je rečeno, da se je nova programska oprema “razcepila” ali razcepila od že obstoječega programskega izdelka. Nova projektna vilica želi povečati privlačnost teh izposojenih funkcij in dodati nove funkcije, ki niso prisotne v izvirni ponudbi programske opreme.
Uporaba odprtokodne programske opreme za ustvarjanje projektnih vilic je razmeroma enostavna. Ni potrebe po pridobitvi dovoljenja prvotnega razvijalca niti kakršne koli zahteve po sodelovanju z razvijalci izvirne programske opreme na kakršen koli način. Vendar pa ni nenavadno, da razvijalec vilice projekta sodeluje z izvirnimi razvijalci, včasih do te mere, da skupaj delajo na vilici projekta. Vendar pa je ta raven komunikacije in sodelovanja povsem prostovoljna in ni pogoj, če je vključena brezplačna programska oprema.
Pri aplikacijah lastniške programske opreme ustvarjanje projektne vilice običajno vodi kateri koli subjekt, ki ima licenco za izvirno programsko opremo. Možno pa je, da neodvisni razvijalec sklene pogodbeno pogodbo, ki dovoljuje omejeno uporabo licenčne programske opreme pri razvoju podružnice ali vilice. Pogosteje bo podjetje, ki nadzoruje izvirno programsko opremo, preprosto uporabilo lastne vire za razvoj vilice projekta in ohranilo popoln nadzor nad licenco. Ta pristop se pogosto uporablja pri razvoju novih in več funkcij bogatih različic lastniške programske opreme ali ustvarjanju spremljevalnih programskih paketov, ki bodo delovali z izvirno programsko opremo.
Možno je, da lahko projektna vilica pripelje do razvoja programskega paketa, ki sčasoma zasenči in celo nadomesti izvirno programsko opremo. V drugih primerih se lahko vilice razvijejo samo zato, da se sčasoma preusmerijo nazaj v prvotno programsko aplikacijo in tržijo kot nova in izboljšana različica.