diff --git a/BlazorApp/Components/App.razor b/BlazorApp/Components/App.razor
index fddf7ed..2952d56 100644
--- a/BlazorApp/Components/App.razor
+++ b/BlazorApp/Components/App.razor
@@ -7,6 +7,7 @@
+
diff --git a/BlazorApp/Components/Pages/Developers.razor b/BlazorApp/Components/Pages/Developers.razor
new file mode 100644
index 0000000..67f100c
--- /dev/null
+++ b/BlazorApp/Components/Pages/Developers.razor
@@ -0,0 +1,244 @@
+@page "/developers"
+@using SilverLabs.Website.Models
+@using SilverLabs.Website.Services
+@inject DeveloperApplicationService ApplicationService
+@rendermode InteractiveServer
+
+Join the Team - SilverLabs
+
+
+
+
+
+
+
+ @if (_submitted)
+ {
+
+
+
Application Submitted
+
@_resultMessage
+
Back to Home
+
+ }
+ else
+ {
+
+
+
+
+
+
Choose Your Role
+
+
SelectRole(ApplicationRole.Tester)">
+
+
Product Tester
+
Test our apps across devices, find bugs, and provide feedback that shapes our products.
+
+
+
SelectRole(ApplicationRole.Developer)">
+
+
Developer
+
Contribute code, build modules, and help architect privacy-first solutions.
+
+
+
+
+
+
+
+
+
+
+
Devices & Platforms
+
Which platforms do you use or have access to?
+
+ @foreach (var platform in _availablePlatforms)
+ {
+ var isChecked = _application.Platforms.Contains(platform);
+
+ }
+
+
+
+
+
+ @if (_application.Role == ApplicationRole.Developer)
+ {
+
+
Skills & Experience
+
Tell us about your technical background — languages, frameworks, and any open-source contributions.
+
+
+
+
+ }
+
+
+
+
Why SilverLabs?
+
What draws you to privacy-first development? What do you hope to contribute?
+
+
+
+
+
+
+
+
+
What You'll Get
+
+
+ @@@("username")@@silverlabs.uk
+ Your own SilverLabs email
+
+
+ SilverDESK
+ Project management & issue tracking
+
+
+ Mattermost
+ Team chat & collaboration
+
+
+ Gitea Access
+ Source code repositories
+
+
+
+
+
+
+ @if (!string.IsNullOrEmpty(_errorMessage))
+ {
+
@_errorMessage
+ }
+
+
+
+ }
+
+
← Back to SilverLabs Home
+
+
+
+@code {
+ private DeveloperApplication _application = new() { Role = ApplicationRole.Tester };
+ private bool _submitting;
+ private bool _submitted;
+ private string? _resultMessage;
+ private string? _errorMessage;
+
+ private readonly string[] _availablePlatforms = { "Windows", "macOS", "Linux", "Android", "iOS", "Other" };
+
+ private void SelectRole(ApplicationRole role)
+ {
+ _application.Role = role;
+ }
+
+ private void TogglePlatform(string platform)
+ {
+ if (_application.Platforms.Contains(platform))
+ _application.Platforms.Remove(platform);
+ else
+ _application.Platforms.Add(platform);
+ }
+
+ private async Task HandleSubmit()
+ {
+ _errorMessage = null;
+ _submitting = true;
+
+ try
+ {
+ var (success, message) = await ApplicationService.SubmitApplicationAsync(_application);
+
+ if (success)
+ {
+ _resultMessage = message;
+ _submitted = true;
+ }
+ else
+ {
+ _errorMessage = message;
+ }
+ }
+ catch
+ {
+ _errorMessage = "An unexpected error occurred. Please try again later.";
+ }
+ finally
+ {
+ _submitting = false;
+ }
+ }
+}
diff --git a/BlazorApp/Components/Pages/Home.razor b/BlazorApp/Components/Pages/Home.razor
index 49c5025..2a999d9 100644
--- a/BlazorApp/Components/Pages/Home.razor
+++ b/BlazorApp/Components/Pages/Home.razor
@@ -12,7 +12,7 @@