Help me convert my workflow

I've been using ChatGPT with a 20$ account since forever. Also my employer gives me an enterprise account.

Especially in the last year I have developed a workflow that makes me very productive both at work and for my personal projects.

I'm a Software Architect who dabbles a lot in producing code and also have a SaaS startup with friends.

Now my department got Claude because of Code and Design and the writing is on the wall that they will dismiss ChatGPT to consolidate AI spending. We also have GitHub Copilot, and I don't think this will go anywhere.

Because of this, I'm trying to adapt my ChatGPT workflow to Claude. I know, it's probably the worst thing to try to do, but one gotta hit the wall first, right?

Nowadays I have many projects on the ChatGPT phone app/website. There i discuss of features, battle back and forth exploring current but also future needs, and so on. I manage to keep the conversation very grounded because ChatGPT has access to GitHub, so it's easy for me to say "ground this conversation on repos 1, 2, 3 and 10". My team operates multiple products so my area of effect spans across 20-30 repos. Once the feature is properly flashed out, I tell ChatGPT to create one or more issues on GitHub adding more comments if clarification or general technical guidance is needed. Finally I ask for an implementation prompt. Something I can throw either at GitHub copilot cloud agents from the app/web or GitHub copilot via vscode.

This flow works really well for me.

Enters Claude. Yesterday I had my hands on the fresh Enterprise Claude account. And I got a big puzzled.

I wanted to connect my account to GitHub and try a simple question that spanned across one repo, but I couldn't find the connector.

So I went to the "code" part of the web. And there I saw I can only work on one repository at time. I can't even give a link to a website of my product to discuss design that gets stopped by the firewall.

Now, I am sure it's me. But I would really need an help mapping my current workflow to a Claude-centric one.

Thanks!

reddit.com
u/Kralizek82 — 3 days ago
▲ 25 r/csharp+1 crossposts

Introducing AWS Secrets Manager configuration provider 2.0.0

A little more than six years ago, I published a weekend project of mine: a small glue library between the .NET configuration system and AWS Secrets Manager.

The package got some traction over time. It was featured in a few YouTube videos and blog posts, and even in some AWS courses.

Most importantly, people kept using it.

Today, it has almost 10M downloads. Surely, some of those are NuGet mirrors, bots, and CI restores, but the steady flow of issues and PRs confirmed that there was a real need for this little library.

Many users. Many different use cases. New features added to AWS Secrets Manager itself. A few design decisions that made sense six years ago, but less so today.

No wonder the public API became a bit fragmented and unclear.

Over the past couple of weeks, I spent some time doing a full rework of the public surface, extracting needs and behaviors from open and closed issues, PRs, and real-world usage patterns.

What came out of it is a full 2.0.0 rewrite, with several breaking changes, changed default behaviors, and, hopefully, a much better developer experience.

The biggest conceptual change is that the library now separates two scenarios that used to be a bit mixed together:

  • discovering secrets from AWS Secrets Manager
  • loading secrets that the application already knows about

Discovery is useful when your app follows a naming convention and wants to load a group of secrets based on a prefix, tag, or filter. This is very similar to how the SSM configuration provider works.

Known-secret loading is useful when your infrastructure already tells the app exactly which secret to use.

That second scenario is the one I found myself using more and more.

The source configuration tells the app where the secret is. The secret provides the sensitive values.

For example, take a very common setup: configuring an SMTP client.

The application needs some non-secret settings:

{
  "Email": {
    "Host": "smtp.example.com",
    "Port": 587,
    "FromAddress": "no-reply@example.com",
    "SecretId": "my-application/email/smtp"
  }
}

The secret itself contains only the sensitive values:

{
  "Username": "smtp-user",
  "Password": "smtp-password"
}

With 2.0.0, the app can read the secret id from configuration and load that known secret into the same Email section:

if (builder.Configuration["Email:SecretId"] is { } secretId && !string.IsNullOrWhiteSpace(secretId))
{
    builder.Configuration.AddSecretsManagerKnownSecret(secretId, options =>
    {
        options.ReloadInterval = TimeSpan.FromMinutes(5);

        options.KeyMapping.TargetSection = "Email";
        options.KeyMapping.PrefixJsonKeysWithSecretName = false;
    });
}

builder.Services.Configure<EmailOptions>(builder.Configuration.GetSection("Email"));

The resulting configuration section behaves as if it had been composed like this:

{
  "Email": {
    "Host": "smtp.example.com",
    "Port": 587,
    "FromAddress": "no-reply@example.com",
    "SecretId": "my-application/email/smtp",
    "Username": "smtp-user",
    "Password": "smtp-password"
  }
}

So the rest of the application can stay completely boring:

public sealed class EmailOptions
{
    public required string Host { get; init; }
    public required int Port { get; init; }
    public required string FromAddress { get; init; }
    public required string Username { get; init; }
    public required string Password { get; init; }
}

No AWS SDK calls in the email sender.

No custom secret lookup service.

Just regular IConfiguration and the options pattern.

The 2.0.0 version is currently in beta, and the public API is mostly where I want it to be.

I still want to let it breathe a bit before stamping it as stable. The next step is one or more RC builds, then the final 2.0.0.

The project is available here:

The latest stable version is still 1.7, so remember to explicitly select the 2.0.0 prerelease if you want to try the new API.

I'd really appreciate feedback, especially on naming, defaults, migration pain points, and common configuration scenarios that are still awkward.

u/Kralizek82 — 2 months ago
▲ 14 r/dotnet

I know we see popping up posts about the npth selfmade MediatR clone.

I know it's very easy to make one myself. But I don't want.

I know if I need it, I should pay for it to support the dev, but I can't.

So what's the best feasible alternative?

reddit.com
u/Kralizek82 — 2 months ago