Spiderly is a .NET (C#) code generation library that transforms an EF Core model into a fully customizable .NET (C#) + Angular web application, automatically updating all repetitive boilerplate code as your model evolves.
-
CRUD Generator
For each EF Core entity, the generator creates:- CRUD UI
- Angular API client
- .NET controllers
- Service methods to interact with the database
-
CRUD UI Generator
For each EF Core entity, the generator creates:- A table view page — displays records with sorting, filtering, and pagination
- An admin page — a form for creating and editing records
-
API Client Generator
Generates an Angular service class with methods that match your .NET controllers. Each method corresponds to a controller action and includes strongly typed parameters and responses based on your DTO classes. -
Shared .NET and Angular Validations
Generates .NET FluentValidation rules and matching Angular reactive form validators. Both sides stay in sync while allowing separate customization if needed. -
C# DTO and TypeScript Classes
Generates C# partial DTO classes and matching Angular TypeScript classes with strongly typed constructors. -
.NET + Angular App Starter
Sets up the .NET (C#) and Angular app template with built-in support for: authentication (including Google Sign-In), authorization, emailing, logging, global error handling, and more.
Follow Getting Started guide to start using Spiderly.
With the Playground on the Spiderly Website, you can create your own examples, live. Here is the first one to get you started:
[TranslatePluralEn("Users")]
public class User
{
[Required]
public long Id { get; set; }
[DisplayName]
[Required]
public string Name { get; set; }
[UIControlWidth("col-12")]
public Gender Gender { get; set; }
[UIControlType("File")]
public string Logo { get; set; }
}
[TranslatePluralEn("Genders")]
public class Gender
{
[Required]
public long Id { get; set; }
[DisplayName]
[Required]
public string Name { get; set; }
}
These two classes alone will generate app like this:
For detailed documentation, please visit the official documentation page on our website.
By using the Spiderly.CLI, you properly initialize the app, allowing all other Spiderly libraries to function.
Spiderly.SourceGenerators generates a lot of features for both .NET and Angular apps by using attributes on EF Core entities. Its goal is to let developers focus solely on writing specific logic, without worrying about boilerplate code.
Spiderly.Security provides authentication and authorization features with JWT.
Spiderly.Infrastructure is built on EF Core and offers features such as optimistic concurrency control, customizable table and column naming, and extensions for simplified database configuration.
Spiderly.Shared provides shared features that can be used by all other Spiderly libraries.
We welcome contributions from the community! Whether you have ideas, found a bug, or want to add a new feature — feel free to get involved. You can:
- Open an issue to report bugs or suggest enhancements
- Submit a pull request with your proposed changes
- Start a discussion to explore ideas or ask questions
Every contribution is appreciated and helps make this project better for everyone.
To set up your development environment for contributing to Spiderly, follow these steps:
- Make Sure All Prerequisites Are Installed
- You can find the full list of prerequisites in Step 1 of the official Spiderly getting started guide. Make sure everything is installed before moving on.
- Choose a Working Directory
- Select a location on your local machine where you want to store the project files. For example, you might choose:
C:\Users\your-name\Documents
- Select a location on your local machine where you want to store the project files. For example, you might choose:
- Clone the Spiderly Repository
- Open your terminal or Git Bash and run:
git clone https://github.com/filiptrivan/spiderly.git
- Open your terminal or Git Bash and run:
- Install Angular Dependencies
- Navigate to the Angular project folder:
cd spiderly/Angular
- Install the required npm packages:
npm install
- Navigate to the Angular project folder:
- Install the Global Spiderly CLI Tool
- Run the
spiderly\Spiderly.CLI\cli-local-pack.ps1
PowerShell script.
- Run the
- Initialize a New Spiderly Test App in Development Mode
- This step creates a new test application that will serve as a sandbox environment for testing and developing the Spiderly library. It allows you to see changes in real time as you work on the core library.
- Run the following command in your working directory (
C:\Users\your-name\Documents
):spiderly init --dev
- Finish Setting Up the Spiderly Test App
- Start from step 4 of the official Spiderly getting started guide, as the previous steps have already been completed.
Any changes made to the Spiderly source code will now be reflected in your newly created Spiderly test app. You shouldn't manually build or start the Spiderly library—changes will automatically reflect in the test app each time you save a file.
You’re all set! If you run into any issues during setup, feel free to open a GitHub issue. A maintainer will respond as soon as possible, your feedback helps improve the experience for future contributors!
If you want to make changes to the Spiderly.CLI
project and test them immediately, run the PowerShell script cli-local-pack.ps1
located in that project. You’ll need to execute this script each time you want to test your changes.
To help you get your feet wet and get you familiar with our contribution process, we have a list of good first issues, this is a great place to get started.
Spiderly is MIT licensed.