Izvorna nadgradnja je izboljšava izvorne kode računalniškega programa ali kode, iz katere je program ustvarjen. Najpogostejše spremembe nadgradnje vira so nove funkcije, popravki napak in izboljšave stabilnosti. Popravke ustvarijo razvijalci programske opreme in jih objavijo javnosti; ti so običajno brezplačni, čeprav lahko nekateri razvijalci zaračunajo popravek. Če je program odprtokoden, lahko uporabnik izvede svoje nadgradnje vira s spreminjanjem izvorne kode. Ko se izdela izvorna vrata, se stari program ali igra spremeni tako, da lahko deluje na sodobni opremi, vendar program ali igra ostaneta relativno enaka.
Ko je program razvit, bo razvojna skupina običajno delala na ustvarjanju izvornih paketov za nadgradnjo. Razlogi za to vključujejo izdajo nove različice programske opreme in nadgradnjo izvirnega izdelka. Najpogostejše spremembe, ki so posledica nadgradnje vira, so nove funkcije, ustvarjanje hroščev ali napak in odpravljanje težav; moč in stabilnost programa se lahko izboljšata. Običajno, ko je izvorna nadgradnja izdana, jo uporabnik samo prenese in nadgradnja bo spremenila izvirno izvorno kodo; uporabnik mora opraviti zelo malo dela za nadgradnjo programa.
Ko se izvede nadgradnja vira, se običajno imenuje popravek. Razvijalec naredi popravek, uporabnik pa ga prenese, da ga aktivira. Na primer, ko računalnik samodejno prenese nadgradnjo ali se prikaže pogovorno okno, ki pravi, da je nadgradnja na voljo, je popravek tisto, kar računalnik prenese in uporabi. Večina popravkov je brezplačnih, čeprav lahko razvijalec zaračuna popravek, ki popolnoma spremeni program.
Popravke odprtokodnih programov običajno izdela uporabnik. To pomeni, da je izvorno kodo mogoče spremeniti, ne da bi uporabnik moral čakati, da uradni razvijalec nadgradi programiranje. Večino odprtokodnih programov tudi nadgradi uradni razvijalec.
Izvorna vrata se razlikujejo od drugih dveh izvornih nadgradenj, ker običajno povzročijo zelo malo sprememb v programu in ta nadgradnja običajno obravnava stare igre ali programe. Sodobni računalniki imajo lahko določene zahteve, ki jih stare igre ali programi ne morejo izpolniti, a če so narejena izvorna vrata, se igra nadgradi, da izpolni zahteve. Na primer, če igra potrebuje boljšo podporo za upodabljanje, potem programer samo doda to podporo in igro je mogoče prenesti na sodobne računalnike.