freshcrate
Home > Frameworks > spiderly

spiderly

.NET (C#) boilerplate code generator that transforms an EF Core model into a fully customizable .NET (C#) + Angular web app

Description

.NET (C#) boilerplate code generator that transforms an EF Core model into a fully customizable .NET (C#) + Angular web app

README

Spiderly Logo

Spiderly

Spiderly is a free, open-source .NET (C#) code generator that transforms an EF Core model into a fully customizable .NET (C#) + Angular web application, automatically updating all boilerplate code as your model evolves.

Key Generation Features

  • 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.

Getting Started

Follow this quick start guide to see which prerequisites you need to install and how to initialize your Spiderly app. For the full guide, visit the official getting started page.

Install Prerequisites

Before getting started with Spiderly, make sure you have the following prerequisites installed:

Run the Spiderly CLI installation command from any terminal location:

dotnet tool install -g Spiderly.CLI

The spiderly-cli npm package is currently reserved as a future distribution channel for the CLI, but it is only a placeholder right now and does not yet provide a working executable.

Initialize the App

Open a terminal in the folder where you want your app to be created and run:

spiderly init

This will create a new folder with your app name containing the full Spiderly project structure.

Open the Project

Navigate into your newly created app folder and open it in VS Code:

cd your-app-name
code .

If the code . command doesn't work, open your newly created app folder manually in VS Code.

Start the App

Press F5 to start the app.

Register the User

Use the UI of your generated app to register a new user via email.

Examples

With the Interactive Demo, you can run the spiderly init command and add dummy properties to see how Spiderly works. Here is the first example to get you started:

public class User
{
    [Required]
    public long Id { get; set; }

    [DisplayName]
    [Required]
    public string Name { get; set; }

    [UIControlWidth("col-8")]
    public Gender Gender { get; set; }

    [UIControlType("File")]
    public string Logo { get; set; }
}
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:

Spiderly Getting Started App Demo

Documentation

For detailed documentation, please visit the official documentation page on our website.

Spiderly.CLI

By using the Spiderly.CLI, you properly initialize the app, allowing all other Spiderly libraries to function.

spiderly-cli (npm placeholder)

The spiderly-cli npm package is reserved for a future Node-distributed Spiderly CLI. It is currently a placeholder package and does not replace the existing NuGet tool.

Spiderly.SourceGenerators

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

Spiderly.Security provides authentication and authorization features with JWT.

Spiderly.Infrastructure

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

Spiderly.Shared provides shared features that can be used by all other Spiderly libraries.

Claude Code Plugin

Spiderly includes a Claude Code plugin that gives Claude framework-specific knowledge — entity attributes, lifecycle hooks, migration commands, and filtering patterns.

Install:

claude plugin add filiptrivan/spiderly

What's included:

Type Name Description
Skill entity-design Correct attributes, relationships, UI mappings
Skill backend-hooks Lifecycle hook signatures, execution order, MARS pitfall
Skill migration-workflow Spiderly CLI commands, what needs migrations
Skill filtering-patterns FilterDTO, paginated list overrides, AdditionalFilterId
Command /spiderly:add-entity Guided end-to-end entity scaffolding

Contributing

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:

Every contribution is appreciated and helps make this project better for everyone.

Getting Started as a Contributor

To set up your development environment for contributing to Spiderly, follow these steps:

  1. Make Sure All Prerequisites Are Installed
    • You can find the full list of prerequisites in the "Install Prerequisites" section of the official Spiderly getting started guide. Make sure everything is installed before moving on.
  2. 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
  3. Clone the Spiderly Repository
    • Open your terminal or Git Bash and run:
      git clone https://github.com/filiptrivan/spiderly.git
  4. Install Angular Dependencies
    • Navigate to the Angular project folder:
      cd spiderly/Angular
    • Install the required npm packages:
      npm install
  5. Install the Global Spiderly CLI Tool
    • Run the spiderly\Spiderly.CLI\cli-local-pack.ps1 PowerShell script.
  6. 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 (e.g. C:\Users\your-name\Documents):
      spiderly init --dev
  7. Finish Setting Up the Spiderly Test App

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!

Developing and Testing Spiderly.CLI

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.

Good First Issues

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.

License

Spiderly is MIT licensed.

Release History

VersionChangesUrgencyDate
v19.7.5## What's Changed - Run full solution build during spiderly init (b8904eb) - Refactor code structure for improved readability and maintainability (1659561) ## Packages Published ### NuGet Packages - [Spiderly.Shared 19.7.5](https://www.nuget.org/packages/Spiderly.Shared/19.7.5) - [Spiderly.SourceGenerators 19.7.5](https://www.nuget.org/packages/Spiderly.SourceGenerators/19.7.5) - [Spiderly.Security 19.7.5](https://www.nuget.org/packages/Spiderly.Security/19.7.5) - [Spiderly.Infrastructure 19High4/20/2026
v19.7.4## What's Changed - Prefix upload e2e filenames with '0-' to satisfy id-from-filename convention (0351e7e) - Require [AcceptedFileTypes] on every blob property + AVIF signature (46cc9e5) - Use real mp4 fixture for Product VideoUrl upload e2e test (da15612) - Replace hand-maintained magic-byte map with Mime-Detective (19bb31e) - Show item count in bulk delete confirmation dialog (07405d6) - Convert HangfireFailedJobNotificationFilter class comment to /// <summary> (acdbbd8) - Replace // commentsHigh4/20/2026
v19.7.3## What's Changed - Add Telegram notification for failed Hangfire jobs (3b9feb6) - Mark [M2M] junction templates with [SpiderlyEntity] (c026bf8) - Extend marker-attribute classification to Services/DataMappers/Enums (11233fe) - Scope attribute enrollment to the requested category (9597d08) - Mark e2e-fixture entities with [SpiderlyEntity] (8add013) - Switch entity/DTO/controller classification to marker attributes (529b10a) - Isolate SPIDERLY### diagnostics per entity in generators (b1b6caf) - High4/16/2026
v19.7.2## What's Changed - Fix CommaSeparated filter using parent entity ID type instead of child (05fdf87) - fix: add DisablePayloadSigning to S3StorageService for R2 compatibility (0ea507a) - update: docs (a518abe) - chore: add spiderly-cli placeholder package (50662bd) - feat: handle HackerException explicitly in global exception handler (cd2d69d) - feat: better telegram error notifications handling (34d3787) - refactor: Convert rerouteToSavedObject to a class method (6ae7765) ## Packages PublishHigh4/10/2026
v19.7.1## What's Changed - docs: fix remaining stale BusinessServiceGenerated references (de9d650) - Rename {Entity}EntityServiceGenerated to {Entity}ServiceGenerated (62504b7) - Remove .resx files, migrate all translations to IStringLocalizer (f02f172) - fix: update CLI scaffolding templates for per-entity service architecture (b8e0c24) - docs: update CLAUDE.md and skills for per-entity service architecture (dabe41a) - refactor: generate per-entity service classes instead of monolithic BusinessServicHigh4/5/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

SerenityBusiness Apps Made Simple with Asp.Net Core MVC / TypeScript10.0.1
RSCG_ExamplesRoslyn Source Code Generators with Examples2024-01-07
dotcraftAn Agent Harness crafting around your project. From Desktop, CLI, editors, chatbots, APIs — everywhere you work.v0.1.3
CoalesceQuickly build amazing web apps6.4.0
claudekit🛠️ Accelerate your Python and JavaScript development with Claude Kit's toolkit, featuring specialized agents, slash commands, and advanced context management.main@2026-04-21