Wedgefish incorpora nel suo modello di sviluppo il noto paradigma Model-View-Controller, offrendo al programmatore un ambiente professionale e stimolante che incoraggia la scrittura di siti web dinamici che mantengono separati contenuto, presentazione e logica applicativa.
Le tre componenti vengono implementate nella piattaforma come segue:
- view: il file statico su cui verrà modellato l'output (HTML, JavaScript, CSS, XML...); esso non può essere intervallato da alcun codice in altri linguaggi, ma può contenere identificatori di oggetti che verranno manipolati e segnaposto i cui valori verranno sostituiti all'atto della compilazione da parte del controller
- controller: il file contenente il codice PHP(1) che riceve l'input dall'utente (ad es. raccoglie i valori dei campi di un form inviato, decodifica le componenti dell'URL ecc...), interroga la base di dati secondo quanto richiesto (tramite i models) e popola la view con i valori recuperati, in modo da produrre l'output
- model: i tipi di dati (classi) e gli oggetti (items) che è possibile ricercare e recuperare (solitamente dal WODBMS) e le procedure che si occupano di leggerli e scriverli; facoltativamente è possibile prevedere una serie di funzioni le quali, fornito il nome di un elemento della view, provvedano a riempirlo automaticamente con i dati letti dal WODBMS
Lo sviluppatore non è comunque obbligato a seguire rigidamente tale suddivisione per ognuna delle sue applicazioni.
È quindi possibile che vengano inserite istruzioni che interrogano il WODBMS direttamente nei controllers, anziché nelle funzioni definite nei models, specialmente quando il codice è stato pensato per essere utilizzato in un solo sito e non è stato racchiuso in un modulo.
Al livello più semplice, un'applicazione potrebbe anche essere composta di soli controllers.
Questo è quanto accadrà importando(2) nella piattaforma una serie di script PHP convenzionali, ove contenuto statico e codice sono racchiusi in un unico file. È fortemente raccomandato in questo caso riscrivere l'applicazione in modo da separare il markup HTML in file separati (le views) lasciando nei controllers solamente il codice PHP.
Altro caso estremo sarà quello di una serie di items composti da sole views, ottenuti importando(2) i files statici di un sito, quali immagini che non necessitano di essere rielaborate, pagine HTML e files JavaScript e CSS che non necessitano di essere modificabili dall'editor dei contenuti.
In questo caso la view corrisponderà direttamente al contenuto del file statico, che sarà possibile modificare come file. Notare che è ugualmente possibile inserire talune variabili speciali (quali $WOS_WEBSITE_NAME) in questi files, anche in assenza di controllers.
(1) nelle versioni future di Wedgefish, verrà presa in considerazione la possibilità di poter scrivere i controllers in linguaggi alternativi a PHP, per poi tradurli in PHP alla loro prima esecuzione
(2) il modulo autoitems, che importa automaticamente una serie di files statici nel sistema creando i relativi items, è stato finora solo parzialmente implementato; attualmente esso si limita a creare items di alcuni determinati tipi la prima volta che essi vengono richiesti



