- Create the JSP file
- Add tool to
tools-database.json - Add tool to
sidebar.jsp(if needed) - Implement modern UI following
TOOL_PAGE_IMPLEMENTATION_GUIDE.md - Add SEO metadata
- Test functionality
- Test mobile responsiveness
- Test dark/light themes
- Verify search indexing
-
Choose a filename
- Use descriptive, lowercase names with hyphens
- Examples:
my-new-tool.jsp,advanced-calculator.jsp - Place in
src/main/webapp/
-
Create the file structure
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html lang="en"> <head> <!-- Include modern head components --> <%@ include file="modern/components/seo-head.jsp" %> <%@ include file="modern/components/nav-header.jsp" %> </head> <body> <!-- Your tool content here --> <!-- Include footer and scripts --> <%@ include file="modern/components/footer.jsp" %> </body> </html>
-
Reference existing tools
- Look at
CipherFunctions.jspfor a complete example - Check
modern/templates/tool-page-base.jspfor base structure - Review
modern/examples/tool-page-example.jspfor patterns
- Look at
-
Open
src/main/webapp/modern/data/tools-database.json -
Add your tool entry in the
toolsarray:{ "name": "Your Tool Name", "url": "your-tool.jsp", "category": "Appropriate Category", "keywords": "keyword1 keyword2 keyword3", "description": "Your Tool Name - Free online [category] tool" } -
Choose the correct category from existing categories:
Security & PKICryptographyNetwork ToolsData ConvertersDevOps & InfrastructureDeveloper ToolsBlockchain & CryptoFile SharingFinanceMathematicsChemistryPhysicsMachine LearningMedia ToolsDocument ToolsProductivityHealthLegal & Compliance
-
Update metadata:
- Increment
totalToolscount - Update
lastUpdatedtimestamp - Ensure category exists in
categoriesarray (add if new)
- Increment
-
Example entry:
{ "name": "Advanced JSON Parser", "url": "advanced-json-parser.jsp", "category": "Developer Tools", "keywords": "json parser validator beautifier developer tools", "description": "Advanced JSON Parser - Free online developer tools tool" }
If you want the tool in the sidebar navigation:
-
Open
src/main/webapp/sidebar.jsp -
Find the appropriate category section
-
Add your tool link:
<li><a href="your-tool.jsp">Your Tool Name</a></li>
Follow the TOOL_PAGE_IMPLEMENTATION_GUIDE.md for detailed implementation:
-
Include Modern Components
<!-- In <head> --> <%@ include file="modern/components/seo-head.jsp" %> <!-- In <body> --> <%@ include file="modern/components/nav-header.jsp" %> <%@ include file="modern/components/seo-tool-page.jsp" %>
-
Use Design System CSS
<link rel="stylesheet" href="<%=request.getContextPath()%>/modern/css/design-system.css"> <link rel="stylesheet" href="<%=request.getContextPath()%>/modern/css/tool-page.css">
-
Include Common Utilities
<script src="<%=request.getContextPath()%>/modern/js/tool-utils.js"></script>
-
Choose Layout (see Layout Decision Guide in
TOOL_PAGE_IMPLEMENTATION_GUIDE.md):- Single Column: Most tools (sequential workflow)
- Two Column: Side-by-side input/output
- Three Column: Complex tools with multiple inputs/outputs
-
Add Result Placeholder
<div id="resultArea" class="result-area"> <div class="result-placeholder"> <span class="placeholder-icon">✨</span> <p class="placeholder-text">Results will appear here</p> </div> </div>
-
Implement Error Handling
// Use tool-utils.js functions ToolUtils.showError('Error message', 'resultArea'); ToolUtils.showSuccess('Success message', 'resultArea');
-
Include SEO Component
<%@ include file="modern/components/seo-tool-page.jsp" %>
-
Pass Parameters (in your JSP):
<% String toolName = "Your Tool Name"; String toolDescription = "Detailed description of what your tool does"; String toolCategory = "Developer Tools"; String toolKeywords = "keyword1, keyword2, keyword3"; %> <jsp:include page="modern/components/seo-tool-page.jsp"> <jsp:param name="toolName" value="<%=toolName%>"/> <jsp:param name="toolDescription" value="<%=toolDescription%>"/> <jsp:param name="toolCategory" value="<%=toolCategory%>"/> <jsp:param name="toolKeywords" value="<%=toolKeywords%>"/> <jsp:param name="toolImage" value="logo.png"/> <!-- Optional: defaults to logo.png --> </jsp:include>
Image Parameter Options:
"logo.png"(default) - Uses/images/site/logo.png"custom-image.png"- Uses/images/site/custom-image.png"/images/custom/path.png"- Absolute path from site root"https://example.com/image.png"- Full URL
-
Add JSON-LD Schema (automatically included via
seo-tool-page.jsp)
Include related tools section at the bottom of your tool page:
<%@ include file="modern/components/related-tools.jsp" %>Or with parameters:
<jsp:include page="modern/components/related-tools.jsp">
<jsp:param name="currentToolUrl" value="your-tool.jsp"/>
<jsp:param name="category" value="Developer Tools"/>
<jsp:param name="limit" value="6"/>
</jsp:include>Include support section for donations/social:
<%@ include file="modern/components/support-section.jsp" %>Before deploying, test:
- Tool works correctly
- Form submission works
- Error handling displays properly
- Success messages appear
- Copy to clipboard works
- Share URL works
- URL parameters load correctly
- Mobile responsive (test on phone)
- Tablet layout works
- Desktop layout works
- Dark mode works
- Light mode works
- Icons display correctly
- Animations work smoothly
- Loading states appear
- Page title is correct
- Meta description is present
- JSON-LD schema validates
- Page loads quickly
- No console errors
- Images optimized
- Tool appears in search results
- Tool appears in category menu
- Tool appears in mobile drawer
- Tool link works from navigation
- Keyboard navigation works
- Screen reader compatible
- ARIA labels present
- Focus management works
- Color contrast sufficient
| File | Location |
|---|---|
| Tool JSP | src/main/webapp/your-tool.jsp |
| Tools Database | src/main/webapp/modern/data/tools-database.json |
| Sidebar | src/main/webapp/sidebar.jsp |
| Implementation Guide | TOOL_PAGE_IMPLEMENTATION_GUIDE.md |
| SEO Guide | src/main/webapp/modern/SEO_IMPLEMENTATION_GUIDE.md |
| Component | Path | Purpose |
|---|---|---|
| SEO Head | modern/components/seo-head.jsp |
Meta tags, CSS, fonts |
| Navigation | modern/components/nav-header.jsp |
Header navigation |
| SEO Tool Page | modern/components/seo-tool-page.jsp |
Tool-specific SEO |
| Related Tools | modern/components/related-tools.jsp |
Related tools section |
| Support Section | modern/components/support-section.jsp |
Support/donation section |
| File | Purpose |
|---|---|
modern/css/design-system.css |
Design tokens, variables |
modern/css/tool-page.css |
Tool page styles |
modern/css/navigation.css |
Navigation styles |
modern/css/dark-mode.css |
Dark theme styles |
| File | Purpose |
|---|---|
modern/js/tool-utils.js |
Common utilities (copy, share, errors) |
modern/js/dark-mode.js |
Theme switching |
modern/js/search.js |
Search functionality |
modern/js/categories-menu.js |
Category navigation |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
String toolName = "My New Tool";
String toolDescription = "A tool that does something useful";
String toolCategory = "Developer Tools";
String toolKeywords = "tool, utility, developer";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<%@ include file="modern/components/seo-head.jsp" %>
<jsp:include page="modern/components/seo-tool-page.jsp">
<jsp:param name="toolName" value="<%=toolName%>"/>
<jsp:param name="toolDescription" value="<%=toolDescription%>"/>
<jsp:param name="toolCategory" value="<%=toolCategory%>"/>
<jsp:param name="toolKeywords" value="<%=toolKeywords%>"/>
<jsp:param name="toolImage" value="logo.png"/> <!-- Optional -->
</jsp:include>
<link rel="stylesheet" href="<%=request.getContextPath()%>/modern/css/design-system.css">
<link rel="stylesheet" href="<%=request.getContextPath()%>/modern/css/tool-page.css">
</head>
<body>
<%@ include file="modern/components/nav-header.jsp" %>
<main class="tool-page-container">
<div class="tool-page-header">
<h1 class="tool-page-title"><%=toolName%></h1>
<p class="tool-page-description"><%=toolDescription%></p>
<div class="tool-badges">
<span class="tool-badge">Free</span>
<span class="tool-badge">No Registration</span>
</div>
</div>
<div class="tool-page-content">
<form id="toolForm" class="tool-form">
<div class="form-group">
<label for="inputField">Input Field</label>
<input type="text" id="inputField" class="form-input" required>
</div>
<button type="submit" class="btn-primary">Process</button>
</form>
<div id="resultArea" class="result-area">
<div class="result-placeholder">
<span class="placeholder-icon">✨</span>
<p class="placeholder-text">Results will appear here</p>
</div>
</div>
</div>
</main>
<%@ include file="modern/components/related-tools.jsp" %>
<%@ include file="modern/components/support-section.jsp" %>
<script src="<%=request.getContextPath()%>/modern/js/tool-utils.js"></script>
<script src="<%=request.getContextPath()%>/modern/js/dark-mode.js"></script>
<script>
document.getElementById('toolForm').addEventListener('submit', function(e) {
e.preventDefault();
const input = document.getElementById('inputField').value;
// Your tool logic here
const result = processInput(input);
// Display result
ToolUtils.showResult(result, 'resultArea');
});
</script>
</body>
</html>- ✅ Check
tools-database.jsonentry is correct - ✅ Verify URL matches exactly
- ✅ Clear browser cache
- ✅ Check console for errors
- ✅ Verify category exists in
categoriesarray - ✅ Check tool count matches
- ✅ Hard refresh browser (Ctrl+Shift+R)
- ✅ Include all required CSS files
- ✅ Check CSS file paths are correct
- ✅ Verify design system variables are loaded
- ✅ Check JavaScript console for errors
- ✅ Verify
tool-utils.jsis loaded - ✅ Test in different browsers
- ✅ Check jQuery is loaded (if using)
- 📖 Read
TOOL_PAGE_IMPLEMENTATION_GUIDE.mdfor detailed implementation - 📖 Read
src/main/webapp/modern/SEO_IMPLEMENTATION_GUIDE.mdfor SEO details - 🔍 Check existing tools like
CipherFunctions.jspfor examples - 🎨 Review
modern/templates/tool-page-base.jspfor base structure
- Create JSP file →
src/main/webapp/your-tool.jsp - Add to database →
tools-database.json - Add to sidebar →
sidebar.jsp(optional) - Implement UI → Follow
TOOL_PAGE_IMPLEMENTATION_GUIDE.md - Add SEO → Use
seo-tool-page.jspcomponent - Test everything → Use testing checklist
- Deploy → Verify in production
That's it! Your tool is now part of the system. 🎉