A computer implemented method for generating an interactive web application comprising at least one web page, the method comprising: determining one or more data sources within a spreadsheet, each data source having zero or more data records, wherein the data sources comprise a first portion of the spreadsheet having at least one data record; determining one or more user interface templates from within the spreadsheet, each user interface template comprising a data format for one or more of the data sources, wherein the user interface templates comprise a second portion of the spreadsheet; generating a web data store comprising data records from at least the first portion of the spreadsheet; generating a particular web page of the interactive web application based on one or more user interface templates corresponding to the particular web page of the one or more user interface templates from within the spreadsheet, wherein the particular web page references one or more data sources identified based on information in the one or more user interface templates corresponding to the particular web page; responsive to a request for a presentation of the particular web page of the interactive web application, generating the presentation of the particular web page including one or more data records retrieved from the web data store, wherein the one or more data records are identified by and formatted according to the one or more user interface templates corresponding to the particular web page; updating the web data store responsive to receiving user input via an input page of the interactive web application generated based on the spreadsheet; and responsive to a request for a second presentation of the particular web page of the interactive web application, generating the second presentation of the particular web page including at least one updated data record retrieved from the web data store, wherein content of the updated data record is based at least in part on the user input received via the input page. determining one or more data sources within a spreadsheet, each data source having zero or more data records, wherein the data sources comprise a first portion of the spreadsheet having at least one data record; determining one or more user interface templates from within the spreadsheet, each user interface template comprising a data format for one or more of the data sources, wherein the user interface templates comprise a second portion of the spreadsheet; generating a web data store comprising data records from at least the first portion of the spreadsheet; generating a particular web page of the interactive web application based on one or more user interface templates corresponding to the particular web page of the one or more user interface templates from within the spreadsheet, wherein the particular web page references one or more data sources identified based on information in the one or more user interface templates corresponding to the particular web page; responsive to a request for a presentation of the particular web page of the interactive web application, generating the presentation of the particular web page including one or more data records retrieved from the web data store, wherein the one or more data records are identified by and formatted according to the one or more user interface templates corresponding to the particular web page; updating the web data store responsive to receiving user input via an input page of the interactive web application generated based on the spreadsheet; and responsive to a request for a second presentation of the particular web page of the interactive web application, generating the second presentation of the particular web page including at least one updated data record retrieved from the web data store, wherein content of the updated data record is based at least in part on the user input received via the input page.