---
title: "Overwrite tabs"
linkTitle: "Overwrite tabs"
type: docs
weight: 2
---
*****
As a framework, default SPS tabs like the **welcome tab**, the **module main tab**,
the **visualization main tab**, the **Canvas tab** and the **About tab** can be user-defined.
![](../default_ui.png)
Default UI and tabs you can overwrite
## Overwrite SPS default tabs
To start create a SPS project:
```{r}
suppressPackageStartupMessages(library(systemPipeShiny))
```
```{r eval=FALSE}
app_path <- "."
spsInit(app_path = app_path, overwrite = TRUE, open_files = FALSE)
```
```{r echo=FALSE, collapse=TRUE, message=FALSE}
app_path <- tempdir()
spsInit(app_path = app_path, project_name = "overwrite", overwrite = TRUE, change_wd = FALSE, open_files = FALSE)
app_path <- file.path(app_path, "overwrite")
```
use the function `spsCoreTabReplace` to create a template of which tab you would
like to overwrite. Here we use the "Welcome" tab as example to demo how to write
your own welcome tab.
```{r eval=FALSE}
spsCoreTabReplace(replace_tab = "welcome")
```
```{r echo=FALSE}
spsCoreTabReplace(replace_tab = "welcome", app_path = app_path, open_file = FALSE)
```
If you are using Rstudio the template will be opened for you like following:
```{r eval=FALSE}
########################## Overwrite the welcome tab ###########################
## UI
core_welcomeUI <- function(id){
ns <- NS(id)
tagList(
# add your UI code below
)
}
## server
core_welcomeServer <- function(id, shared){
module <- function(input, output, session, shared){
ns <- session$ns
# add your server code below
}
moduleServer(id, module)
}
```
Then you can write your own UI and server for this tab, for example, we can add
some UI to the tab:
```{r eval=FALSE}
core_welcomeUI <- function(id){
ns <- NS(id)
tagList(
# add your UI code below
h2("This is my welcome page"),
h4("some UI"),
sliderInput(ns("num"), "Select a number", 0, 10, 5)
)
}
```
When you restart the app, you should see your custom Welcome tab:
![](../overwrite_tab.png)
Custom Welcome tab UI