Marketing website for Ludero B.V. — an Energy Management System (EMS) company based in Hendrik-Ido-Ambacht, the Netherlands.
Built with ASP.NET Core 8 Razor Pages and Postmark for transactional email.
| Layer | Technology |
|---|---|
| Framework | ASP.NET Core 8 Razor Pages |
| Language | C# 12, Dutch (nl) content |
| Postmark HTTP API (no SDK) | |
| Styling | Vanilla CSS (CSS custom properties) |
| Fonts | Fraunces + Plus Jakarta Sans (Google Fonts) |
| JavaScript | Vanilla JS (modals, mobile nav) |
- .NET 8 SDK or later
- Visual Studio 2022+ or VS Code with C# extension
- A Postmark account and server API key (for email sending)
src/Ludero.Web/
├── Pages/
│ ├── Shared/ # Layout, navbar, footer, modals
│ ├── Emails/ # HTML email templates (Razor)
│ ├── Index.cshtml → /
│ ├── VoorOndernemers.cshtml → /voor-ondernemers
│ ├── VoorEnergyHubs.cshtml → /voor-energy-hubs
│ ├── Contact.cshtml → /contact
│ └── Factsheet.cshtml.cs → POST /factsheet
├── Models/ # Form view models
├── Services/ # IEmailService + PostmarkEmailService
└── wwwroot/
├── css/site.css # All styles
├── js/site.js # Modals + mobile nav
└── images/ # Logo assets
git clone <repo-url>
cd website-luderoCreate src/Ludero.Web/appsettings.Development.json (already gitignored) with your Postmark credentials:
{
"Postmark": {
"ApiKey": "your-postmark-server-api-key-here",
"FromAddress": "noreply@ludero.nl",
"FromName": "Ludero B.V.",
"NotificationAddress": "info@ludero.nl"
}
}Note: The
FromAddressmust be a verified sender in your Postmark account. For local development, you can use Postmark's sandbox mode.
dotnet run --project src/Ludero.WebOr open Ludero.slnx in Visual Studio and press F5.
The site starts at https://localhost:5001 (or http://localhost:5000).
| URL | Page |
|---|---|
/ |
Home — hero, problem statement, feature cards |
/voor-ondernemers |
Voor Ondernemers — 7 EMS benefits + factsheet download |
/voor-energy-hubs |
Voor Energy Hubs — collective energy management features |
/contact |
Contact — contact form + company info |
| Trigger | Emails sent |
|---|---|
| Contact form submit | Confirmation to visitor + notification to info@ludero.nl |
| Factsheet modal submit | Confirmation to visitor + notification to info@ludero.nl |
Email templates are Razor views in src/Ludero.Web/Pages/Emails/ and use inline CSS for email client compatibility.
For production, set the Postmark API key as an environment variable instead of in appsettings.json:
# Linux/macOS
export Postmark__ApiKey=your-key-here
# Windows (PowerShell)
$env:Postmark__ApiKey = "your-key-here"Or use your hosting platform's secret management (Azure App Service → Configuration, etc.).
Build for production:
dotnet publish src/Ludero.Web -c Release -o ./publish- Content: Edit the
.cshtmlfiles insrc/Ludero.Web/Pages/ - Styles: All CSS is in
src/Ludero.Web/wwwroot/css/site.csswith CSS variables at the top - Email templates: Edit
src/Ludero.Web/Pages/Emails/— use inline styles for maximum email client compatibility - Adding a page: Add
NewPage.cshtml+NewPage.cshtml.cstoPages/, then add a nav link inPages/Shared/_Navbar.cshtml