Project customization checklist
After generating a new JHipster application, apply the following customizations before the first production deployment. This guide reflects the current project structure using Angular CLI with custom webpack (not the legacy pure webpack setup).
|
File paths in this guide use forward slashes and are relative to the project root.
All SCSS files use the Angular component naming convention (e.g. |
1. Loading and error page
Replace the default JHipster loading animation and developer error page with a user-friendly alternative.
See Loading and error page for the full guide and templates.
2. Branding images
Image sources
Free image resources for logos and icons:
-
The Noun Project — icons and stock photos
-
Public Domain Vectors — select SVG format
-
SVG Repo — free SVG vectors
Logo image sizes
Prepare three versions of your application logo:
| File | Size | Usage |
|---|---|---|
|
100px x 100px |
Navbar logo |
|
Custom, portrait aspect |
Home page (standard displays) |
|
800px x 800px |
Home page (high-DPI / retina displays) |
Place all three in src/main/webapp/content/images/.
Files to update
| File | What to change |
|---|---|
|
Update the |
|
Update the |
.logo {
display: inline-block;
width: 100%;
max-width: 250px;
height: 250px;
background: url('../../content/images/my-app-m.png') no-repeat center center;
background-size: contain;
}
@media only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
.logo {
background: url('../../content/images/my-app-l.png') no-repeat center center;
background-size: contain;
}
}
.logo-img {
height: 45px;
width: 45px;
display: inline-block;
vertical-align: middle;
background: url('../../../content/images/my-app-s.png') no-repeat center center;
background-size: contain;
margin-right: 10px;
}
3. Favicon
Generate favicons
-
Choose a source image (ideally a square SVG or high-resolution PNG).
-
Go to RealFaviconGenerator.
-
Upload your image and configure the options.
-
In the Favicon Generator Options, set the relative path to:
content/images
-
Generate and download the favicon package.
Install favicons
-
Delete the existing contents of
src/main/webapp/content/images/(except your logo files). -
Copy the generated image files into
src/main/webapp/content/images/. Do not copysite.webmanifest— usemanifest.webappinstead (see below).
The expected set of favicon files:
content/images/ ├── android-chrome-192x192.png ├── android-chrome-512x512.png ├── apple-touch-icon.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── mstile-70x70.png ├── mstile-144x144.png ├── mstile-150x150.png ├── mstile-310x150.png ├── mstile-310x310.png └── safari-pinned-tab.svg
Update manifest.webapp
Edit src/main/webapp/manifest.webapp to include the correct icon paths and application name:
{
"name": "Application Name",
"short_name": "",
"icons": [
{
"src": "./content/images/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "./content/images/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
Update browserconfig.xml
Edit src/main/webapp/browserconfig.xml to reference the correct tile image path:
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="content/images/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>
Update index.html
In src/main/webapp/index.html, update the <head> section to reference favicons from content/images/:
<link rel="apple-touch-icon" sizes="180x180" href="content/images/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="content/images/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="content/images/favicon-16x16.png" />
<link rel="mask-icon" href="content/images/safari-pinned-tab.svg" color="#5bbad5" />
<link rel="shortcut icon" href="content/images/favicon.ico" />
<meta name="msapplication-TileColor" content="#da532c" />
<meta name="msapplication-config" content="browserconfig.xml" />
Remove any duplicate <meta name="theme-color"> tags and set the desired colour.
Update swagger-ui/index.html
Edit src/main/webapp/swagger-ui/index.html to point favicon references to the correct path:
<link rel="icon" type="image/png" href="content/images/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="content/images/favicon-16x16.png" sizes="16x16" />
|
The default JHipster swagger-ui uses relative paths like |
4. Application name
Update the application title in the following files:
| File | What to change |
|---|---|
|
Set the |
|
Update the heading and welcome text. |
|
Update the |
|
Update the |
|
Update the |
If the application uses i18n, also update the translation files under src/main/webapp/i18n/.
5. Navbar menu
Customise the navigation menu entries in:
src/main/webapp/app/layouts/navbar/navbar.component.html
The navbar uses Angular routing with routerLink directives and FontAwesome icons via fa-icon.
JHipster marks insertion points with needle comments:
-
jhipster-needle-add-element-to-menu— for top-level menu items -
jhipster-needle-add-entity-to-menu— for entity menu items -
jhipster-needle-add-element-to-admin-menu— for admin menu items
Remove unused default menu items and add your application-specific entries.
6. Footer
Update the footer component to reflect your company name and copyright notice.
src/main/webapp/app/layouts/footer/footer.component.html<footer class="p-3 mt-auto bg-light border-top">
<div class="container-fluid text-center">
<p class="mb-0">Copyright © 2025 - Your Company Name</p>
</div>
</footer>
If the application uses i18n, the footer may use a jhiTranslate directive instead of hardcoded text.
In that case, update the corresponding translation key in src/main/webapp/i18n/en/global.json.
7. Spring Boot banner
Replace the default JHipster ASCII art banner with your application name.
src/main/resources/banner.txt _ _ _ _ _ _ _
/ \ _ __ _ __ | (_) ___ __ _| |_(_) ___ _ __ | \ | | __ _ _ __ ___ ___
/ _ \ | '_ \| '_ \| | |/ __/ _` | __| |/ _ \| '_ \ | \| |/ _` | '_ ` _ \ / _ \
/ ___ \| |_) | |_) | | | (_| (_| | |_| | (_) | | | | | |\ | (_| | | | | | | __/
/_/ \_\ .__/| .__/|_|_|\___\__,_|\__|_|\___/|_| |_| |_| \_|\__,_|_| |_| |_|\___|
|_| |_|
${AnsiColor.BRIGHT_BLUE}:: Developed by Your Company :: Running Spring Boot ${spring-boot.version} ::
:: https://www.example.com ::${AnsiColor.DEFAULT}
Use an ASCII art generator such as TAAG to create the banner text.
The banner supports Spring Boot property placeholders (e.g. ${spring-boot.version}) and ANSI colour codes (e.g. ${AnsiColor.BRIGHT_BLUE}).
Deprecated notes
This guide replaces the legacy jhipster-customizing.adoc notes.
Key changes from the legacy version:
| Topic | What changed |
|---|---|
SCSS file names |
Renamed from |
Build system |
|
Favicon path in swagger-ui |
Standardised to |
Loading page |
Now documented separately with reusable templates. See Loading and error page. |